diff --git a/deploy/component.sh b/deploy/component.sh index e2648818684f672c41cca19a7ac1281b797f4382..d3a94c25911cfb7200e6eef3c5bae260de6fb785 100755 --- a/deploy/component.sh +++ b/deploy/component.sh @@ -40,6 +40,21 @@ export TFS_GRAFANA_PASSWORD=${TFS_GRAFANA_PASSWORD:-"admin123+"} # Automated steps start here ######################################################################################################################## +DOCKER_BUILD="docker build" +DOCKER_MAJOR_VERSION=$(docker --version | grep -o -E "Docker version [0-9]+\." | grep -o -E "[0-9]+" | cut -c 1-3) +if [[ $DOCKER_MAJOR_VERSION -ge 23 ]]; then + # If Docker version >= 23, build command was migrated to docker-buildx + # In Ubuntu, in practice, means to install package docker-buildx together with docker.io + # Check if docker-buildx plugin is installed + docker buildx version 1>/dev/null 2>/dev/null + if [[ $? -ne 0 ]]; then + echo "Docker buildx command is not installed. Check: https://docs.docker.com/build/architecture/#install-buildx" + echo "If you installed docker through APT package docker.io, consider installing also package docker-buildx" + exit 1; + fi + DOCKER_BUILD="docker buildx build" +fi + # Constants GITLAB_REPO_URL="labs.etsi.org:5050/tfs/controller" TMP_FOLDER="./tmp" @@ -60,17 +75,17 @@ for COMPONENT in $TFS_COMPONENTS; do BUILD_LOG="$TMP_LOGS_FOLDER/build_${COMPONENT}.log" if [ "$COMPONENT" == "ztp" ] || [ "$COMPONENT" == "policy" ]; then - docker build -t "$IMAGE_NAME" -f ./src/"$COMPONENT"/Dockerfile ./src/"$COMPONENT"/ > "$BUILD_LOG" + $DOCKER_BUILD -t "$IMAGE_NAME" -f ./src/"$COMPONENT"/Dockerfile ./src/"$COMPONENT"/ > "$BUILD_LOG" elif [ "$COMPONENT" == "pathcomp" ]; then BUILD_LOG="$TMP_LOGS_FOLDER/build_${COMPONENT}-frontend.log" - docker build -t "$COMPONENT-frontend:$TFS_IMAGE_TAG" -f ./src/"$COMPONENT"/frontend/Dockerfile . >> "$BUILD_LOG" + $DOCKER_BUILD -t "$COMPONENT-frontend:$TFS_IMAGE_TAG" -f ./src/"$COMPONENT"/frontend/Dockerfile . >> "$BUILD_LOG" BUILD_LOG="$TMP_LOGS_FOLDER/build_${COMPONENT}-backend.log" - docker build -t "$COMPONENT-backend:$TFS_IMAGE_TAG" -f ./src/"$COMPONENT"/backend/Dockerfile . >> "$BUILD_LOG" + $DOCKER_BUILD -t "$COMPONENT-backend:$TFS_IMAGE_TAG" -f ./src/"$COMPONENT"/backend/Dockerfile . >> "$BUILD_LOG" # next command is redundant, but helpful to keep cache updated between rebuilds - docker build -t "$COMPONENT-backend:$TFS_IMAGE_TAG-builder" --target builder -f ./src/"$COMPONENT"/backend/Dockerfile . >> "$BUILD_LOG" + $DOCKER_BUILD -t "$COMPONENT-backend:$TFS_IMAGE_TAG-builder" --target builder -f ./src/"$COMPONENT"/backend/Dockerfile . >> "$BUILD_LOG" else - docker build -t "$IMAGE_NAME" -f ./src/"$COMPONENT"/Dockerfile . > "$BUILD_LOG" + $DOCKER_BUILD -t "$IMAGE_NAME" -f ./src/"$COMPONENT"/Dockerfile . > "$BUILD_LOG" fi if [ -n "$TFS_REGISTRY_IMAGES" ]; then diff --git a/deploy/crdb.sh b/deploy/crdb.sh index 5d87adf60bbb3303e9abe9cc17c4a68cbe295370..a304e83d16b63f121cec147d8d1135cfa915c2c3 100755 --- a/deploy/crdb.sh +++ b/deploy/crdb.sh @@ -158,9 +158,19 @@ function crdb_undeploy_single() { function crdb_drop_database_single() { echo "Drop database if exists" - CRDB_PORT_SQL=$(kubectl --namespace ${CRDB_NAMESPACE} get service cockroachdb-public -o 'jsonpath={.spec.ports[?(@.name=="sql")].port}') - CRDB_CLIENT_URL="postgresql://${CRDB_USERNAME}:${CRDB_PASSWORD}@cockroachdb-0:${CRDB_PORT_SQL}/defaultdb?sslmode=require" - kubectl exec -it --namespace ${CRDB_NAMESPACE} cockroachdb-0 -- \ + + if [[ -z "${GITLAB_CI}" ]]; then + #kubectl --namespace ${CRDB_NAMESPACE} get service cockroachdb-public -o yaml + CRDB_HOST=$(kubectl --namespace ${CRDB_NAMESPACE} get service cockroachdb-public -o 'jsonpath={.spec.clusterIP}') + CRDB_PORT=$(kubectl --namespace ${CRDB_NAMESPACE} get service cockroachdb-public -o 'jsonpath={.spec.ports[?(@.name=="sql")].port}') + else + CRDB_HOST="127.0.0.1" + CRDB_PORT=${CRDB_EXT_PORT_SQL} + fi + + CRDB_CLIENT_URL="postgresql://${CRDB_USERNAME}:${CRDB_PASSWORD}@${CRDB_HOST}:${CRDB_PORT}/defaultdb?sslmode=require" + echo "CRDB_CLIENT_URL=${CRDB_CLIENT_URL}" + kubectl exec -i --namespace ${CRDB_NAMESPACE} cockroachdb-0 -- \ ./cockroach sql --certs-dir=/cockroach/cockroach-certs --url=${CRDB_CLIENT_URL} \ --execute "DROP DATABASE IF EXISTS ${CRDB_DATABASE};" echo @@ -343,7 +353,7 @@ function crdb_undeploy_cluster() { function crdb_drop_database_cluster() { echo "Drop database if exists" - kubectl exec -it --namespace ${CRDB_NAMESPACE} cockroachdb-client-secure -- \ + kubectl exec -i --namespace ${CRDB_NAMESPACE} cockroachdb-client-secure -- \ ./cockroach sql --certs-dir=/cockroach/cockroach-certs --host=cockroachdb-public --execute \ "DROP DATABASE IF EXISTS ${CRDB_DATABASE};" echo diff --git a/deploy/mock_blockchain.sh b/deploy/mock_blockchain.sh index 74d62cd526a38298c8f197fedf0c0169dbb8efca..df8496beab3798053785233b5d4e13240dbc428a 100755 --- a/deploy/mock_blockchain.sh +++ b/deploy/mock_blockchain.sh @@ -58,9 +58,24 @@ echo "Processing '$COMPONENT' component..." IMAGE_NAME="$COMPONENT:$IMAGE_TAG" IMAGE_URL=$(echo "$REGISTRY_IMAGE/$IMAGE_NAME" | sed 's,//,/,g' | sed 's,http:/,,g') +DOCKER_BUILD="docker build" +DOCKER_MAJOR_VERSION=$(docker --version | grep -o -E "Docker version [0-9]+\." | grep -o -E "[0-9]+" | cut -c 1-3) +if [[ $DOCKER_MAJOR_VERSION -ge 23 ]]; then + # If Docker version >= 23, build command was migrated to docker-buildx + # In Ubuntu, in practice, means to install package docker-buildx together with docker.io + # Check if docker-buildx plugin is installed + docker buildx version 1>/dev/null 2>/dev/null + if [[ $? -ne 0 ]]; then + echo "Docker buildx command is not installed. Check: https://docs.docker.com/build/architecture/#install-buildx" + echo "If you installed docker through APT package docker.io, consider installing also package docker-buildx" + exit 1; + fi + DOCKER_BUILD="docker buildx build" +fi + echo " Building Docker image..." BUILD_LOG="$TMP_LOGS_FOLDER/build_${COMPONENT}.log" -docker build -t "$IMAGE_NAME" -f ./src/dlt/mock_blockchain/Dockerfile . > "$BUILD_LOG" +$DOCKER_BUILD -t "$IMAGE_NAME" -f ./src/dlt/mock_blockchain/Dockerfile . > "$BUILD_LOG" if [ -n "$REGISTRY_IMAGE" ]; then echo " Pushing Docker image to '$REGISTRY_IMAGE'..." diff --git a/deploy/qdb.sh b/deploy/qdb.sh index e930b5a6cfdba8897ec138e97e3115da8917554f..3235c6c824792d945f78f378e12728b10e621cb3 100755 --- a/deploy/qdb.sh +++ b/deploy/qdb.sh @@ -160,10 +160,17 @@ function qdb_undeploy() { } function qdb_drop_tables() { - QDB_HOST=$(kubectl --namespace ${QDB_NAMESPACE} get service questdb-public -o 'jsonpath={.spec.clusterIP}') - QDB_PORT=$(kubectl --namespace ${QDB_NAMESPACE} get service questdb-public -o 'jsonpath={.spec.ports[?(@.name=="http")].port}') - echo "Drop tables, if exist" + + if [[ -z "${GITLAB_CI}" ]]; then + #kubectl --namespace ${QDB_NAMESPACE} get service questdb-public -o yaml + QDB_HOST=$(kubectl --namespace ${QDB_NAMESPACE} get service questdb-public -o 'jsonpath={.spec.clusterIP}') + QDB_PORT=$(kubectl --namespace ${QDB_NAMESPACE} get service questdb-public -o 'jsonpath={.spec.ports[?(@.name=="http")].port}') + else + QDB_HOST="127.0.0.1" + QDB_PORT=${QDB_EXT_PORT_HTTP} + fi + curl "http://${QDB_HOST}:${QDB_PORT}/exec?fmt=json&query=DROP+TABLE+IF+EXISTS+${QDB_TABLE_MONITORING_KPIS}+;" echo curl "http://${QDB_HOST}:${QDB_PORT}/exec?fmt=json&query=DROP+TABLE+IF+EXISTS+${QDB_TABLE_SLICE_GROUPS}+;" diff --git a/deploy/tfs.sh b/deploy/tfs.sh index 3a01606ce32369d0f0968282569eaf4ed59d778c..fd49c975844e49b3ba88f51b046700feaf8edc27 100755 --- a/deploy/tfs.sh +++ b/deploy/tfs.sh @@ -299,8 +299,13 @@ for COMPONENT in $TFS_COMPONENTS; do VERSION=$(grep -i "${GITLAB_REPO_URL}/${COMPONENT}-gateway:" "$MANIFEST" | cut -d ":" -f4) sed -E -i "s#image: $GITLAB_REPO_URL/$COMPONENT-gateway:${VERSION}#image: $IMAGE_URL#g" "$MANIFEST" else - IMAGE_URL=$(echo "$TFS_REGISTRY_IMAGES/$COMPONENT:$TFS_IMAGE_TAG" | sed 's,//,/,g' | sed 's,http:/,,g') - VERSION=$(grep -i "${GITLAB_REPO_URL}/${COMPONENT}:" "$MANIFEST" | cut -d ":" -f4) + if [ "$TFS_SKIP_BUILD" != "YES" ]; then + IMAGE_URL=$(echo "$TFS_REGISTRY_IMAGES/$COMPONENT:$TFS_IMAGE_TAG" | sed 's,//,/,g' | sed 's,http:/,,g') + VERSION=$(grep -i "${GITLAB_REPO_URL}/${COMPONENT}:" "$MANIFEST" | cut -d ":" -f4) + else + VERSION=$(grep -i "${GITLAB_REPO_URL}/${COMPONENT}:" "$MANIFEST" | cut -d ":" -f4) + IMAGE_URL=$(echo "$TFS_REGISTRY_IMAGES/$COMPONENT:$VERSION" | sed 's,//,/,g' | sed 's,http:/,,g') + fi sed -E -i "s#image: $GITLAB_REPO_URL/$COMPONENT:${VERSION}#image: $IMAGE_URL#g" "$MANIFEST" fi @@ -364,7 +369,13 @@ for COMPONENT in $TFS_COMPONENTS; do echo "Waiting for '$COMPONENT' component..." COMPONENT_OBJNAME=$(echo "${COMPONENT}" | sed "s/\_/-/") kubectl wait --namespace $TFS_K8S_NAMESPACE \ - --for='condition=available' --timeout=300s deployment/${COMPONENT_OBJNAME}service + --for='condition=available' --timeout=90s deployment/${COMPONENT_OBJNAME}service + WAIT_EXIT_CODE=$? + if [[ $WAIT_EXIT_CODE != 0 ]]; then + echo " Failed to deploy '${COMPONENT}' component, exit code '${WAIT_EXIT_CODE}', exiting..." + kubectl logs --namespace $TFS_K8S_NAMESPACE deployment/${COMPONENT_OBJNAME}service --all-containers=true + exit $WAIT_EXIT_CODE + fi printf "\n" done diff --git a/manifests/bgpls_speakerservice.yaml b/manifests/bgpls_speakerservice.yaml new file mode 100644 index 0000000000000000000000000000000000000000..bda0d4cf5e8734ebf7a1aab95179d39fd7a3d908 --- /dev/null +++ b/manifests/bgpls_speakerservice.yaml @@ -0,0 +1,72 @@ +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# +# 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. + +apiVersion: apps/v1 +kind: Deployment +metadata: + name: bgpls-speakerservice +spec: + selector: + matchLabels: + app: bgpls-speakerservice + replicas: 1 + template: + metadata: + labels: + app: bgpls-speakerservice + spec: + terminationGracePeriodSeconds: 5 + containers: + - name: server + image: localhost:32000/tfs/bgpls_speaker:dev + imagePullPolicy: Always + ports: + - containerPort: 20030 + - containerPort: 9192 + env: + - name: LOG_LEVEL + value: "INFO" + readinessProbe: + exec: + command: ["/bin/grpc_health_probe", "-addr=:20030"] + livenessProbe: + exec: + command: ["/bin/grpc_health_probe", "-addr=:20030"] + resources: + requests: + cpu: 250m + memory: 128Mi + limits: + cpu: 1000m + memory: 1024Mi +--- +apiVersion: v1 +kind: Service +metadata: + name: bgpls-speakerservice + labels: + app: bgpls-speakerservice +spec: + type: ClusterIP + selector: + app: bgpls-speakerservice + ports: + - name: grpc + protocol: TCP + port: 20030 + targetPort: 20030 + - name: metrics + protocol: TCP + port: 9192 + targetPort: 9192 diff --git a/manifests/cachingservice.yaml b/manifests/cachingservice.yaml index be8fced491a823aace2b7e06be3aad1f6114d245..ee6e02e00b1ee655511a941d99b1198c1f827868 100644 --- a/manifests/cachingservice.yaml +++ b/manifests/cachingservice.yaml @@ -27,28 +27,28 @@ spec: app: cachingservice spec: containers: - - name: redis - image: redis:7.0-alpine - env: - - name: REDIS_PASSWORD - valueFrom: - secretKeyRef: - name: redis-secrets - key: REDIS_PASSWORD - ports: - - containerPort: 6379 - name: client - command: ["redis-server"] - args: - - --requirepass - - $(REDIS_PASSWORD) - resources: - requests: - cpu: 50m - memory: 64Mi - limits: - cpu: 500m - memory: 512Mi + - name: redis + image: redis:7.0-alpine + env: + - name: REDIS_PASSWORD + valueFrom: + secretKeyRef: + name: redis-secrets + key: REDIS_PASSWORD + ports: + - containerPort: 6379 + name: client + command: ["redis-server"] + args: + - --requirepass + - $(REDIS_PASSWORD) + resources: + requests: + cpu: 50m + memory: 64Mi + limits: + cpu: 500m + memory: 512Mi --- apiVersion: v1 kind: Service @@ -59,6 +59,6 @@ spec: selector: app: cachingservice ports: - - name: redis - port: 6379 - targetPort: 6379 + - name: redis + port: 6379 + targetPort: 6379 diff --git a/manifests/contextservice.yaml b/manifests/contextservice.yaml index df06c86b58849762277f5d99788e36b1933e9a69..c7dc59625289027e9881d99e1bf34ca2bdd622a9 100644 --- a/manifests/contextservice.yaml +++ b/manifests/contextservice.yaml @@ -30,39 +30,39 @@ spec: spec: terminationGracePeriodSeconds: 5 containers: - - name: server - image: labs.etsi.org:5050/tfs/controller/context:latest - imagePullPolicy: Always - ports: - - containerPort: 1010 - - containerPort: 9192 - env: - - name: MB_BACKEND - value: "nats" - - name: LOG_LEVEL - value: "INFO" - - name: ALLOW_EXPLICIT_ADD_DEVICE_TO_TOPOLOGY - value: "FALSE" - - name: ALLOW_EXPLICIT_ADD_LINK_TO_TOPOLOGY - value: "FALSE" - envFrom: - - secretRef: - name: crdb-data - - secretRef: - name: nats-data - readinessProbe: - exec: - command: ["/bin/grpc_health_probe", "-addr=:1010"] - livenessProbe: - exec: - command: ["/bin/grpc_health_probe", "-addr=:1010"] - resources: - requests: - cpu: 250m - memory: 128Mi - limits: - cpu: 1000m - memory: 1024Mi + - name: server + image: labs.etsi.org:5050/tfs/controller/context:latest + imagePullPolicy: Always + ports: + - containerPort: 1010 + - containerPort: 9192 + env: + - name: MB_BACKEND + value: "nats" + - name: LOG_LEVEL + value: "INFO" + - name: ALLOW_EXPLICIT_ADD_DEVICE_TO_TOPOLOGY + value: "FALSE" + - name: ALLOW_EXPLICIT_ADD_LINK_TO_TOPOLOGY + value: "FALSE" + envFrom: + - secretRef: + name: crdb-data + - secretRef: + name: nats-data + readinessProbe: + exec: + command: ["/bin/grpc_health_probe", "-addr=:1010"] + livenessProbe: + exec: + command: ["/bin/grpc_health_probe", "-addr=:1010"] + resources: + requests: + cpu: 250m + memory: 128Mi + limits: + cpu: 1000m + memory: 1024Mi --- apiVersion: v1 kind: Service @@ -75,14 +75,14 @@ spec: selector: app: contextservice ports: - - name: grpc - protocol: TCP - port: 1010 - targetPort: 1010 - - name: metrics - protocol: TCP - port: 9192 - targetPort: 9192 + - name: grpc + protocol: TCP + port: 1010 + targetPort: 1010 + - name: metrics + protocol: TCP + port: 9192 + targetPort: 9192 --- apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler @@ -96,12 +96,12 @@ spec: minReplicas: 1 maxReplicas: 20 metrics: - - type: Resource - resource: - name: cpu - target: - type: Utilization - averageUtilization: 80 + - type: Resource + resource: + name: cpu + target: + type: Utilization + averageUtilization: 80 #behavior: # scaleDown: # stabilizationWindowSeconds: 30 diff --git a/manifests/dbscanservingservice.yaml b/manifests/dbscanservingservice.yaml index b5b8fc437a9b7f47f92defdbc96ee71a56715316..2bdd1c3faad870f5646c456f815ae790642df45b 100644 --- a/manifests/dbscanservingservice.yaml +++ b/manifests/dbscanservingservice.yaml @@ -27,28 +27,28 @@ spec: spec: terminationGracePeriodSeconds: 5 containers: - - name: server - image: labs.etsi.org:5050/tfs/controller/dbscanserving:latest - imagePullPolicy: Always - ports: - - containerPort: 10008 - - containerPort: 9192 - env: - - name: LOG_LEVEL - value: "INFO" - readinessProbe: - exec: - command: ["/bin/grpc_health_probe", "-addr=:10008"] - livenessProbe: - exec: - command: ["/bin/grpc_health_probe", "-addr=:10008"] - resources: - requests: - cpu: 250m - memory: 128Mi - limits: - cpu: 1000m - memory: 1024Mi + - name: server + image: labs.etsi.org:5050/tfs/controller/dbscanserving:latest + imagePullPolicy: Always + ports: + - containerPort: 10008 + - containerPort: 9192 + env: + - name: LOG_LEVEL + value: "INFO" + readinessProbe: + exec: + command: ["/bin/grpc_health_probe", "-addr=:10008"] + livenessProbe: + exec: + command: ["/bin/grpc_health_probe", "-addr=:10008"] + resources: + requests: + cpu: 250m + memory: 128Mi + limits: + cpu: 1000m + memory: 1024Mi --- apiVersion: v1 kind: Service @@ -61,12 +61,12 @@ spec: selector: app: dbscanservingservice ports: - - name: grpc - port: 10008 - targetPort: 10008 - - name: metrics - port: 9192 - targetPort: 9192 + - name: grpc + port: 10008 + targetPort: 10008 + - name: metrics + port: 9192 + targetPort: 9192 --- apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler @@ -80,12 +80,12 @@ spec: minReplicas: 1 maxReplicas: 20 metrics: - - type: Resource - resource: - name: cpu - target: - type: Utilization - averageUtilization: 80 + - type: Resource + resource: + name: cpu + target: + type: Utilization + averageUtilization: 80 #behavior: # scaleDown: # stabilizationWindowSeconds: 30 diff --git a/manifests/deviceservice.yaml b/manifests/deviceservice.yaml index 77e421f297fefc8979b9cd6e3415c58be611a53a..fdc3cea028a181b7dafbcfa6f3ef4e798939438e 100644 --- a/manifests/deviceservice.yaml +++ b/manifests/deviceservice.yaml @@ -31,33 +31,33 @@ spec: spec: terminationGracePeriodSeconds: 5 containers: - - name: server - image: labs.etsi.org:5050/tfs/controller/device:latest - imagePullPolicy: Always - ports: - - containerPort: 2020 - - containerPort: 9192 - env: - - name: LOG_LEVEL - value: "INFO" - startupProbe: - exec: - command: ["/bin/grpc_health_probe", "-addr=:2020"] - failureThreshold: 30 - periodSeconds: 1 - readinessProbe: - exec: - command: ["/bin/grpc_health_probe", "-addr=:2020"] - livenessProbe: - exec: - command: ["/bin/grpc_health_probe", "-addr=:2020"] - resources: - requests: - cpu: 250m - memory: 128Mi - limits: - cpu: 1000m - memory: 1024Mi + - name: server + image: labs.etsi.org:5050/tfs/controller/device:latest + imagePullPolicy: Always + ports: + - containerPort: 2020 + - containerPort: 9192 + env: + - name: LOG_LEVEL + value: "INFO" + startupProbe: + exec: + command: ["/bin/grpc_health_probe", "-addr=:2020"] + failureThreshold: 30 + periodSeconds: 1 + readinessProbe: + exec: + command: ["/bin/grpc_health_probe", "-addr=:2020"] + livenessProbe: + exec: + command: ["/bin/grpc_health_probe", "-addr=:2020"] + resources: + requests: + cpu: 250m + memory: 128Mi + limits: + cpu: 1000m + memory: 1024Mi --- apiVersion: v1 kind: Service @@ -70,11 +70,11 @@ spec: selector: app: deviceservice ports: - - name: grpc - protocol: TCP - port: 2020 - targetPort: 2020 - - name: metrics - protocol: TCP - port: 9192 - targetPort: 9192 + - name: grpc + protocol: TCP + port: 2020 + targetPort: 2020 + - name: metrics + protocol: TCP + port: 9192 + targetPort: 9192 diff --git a/manifests/dltservice.yaml b/manifests/dltservice.yaml index 5e8f745f78b14ea4f8881b8992ef788ce89fdcc2..f905749b444e821fce36d88fa24259d4ce03237b 100644 --- a/manifests/dltservice.yaml +++ b/manifests/dltservice.yaml @@ -27,57 +27,57 @@ spec: spec: terminationGracePeriodSeconds: 5 containers: - - name: connector - image: labs.etsi.org:5050/tfs/controller/dlt-connector:latest - imagePullPolicy: Always - ports: - - containerPort: 8080 - - containerPort: 9192 - env: - - name: LOG_LEVEL - value: "INFO" - ## for debug purposes - #- name: DLT_GATEWAY_HOST - # value: "mock-blockchain.tfs-bchain.svc.cluster.local" - #- name: DLT_GATEWAY_PORT - # value: "50051" - readinessProbe: - exec: - command: ["/bin/grpc_health_probe", "-addr=:8080"] - livenessProbe: - exec: - command: ["/bin/grpc_health_probe", "-addr=:8080"] - resources: - requests: - cpu: 50m - memory: 64Mi - limits: - cpu: 500m - memory: 512Mi - - name: gateway - image: labs.etsi.org:5050/tfs/controller/dlt-gateway:latest - imagePullPolicy: Always - ports: - - containerPort: 50051 - #readinessProbe: - # httpGet: - # path: /health - # port: 8081 - # initialDelaySeconds: 5 - # timeoutSeconds: 5 - #livenessProbe: - # httpGet: - # path: /health - # port: 8081 - # initialDelaySeconds: 5 - # timeoutSeconds: 5 - resources: - requests: - cpu: 200m - memory: 512Mi - limits: - cpu: 700m - memory: 1024Mi + - name: connector + image: labs.etsi.org:5050/tfs/controller/dlt-connector:latest + imagePullPolicy: Always + ports: + - containerPort: 8080 + - containerPort: 9192 + env: + - name: LOG_LEVEL + value: "INFO" + ## for debug purposes + #- name: DLT_GATEWAY_HOST + # value: "mock-blockchain.tfs-bchain.svc.cluster.local" + #- name: DLT_GATEWAY_PORT + # value: "50051" + readinessProbe: + exec: + command: ["/bin/grpc_health_probe", "-addr=:8080"] + livenessProbe: + exec: + command: ["/bin/grpc_health_probe", "-addr=:8080"] + resources: + requests: + cpu: 50m + memory: 64Mi + limits: + cpu: 500m + memory: 512Mi + - name: gateway + image: labs.etsi.org:5050/tfs/controller/dlt-gateway:latest + imagePullPolicy: Always + ports: + - containerPort: 50051 + #readinessProbe: + # httpGet: + # path: /health + # port: 8081 + # initialDelaySeconds: 5 + # timeoutSeconds: 5 + #livenessProbe: + # httpGet: + # path: /health + # port: 8081 + # initialDelaySeconds: 5 + # timeoutSeconds: 5 + resources: + requests: + cpu: 200m + memory: 512Mi + limits: + cpu: 700m + memory: 1024Mi --- apiVersion: v1 kind: Service @@ -90,11 +90,11 @@ spec: selector: app: dltservice ports: - - name: grpc - protocol: TCP - port: 8080 - targetPort: 8080 - - name: metrics - protocol: TCP - port: 9192 - targetPort: 9192 + - name: grpc + protocol: TCP + port: 8080 + targetPort: 8080 + - name: metrics + protocol: TCP + port: 9192 + targetPort: 9192 diff --git a/manifests/e2e_orchestratorservice.yaml b/manifests/e2e_orchestratorservice.yaml index 899e17fff32e02473d7249eda937282d394efa4e..90d37771171d1f062a17d071bebe1fd1fee859ad 100644 --- a/manifests/e2e_orchestratorservice.yaml +++ b/manifests/e2e_orchestratorservice.yaml @@ -27,28 +27,28 @@ spec: spec: terminationGracePeriodSeconds: 5 containers: - - name: server - image: labs.etsi.org:5050/tfs/controller/e2e_orchestrator:latest - imagePullPolicy: Always - ports: - - containerPort: 10050 - - containerPort: 9192 - env: - - name: LOG_LEVEL - value: "INFO" - readinessProbe: - exec: - command: ["/bin/grpc_health_probe", "-addr=:10050"] - livenessProbe: - exec: - command: ["/bin/grpc_health_probe", "-addr=:10050"] - resources: - requests: - cpu: 250m - memory: 128Mi - limits: - cpu: 1000m - memory: 1024Mi + - name: server + image: labs.etsi.org:5050/tfs/controller/e2e_orchestrator:latest + imagePullPolicy: Always + ports: + - containerPort: 10050 + - containerPort: 9192 + env: + - name: LOG_LEVEL + value: "INFO" + readinessProbe: + exec: + command: ["/bin/grpc_health_probe", "-addr=:10050"] + livenessProbe: + exec: + command: ["/bin/grpc_health_probe", "-addr=:10050"] + resources: + requests: + cpu: 250m + memory: 128Mi + limits: + cpu: 1000m + memory: 1024Mi --- apiVersion: v1 kind: Service @@ -61,12 +61,12 @@ spec: selector: app: e2e-orchestratorservice ports: - - name: grpc - port: 10050 - targetPort: 10050 - - name: metrics - port: 9192 - targetPort: 9192 + - name: grpc + port: 10050 + targetPort: 10050 + - name: metrics + port: 9192 + targetPort: 9192 --- apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler @@ -80,12 +80,12 @@ spec: minReplicas: 1 maxReplicas: 20 metrics: - - type: Resource - resource: - name: cpu - target: - type: Utilization - averageUtilization: 80 + - type: Resource + resource: + name: cpu + target: + type: Utilization + averageUtilization: 80 #behavior: # scaleDown: # stabilizationWindowSeconds: 30 diff --git a/manifests/forecasterservice.yaml b/manifests/forecasterservice.yaml index 55d4add88f6fc507e9a4271cb40b20c4742c5bc7..d1136f61789cc33069aa0f3c40e578755ec70137 100644 --- a/manifests/forecasterservice.yaml +++ b/manifests/forecasterservice.yaml @@ -28,35 +28,35 @@ spec: spec: terminationGracePeriodSeconds: 5 containers: - - name: server - image: labs.etsi.org:5050/tfs/controller/forecaster:latest - imagePullPolicy: Always - ports: - - containerPort: 10040 - - containerPort: 9192 - env: - - name: LOG_LEVEL - value: "INFO" - - name: FORECAST_TO_HISTORY_RATIO - value: "10" - startupProbe: - exec: - command: ["/bin/grpc_health_probe", "-addr=:10040"] - failureThreshold: 30 - periodSeconds: 1 - readinessProbe: - exec: - command: ["/bin/grpc_health_probe", "-addr=:10040"] - livenessProbe: - exec: - command: ["/bin/grpc_health_probe", "-addr=:10040"] - resources: - requests: - cpu: 250m - memory: 128Mi - limits: - cpu: 1000m - memory: 1024Mi + - name: server + image: labs.etsi.org:5050/tfs/controller/forecaster:latest + imagePullPolicy: Always + ports: + - containerPort: 10040 + - containerPort: 9192 + env: + - name: LOG_LEVEL + value: "INFO" + - name: FORECAST_TO_HISTORY_RATIO + value: "10" + startupProbe: + exec: + command: ["/bin/grpc_health_probe", "-addr=:10040"] + failureThreshold: 30 + periodSeconds: 1 + readinessProbe: + exec: + command: ["/bin/grpc_health_probe", "-addr=:10040"] + livenessProbe: + exec: + command: ["/bin/grpc_health_probe", "-addr=:10040"] + resources: + requests: + cpu: 250m + memory: 128Mi + limits: + cpu: 1000m + memory: 1024Mi --- apiVersion: v1 kind: Service @@ -69,14 +69,14 @@ spec: selector: app: forecasterservice ports: - - name: grpc - protocol: TCP - port: 10040 - targetPort: 10040 - - name: metrics - protocol: TCP - port: 9192 - targetPort: 9192 + - name: grpc + protocol: TCP + port: 10040 + targetPort: 10040 + - name: metrics + protocol: TCP + port: 9192 + targetPort: 9192 --- apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler @@ -90,12 +90,12 @@ spec: minReplicas: 1 maxReplicas: 20 metrics: - - type: Resource - resource: - name: cpu - target: - type: Utilization - averageUtilization: 80 + - type: Resource + resource: + name: cpu + target: + type: Utilization + averageUtilization: 80 #behavior: # scaleDown: # stabilizationWindowSeconds: 30 diff --git a/manifests/interdomainservice.yaml b/manifests/interdomainservice.yaml index a235834025724cb11e6b26364f25ae9feb28fe8c..ad9be3a3ec507a57b3cbcf196fd04a73a9fb34ac 100644 --- a/manifests/interdomainservice.yaml +++ b/manifests/interdomainservice.yaml @@ -27,30 +27,30 @@ spec: spec: terminationGracePeriodSeconds: 5 containers: - - name: server - image: labs.etsi.org:5050/tfs/controller/interdomain:latest - imagePullPolicy: Always - ports: - - containerPort: 10010 - - containerPort: 9192 - env: - - name: LOG_LEVEL - value: "INFO" - - name: TOPOLOGY_ABSTRACTOR - value: "DISABLE" - readinessProbe: - exec: - command: ["/bin/grpc_health_probe", "-addr=:10010"] - livenessProbe: - exec: - command: ["/bin/grpc_health_probe", "-addr=:10010"] - resources: - requests: - cpu: 250m - memory: 64Mi - limits: - cpu: 1000m - memory: 1024Mi + - name: server + image: labs.etsi.org:5050/tfs/controller/interdomain:latest + imagePullPolicy: Always + ports: + - containerPort: 10010 + - containerPort: 9192 + env: + - name: LOG_LEVEL + value: "INFO" + - name: TOPOLOGY_ABSTRACTOR + value: "DISABLE" + readinessProbe: + exec: + command: ["/bin/grpc_health_probe", "-addr=:10010"] + livenessProbe: + exec: + command: ["/bin/grpc_health_probe", "-addr=:10010"] + resources: + requests: + cpu: 250m + memory: 64Mi + limits: + cpu: 1000m + memory: 1024Mi --- apiVersion: v1 kind: Service @@ -63,11 +63,11 @@ spec: selector: app: interdomainservice ports: - - name: grpc - protocol: TCP - port: 10010 - targetPort: 10010 - - name: metrics - protocol: TCP - port: 9192 - targetPort: 9192 + - name: grpc + protocol: TCP + port: 10010 + targetPort: 10010 + - name: metrics + protocol: TCP + port: 9192 + targetPort: 9192 diff --git a/manifests/l3_attackmitigatorservice.yaml b/manifests/l3_attackmitigatorservice.yaml index ee97d2c92abb5abcad80f8ddf04800ef13144522..973b805bd7fb8c33a6b9e307afa87d8cb21ad7ec 100644 --- a/manifests/l3_attackmitigatorservice.yaml +++ b/manifests/l3_attackmitigatorservice.yaml @@ -27,28 +27,28 @@ spec: spec: terminationGracePeriodSeconds: 5 containers: - - name: server - image: labs.etsi.org:5050/tfs/controller/l3_attackmitigator:latest - imagePullPolicy: Always - ports: - - containerPort: 10002 - - containerPort: 9192 - env: - - name: LOG_LEVEL - value: "DEBUG" - readinessProbe: - exec: - command: ["/bin/grpc_health_probe", "-addr=:10002"] - livenessProbe: - exec: - command: ["/bin/grpc_health_probe", "-addr=:10002"] - resources: - requests: - cpu: 250m - memory: 512Mi - limits: - cpu: 700m - memory: 1024Mi + - name: server + image: labs.etsi.org:5050/tfs/controller/l3_attackmitigator:latest + imagePullPolicy: Always + ports: + - containerPort: 10002 + - containerPort: 9192 + env: + - name: LOG_LEVEL + value: "INFO" + readinessProbe: + exec: + command: ["/bin/grpc_health_probe", "-addr=:10002"] + livenessProbe: + exec: + command: ["/bin/grpc_health_probe", "-addr=:10002"] + resources: + requests: + cpu: 250m + memory: 512Mi + limits: + cpu: 700m + memory: 1024Mi --- apiVersion: v1 kind: Service @@ -61,13 +61,13 @@ spec: selector: app: l3-attackmitigatorservice ports: - - name: metrics - protocol: TCP - port: 9192 - targetPort: 9192 - - name: grpc - port: 10002 - targetPort: 10002 + - name: metrics + protocol: TCP + port: 9192 + targetPort: 9192 + - name: grpc + port: 10002 + targetPort: 10002 --- apiVersion: autoscaling/v2 @@ -82,12 +82,12 @@ spec: minReplicas: 1 maxReplicas: 10 metrics: - - type: Resource - resource: - name: cpu - target: - type: Utilization - averageUtilization: 80 + - type: Resource + resource: + name: cpu + target: + type: Utilization + averageUtilization: 80 behavior: scaleDown: stabilizationWindowSeconds: 120 @@ -100,9 +100,9 @@ metadata: labels: app: l3-attackmitigatorservice #release: prometheus - #release: prom # name of the release - # ( VERY IMPORTANT: You need to know the correct release name by viewing - # the servicemonitor of Prometheus itself: Without the correct name, + #release: prom # name of the release + # ( VERY IMPORTANT: You need to know the correct release name by viewing + # the servicemonitor of Prometheus itself: Without the correct name, # Prometheus cannot identify the metrics of the Flask app as the target.) spec: selector: @@ -112,11 +112,11 @@ spec: app: l3-attackmitigatorservice # same as above #release: prometheus # same as above endpoints: - - port: metrics # named port in target app - scheme: http - path: /metrics # path to scrape - interval: 5s # scrape interval + - port: metrics # named port in target app + scheme: http + path: /metrics # path to scrape + interval: 5s # scrape interval namespaceSelector: any: false matchNames: - - tfs # namespace where the app is running + - tfs # namespace where the app is running diff --git a/manifests/l3_centralizedattackdetectorservice.yaml b/manifests/l3_centralizedattackdetectorservice.yaml index 8a3be69b672200120afb4bca3892dd0c08ec2d65..98c5f9b41519f13d784a7cab7027a23d9d082714 100644 --- a/manifests/l3_centralizedattackdetectorservice.yaml +++ b/manifests/l3_centralizedattackdetectorservice.yaml @@ -27,36 +27,36 @@ spec: spec: terminationGracePeriodSeconds: 5 containers: - - name: server - image: labs.etsi.org:5050/tfs/controller/l3_centralizedattackdetector:latest - imagePullPolicy: Always - ports: - - containerPort: 10001 - - containerPort: 9192 - env: - - name: LOG_LEVEL - value: "DEBUG" - - name: BATCH_SIZE - value: "256" - - name: CAD_CLASSIFICATION_THRESHOLD - value: "0.5" - - name: MONITORED_KPIS_TIME_INTERVAL_AGG - value: "60" - - name: TEST_ML_MODEL - value: "0" - readinessProbe: - exec: - command: ["/bin/grpc_health_probe", "-addr=:10001"] - livenessProbe: - exec: - command: ["/bin/grpc_health_probe", "-addr=:10001"] - resources: - requests: - cpu: 250m - memory: 512Mi - limits: - cpu: 700m - memory: 1024Mi + - name: server + image: labs.etsi.org:5050/tfs/controller/l3_centralizedattackdetector:latest + imagePullPolicy: Always + ports: + - containerPort: 10001 + - containerPort: 9192 + env: + - name: LOG_LEVEL + value: "INFO" + - name: BATCH_SIZE + value: "256" + - name: CAD_CLASSIFICATION_THRESHOLD + value: "0.5" + - name: MONITORED_KPIS_TIME_INTERVAL_AGG + value: "60" + - name: TEST_ML_MODEL + value: "0" + readinessProbe: + exec: + command: ["/bin/grpc_health_probe", "-addr=:10001"] + livenessProbe: + exec: + command: ["/bin/grpc_health_probe", "-addr=:10001"] + resources: + requests: + cpu: 250m + memory: 512Mi + limits: + cpu: 700m + memory: 1024Mi --- apiVersion: v1 kind: Service @@ -69,13 +69,13 @@ spec: selector: app: l3-centralizedattackdetectorservice ports: - - name: metrics - protocol: TCP - port: 9192 - targetPort: 9192 - - name: grpc - port: 10001 - targetPort: 10001 + - name: metrics + protocol: TCP + port: 9192 + targetPort: 9192 + - name: grpc + port: 10001 + targetPort: 10001 --- apiVersion: autoscaling/v2 @@ -90,12 +90,12 @@ spec: minReplicas: 1 maxReplicas: 10 metrics: - - type: Resource - resource: - name: cpu - target: - type: Utilization - averageUtilization: 80 + - type: Resource + resource: + name: cpu + target: + type: Utilization + averageUtilization: 80 behavior: scaleDown: stabilizationWindowSeconds: 120 @@ -107,9 +107,9 @@ metadata: labels: app: l3-centralizedattackdetectorservice #release: prometheus - #release: prom # name of the release - # ( VERY IMPORTANT: You need to know the correct release name by viewing - # the servicemonitor of Prometheus itself: Without the correct name, + #release: prom # name of the release + # ( VERY IMPORTANT: You need to know the correct release name by viewing + # the servicemonitor of Prometheus itself: Without the correct name, # Prometheus cannot identify the metrics of the Flask app as the target.) spec: selector: @@ -119,11 +119,11 @@ spec: app: l3-centralizedattackdetectorservice # same as above #release: prometheus # same as above endpoints: - - port: metrics # named port in target app - scheme: http - path: /metrics # path to scrape - interval: 5s # scrape interval + - port: metrics # named port in target app + scheme: http + path: /metrics # path to scrape + interval: 5s # scrape interval namespaceSelector: any: false matchNames: - - tfs # namespace where the app is running + - tfs # namespace where the app is running diff --git a/manifests/l3_distributedattackdetectorservice.yaml b/manifests/l3_distributedattackdetectorservice.yaml index b363c1d5c5f82083d525959d6aedf337554f604a..bf72b5cd0752b2219ef3b5c2abad0b9330d43853 100644 --- a/manifests/l3_distributedattackdetectorservice.yaml +++ b/manifests/l3_distributedattackdetectorservice.yaml @@ -27,27 +27,27 @@ spec: spec: terminationGracePeriodSeconds: 5 containers: - - name: server - image: labs.etsi.org:5050/tfs/controller/l3_distributedattackdetector:latest - imagePullPolicy: Always - ports: - - containerPort: 10000 - env: - - name: LOG_LEVEL - value: "DEBUG" - readinessProbe: - exec: - command: ["/bin/grpc_health_probe", "-addr=:10000"] - livenessProbe: - exec: - command: ["/bin/grpc_health_probe", "-addr=:10000"] - resources: - requests: - cpu: 250m - memory: 512Mi - limits: - cpu: 700m - memory: 1024Mi + - name: server + image: labs.etsi.org:5050/tfs/controller/l3_distributedattackdetector:latest + imagePullPolicy: Always + ports: + - containerPort: 10000 + env: + - name: LOG_LEVEL + value: "INFO" + readinessProbe: + exec: + command: ["/bin/grpc_health_probe", "-addr=:10000"] + livenessProbe: + exec: + command: ["/bin/grpc_health_probe", "-addr=:10000"] + resources: + requests: + cpu: 250m + memory: 512Mi + limits: + cpu: 700m + memory: 1024Mi --- apiVersion: v1 kind: Service @@ -58,6 +58,6 @@ spec: selector: app: l3-distributedattackdetectorservice ports: - - name: grpc - port: 10000 - targetPort: 10000 + - name: grpc + port: 10000 + targetPort: 10000 diff --git a/manifests/load_generatorservice.yaml b/manifests/load_generatorservice.yaml index 7cc6f19122573a612ddca774c3a785bff93f8b38..bda284ebda122780762c72b53052de28b2b25385 100644 --- a/manifests/load_generatorservice.yaml +++ b/manifests/load_generatorservice.yaml @@ -28,28 +28,28 @@ spec: spec: terminationGracePeriodSeconds: 5 containers: - - name: server - image: labs.etsi.org:5050/tfs/controller/load_generator:latest - imagePullPolicy: Always - ports: - - containerPort: 50052 - - containerPort: 9192 - env: - - name: LOG_LEVEL - value: "INFO" - readinessProbe: - exec: - command: ["/bin/grpc_health_probe", "-addr=:50052"] - livenessProbe: - exec: - command: ["/bin/grpc_health_probe", "-addr=:50052"] - resources: - requests: - cpu: 256m - memory: 64Mi - limits: - cpu: 512m - memory: 128Mi + - name: server + image: labs.etsi.org:5050/tfs/controller/load_generator:latest + imagePullPolicy: Always + ports: + - containerPort: 50052 + - containerPort: 9192 + env: + - name: LOG_LEVEL + value: "INFO" + readinessProbe: + exec: + command: ["/bin/grpc_health_probe", "-addr=:50052"] + livenessProbe: + exec: + command: ["/bin/grpc_health_probe", "-addr=:50052"] + resources: + requests: + cpu: 256m + memory: 64Mi + limits: + cpu: 512m + memory: 128Mi --- apiVersion: v1 kind: Service @@ -62,11 +62,11 @@ spec: selector: app: load-generatorservice ports: - - name: grpc - protocol: TCP - port: 50052 - targetPort: 50052 - - name: metrics - protocol: TCP - port: 9192 - targetPort: 9192 + - name: grpc + protocol: TCP + port: 50052 + targetPort: 50052 + - name: metrics + protocol: TCP + port: 9192 + targetPort: 9192 diff --git a/manifests/mock_blockchain.yaml b/manifests/mock_blockchain.yaml index 1093610f8a0cf4d735e16e99df56cb78fd6481fc..806432be630fa2502e1c121a9c61f16e0fcd1b0c 100644 --- a/manifests/mock_blockchain.yaml +++ b/manifests/mock_blockchain.yaml @@ -27,27 +27,27 @@ spec: spec: terminationGracePeriodSeconds: 5 containers: - - name: server - image: labs.etsi.org:5050/tfs/controller/mock_blockchain:latest - imagePullPolicy: Always - ports: - - containerPort: 50051 - env: - - name: LOG_LEVEL - value: "INFO" - readinessProbe: - exec: - command: ["/bin/grpc_health_probe", "-addr=:50051"] - livenessProbe: - exec: - command: ["/bin/grpc_health_probe", "-addr=:50051"] - resources: - requests: - cpu: 100m - memory: 512Mi - limits: - cpu: 700m - memory: 1024Mi + - name: server + image: labs.etsi.org:5050/tfs/controller/mock_blockchain:latest + imagePullPolicy: Always + ports: + - containerPort: 50051 + env: + - name: LOG_LEVEL + value: "INFO" + readinessProbe: + exec: + command: ["/bin/grpc_health_probe", "-addr=:50051"] + livenessProbe: + exec: + command: ["/bin/grpc_health_probe", "-addr=:50051"] + resources: + requests: + cpu: 100m + memory: 512Mi + limits: + cpu: 700m + memory: 1024Mi --- apiVersion: v1 kind: Service @@ -58,7 +58,7 @@ spec: selector: app: mock-blockchain ports: - - name: grpc - protocol: TCP - port: 50051 - targetPort: 50051 + - name: grpc + protocol: TCP + port: 50051 + targetPort: 50051 diff --git a/manifests/monitoringservice.yaml b/manifests/monitoringservice.yaml index dbcfa68a036e3323f42e423de14002ba85576171..3a4d43cd9d17d645da4d70a22ec4dde12a8d7bc2 100644 --- a/manifests/monitoringservice.yaml +++ b/manifests/monitoringservice.yaml @@ -28,31 +28,31 @@ spec: spec: terminationGracePeriodSeconds: 5 containers: - - name: server - image: labs.etsi.org:5050/tfs/controller/monitoring:latest - imagePullPolicy: Always - ports: - - containerPort: 7070 - - containerPort: 9192 - env: - - name: LOG_LEVEL - value: "INFO" - envFrom: - - secretRef: - name: qdb-data - readinessProbe: - exec: - command: ["/bin/grpc_health_probe", "-addr=:7070"] - livenessProbe: - exec: - command: ["/bin/grpc_health_probe", "-addr=:7070"] - resources: - requests: - cpu: 250m - memory: 256Mi - limits: - cpu: 1000m - memory: 1024Mi + - name: server + image: labs.etsi.org:5050/tfs/controller/monitoring:latest + imagePullPolicy: Always + ports: + - containerPort: 7070 + - containerPort: 9192 + env: + - name: LOG_LEVEL + value: "INFO" + envFrom: + - secretRef: + name: qdb-data + readinessProbe: + exec: + command: ["/bin/grpc_health_probe", "-addr=:7070"] + livenessProbe: + exec: + command: ["/bin/grpc_health_probe", "-addr=:7070"] + resources: + requests: + cpu: 250m + memory: 256Mi + limits: + cpu: 1000m + memory: 1024Mi --- apiVersion: v1 kind: Service @@ -65,11 +65,11 @@ spec: selector: app: monitoringservice ports: - - name: grpc - protocol: TCP - port: 7070 - targetPort: 7070 - - name: metrics - protocol: TCP - port: 9192 - targetPort: 9192 + - name: grpc + protocol: TCP + port: 7070 + targetPort: 7070 + - name: metrics + protocol: TCP + port: 9192 + targetPort: 9192 diff --git a/manifests/nbiservice.yaml b/manifests/nbiservice.yaml index de97ba364d71d2b5a7f55211867a0a5062c521a4..0a3bd1ea69918429de73d58812248269ccf70a56 100644 --- a/manifests/nbiservice.yaml +++ b/manifests/nbiservice.yaml @@ -28,29 +28,29 @@ spec: spec: terminationGracePeriodSeconds: 5 containers: - - name: server - image: labs.etsi.org:5050/tfs/controller/nbi:latest - imagePullPolicy: Always - ports: - - containerPort: 8080 - - containerPort: 9090 - - containerPort: 9192 - env: - - name: LOG_LEVEL - value: "INFO" - readinessProbe: - exec: - command: ["/bin/grpc_health_probe", "-addr=:9090"] - livenessProbe: - exec: - command: ["/bin/grpc_health_probe", "-addr=:9090"] - resources: - requests: - cpu: 50m - memory: 64Mi - limits: - cpu: 500m - memory: 512Mi + - name: server + image: labs.etsi.org:5050/tfs/controller/nbi:latest + imagePullPolicy: Always + ports: + - containerPort: 8080 + - containerPort: 9090 + - containerPort: 9192 + env: + - name: LOG_LEVEL + value: "INFO" + readinessProbe: + exec: + command: ["/bin/grpc_health_probe", "-addr=:9090"] + livenessProbe: + exec: + command: ["/bin/grpc_health_probe", "-addr=:9090"] + resources: + requests: + cpu: 50m + memory: 64Mi + limits: + cpu: 500m + memory: 512Mi --- apiVersion: v1 kind: Service @@ -63,15 +63,15 @@ spec: selector: app: nbiservice ports: - - name: http - protocol: TCP - port: 8080 - targetPort: 8080 - - name: grpc - protocol: TCP - port: 9090 - targetPort: 9090 - - name: metrics - protocol: TCP - port: 9192 - targetPort: 9192 + - name: http + protocol: TCP + port: 8080 + targetPort: 8080 + - name: grpc + protocol: TCP + port: 9090 + targetPort: 9090 + - name: metrics + protocol: TCP + port: 9192 + targetPort: 9192 diff --git a/manifests/nginx_ingress_http.yaml b/manifests/nginx_ingress_http.yaml index e8e8a80e4d4325a28202070a463cda959e3ed634..91440fb7a2bf417d7a020b38070570f2ed3da8df 100644 --- a/manifests/nginx_ingress_http.yaml +++ b/manifests/nginx_ingress_http.yaml @@ -20,40 +20,40 @@ metadata: nginx.ingress.kubernetes.io/rewrite-target: /$2 spec: rules: - - http: - paths: - - path: /webui(/|$)(.*) - pathType: Prefix - backend: - service: - name: webuiservice - port: - number: 8004 - - path: /grafana(/|$)(.*) - pathType: Prefix - backend: - service: - name: webuiservice - port: - number: 3000 - - path: /()(restconf/.*) - pathType: Prefix - backend: - service: - name: nbiservice - port: - number: 8080 - - path: /()(debug-api/.*) - pathType: Prefix - backend: - service: - name: nbiservice - port: - number: 8080 - - path: /()(bmw/.*) - pathType: Prefix - backend: - service: - name: nbiservice - port: - number: 8080 + - http: + paths: + - path: /webui(/|$)(.*) + pathType: Prefix + backend: + service: + name: webuiservice + port: + number: 8004 + - path: /grafana(/|$)(.*) + pathType: Prefix + backend: + service: + name: webuiservice + port: + number: 3000 + - path: /()(restconf/.*) + pathType: Prefix + backend: + service: + name: nbiservice + port: + number: 8080 + - path: /()(debug-api/.*) + pathType: Prefix + backend: + service: + name: nbiservice + port: + number: 8080 + - path: /()(bmw/.*) + pathType: Prefix + backend: + service: + name: nbiservice + port: + number: 8080 diff --git a/manifests/opticalattackdetectorservice.yaml b/manifests/opticalattackdetectorservice.yaml index 197c23dd237e5f6271fbab7e47613892c6f58f83..11fd62b61f77a30c6916fbf189758947beb96286 100644 --- a/manifests/opticalattackdetectorservice.yaml +++ b/manifests/opticalattackdetectorservice.yaml @@ -27,33 +27,33 @@ spec: spec: terminationGracePeriodSeconds: 5 containers: - - name: server - image: labs.etsi.org:5050/tfs/controller/opticalattackdetector:latest - imagePullPolicy: Always - ports: - - containerPort: 10006 - - containerPort: 9192 - env: - - name: LOG_LEVEL - value: "INFO" - - name: REDIS_PASSWORD - valueFrom: - secretKeyRef: - name: redis-secrets - key: REDIS_PASSWORD - readinessProbe: - exec: - command: ["/bin/grpc_health_probe", "-addr=:10006"] - livenessProbe: - exec: - command: ["/bin/grpc_health_probe", "-addr=:10006"] - resources: - requests: - cpu: 250m - memory: 128Mi - limits: - cpu: 1000m - memory: 1024Mi + - name: server + image: labs.etsi.org:5050/tfs/controller/opticalattackdetector:latest + imagePullPolicy: Always + ports: + - containerPort: 10006 + - containerPort: 9192 + env: + - name: LOG_LEVEL + value: "INFO" + - name: REDIS_PASSWORD + valueFrom: + secretKeyRef: + name: redis-secrets + key: REDIS_PASSWORD + readinessProbe: + exec: + command: ["/bin/grpc_health_probe", "-addr=:10006"] + livenessProbe: + exec: + command: ["/bin/grpc_health_probe", "-addr=:10006"] + resources: + requests: + cpu: 250m + memory: 128Mi + limits: + cpu: 1000m + memory: 1024Mi --- apiVersion: v1 kind: Service @@ -66,12 +66,12 @@ spec: selector: app: opticalattackdetectorservice ports: - - name: grpc - port: 10006 - targetPort: 10006 - - name: metrics - port: 9192 - targetPort: 9192 + - name: grpc + port: 10006 + targetPort: 10006 + - name: metrics + port: 9192 + targetPort: 9192 --- apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler @@ -85,12 +85,12 @@ spec: minReplicas: 1 maxReplicas: 20 metrics: - - type: Resource - resource: - name: cpu - target: - type: Utilization - averageUtilization: 80 + - type: Resource + resource: + name: cpu + target: + type: Utilization + averageUtilization: 80 #behavior: # scaleDown: # stabilizationWindowSeconds: 30 diff --git a/manifests/opticalattackmanagerservice.yaml b/manifests/opticalattackmanagerservice.yaml index f9838bcbb1c0d86e5d3a22d8ed982b533f984eb3..4e01d76ac838bc3b0353f95de0c493d8004e5a9a 100644 --- a/manifests/opticalattackmanagerservice.yaml +++ b/manifests/opticalattackmanagerservice.yaml @@ -28,33 +28,33 @@ spec: spec: terminationGracePeriodSeconds: 5 containers: - - name: server - image: labs.etsi.org:5050/tfs/controller/opticalattackmanager:latest - imagePullPolicy: Always - ports: - - containerPort: 10005 - - containerPort: 9192 - env: - - name: LOG_LEVEL - value: "INFO" - - name: MONITORING_INTERVAL - value: "30" - - name: OPTICALATTACKMANAGERSERVICE_LOOP_MIN_WORKERS - value: "2" # remember to align this with the resource limits - - name: OPTICALATTACKMANAGERSERVICE_LOOP_MAX_WORKERS - value: "10" # remember to align this with the resource limits - - name: REDIS_PASSWORD - valueFrom: - secretKeyRef: - name: redis-secrets - key: REDIS_PASSWORD - resources: - requests: - cpu: 250m - memory: 128Mi - limits: - cpu: 10000m - memory: 10240Mi + - name: server + image: labs.etsi.org:5050/tfs/controller/opticalattackmanager:latest + imagePullPolicy: Always + ports: + - containerPort: 10005 + - containerPort: 9192 + env: + - name: LOG_LEVEL + value: "INFO" + - name: MONITORING_INTERVAL + value: "30" + - name: OPTICALATTACKMANAGERSERVICE_LOOP_MIN_WORKERS + value: "2" # remember to align this with the resource limits + - name: OPTICALATTACKMANAGERSERVICE_LOOP_MAX_WORKERS + value: "10" # remember to align this with the resource limits + - name: REDIS_PASSWORD + valueFrom: + secretKeyRef: + name: redis-secrets + key: REDIS_PASSWORD + resources: + requests: + cpu: 250m + memory: 128Mi + limits: + cpu: 10000m + memory: 10240Mi --- apiVersion: v1 kind: Service @@ -67,9 +67,9 @@ spec: selector: app: opticalattackmanagerservice ports: - - name: grpc - port: 10005 - targetPort: 10005 - - name: metrics - port: 9192 - targetPort: 9192 + - name: grpc + port: 10005 + targetPort: 10005 + - name: metrics + port: 9192 + targetPort: 9192 diff --git a/manifests/opticalattackmitigatorservice.yaml b/manifests/opticalattackmitigatorservice.yaml index 4d148b347157bd310ec6c921670f0434315e6e27..255e0fd86a5c948d44868e7b96e6c65825556910 100644 --- a/manifests/opticalattackmitigatorservice.yaml +++ b/manifests/opticalattackmitigatorservice.yaml @@ -27,28 +27,28 @@ spec: spec: terminationGracePeriodSeconds: 5 containers: - - name: server - image: labs.etsi.org:5050/tfs/controller/opticalattackmitigator:latest - imagePullPolicy: Always - ports: - - containerPort: 10007 - - containerPort: 9192 - env: - - name: LOG_LEVEL - value: "INFO" - readinessProbe: - exec: - command: ["/bin/grpc_health_probe", "-addr=:10007"] - livenessProbe: - exec: - command: ["/bin/grpc_health_probe", "-addr=:10007"] - resources: - requests: - cpu: 250m - memory: 128Mi - limits: - cpu: 1000m - memory: 1024Mi + - name: server + image: labs.etsi.org:5050/tfs/controller/opticalattackmitigator:latest + imagePullPolicy: Always + ports: + - containerPort: 10007 + - containerPort: 9192 + env: + - name: LOG_LEVEL + value: "INFO" + readinessProbe: + exec: + command: ["/bin/grpc_health_probe", "-addr=:10007"] + livenessProbe: + exec: + command: ["/bin/grpc_health_probe", "-addr=:10007"] + resources: + requests: + cpu: 250m + memory: 128Mi + limits: + cpu: 1000m + memory: 1024Mi --- apiVersion: v1 kind: Service @@ -61,12 +61,12 @@ spec: selector: app: opticalattackmitigatorservice ports: - - name: grpc - port: 10007 - targetPort: 10007 - - name: metrics - port: 9192 - targetPort: 9192 + - name: grpc + port: 10007 + targetPort: 10007 + - name: metrics + port: 9192 + targetPort: 9192 --- apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler @@ -80,12 +80,12 @@ spec: minReplicas: 1 maxReplicas: 20 metrics: - - type: Resource - resource: - name: cpu - target: - type: Utilization - averageUtilization: 80 + - type: Resource + resource: + name: cpu + target: + type: Utilization + averageUtilization: 80 #behavior: # scaleDown: # stabilizationWindowSeconds: 30 diff --git a/manifests/opticalcontrollerservice.yaml b/manifests/opticalcontrollerservice.yaml new file mode 100644 index 0000000000000000000000000000000000000000..f2351720c008d9ecaf53779253ba8a368ffb8bf7 --- /dev/null +++ b/manifests/opticalcontrollerservice.yaml @@ -0,0 +1,72 @@ +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# +# 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. + +apiVersion: apps/v1 +kind: Deployment +metadata: + name: opticalcontrollerservice +spec: + selector: + matchLabels: + app: opticalcontrollerservice + replicas: 1 + template: + metadata: + labels: + app: opticalcontrollerservice + spec: + terminationGracePeriodSeconds: 5 + containers: + - name: server + image: localhost:32000/tfs/opticalcontroller:dev + imagePullPolicy: Never + ports: + - containerPort: 10060 + - containerPort: 9192 + env: + - name: LOG_LEVEL + value: "INFO" + #readinessProbe: + # exec: + # command: ["/bin/grpc_health_probe", "-addr=:10060"] + #livenessProbe: + # exec: + # command: ["/bin/grpc_health_probe", "-addr=:10060"] + resources: + requests: + cpu: 500m + memory: 128Mi + limits: + cpu: 1000m + memory: 1024Mi +--- +apiVersion: v1 +kind: Service +metadata: + name: opticalcontrollerservice + labels: + app: opticalcontrollerservice +spec: + type: ClusterIP + selector: + app: opticalcontrollerservice + ports: + - name: grpc + protocol: TCP + port: 10060 + targetPort: 10060 + - name: metrics + protocol: TCP + port: 9192 + targetPort: 9192 diff --git a/manifests/pathcompservice.yaml b/manifests/pathcompservice.yaml index 87d907a728d0b689dcedde730fad7a2e886a6659..f017e694085da963944194197c91f5b4e9bcf70c 100644 --- a/manifests/pathcompservice.yaml +++ b/manifests/pathcompservice.yaml @@ -28,54 +28,54 @@ spec: spec: terminationGracePeriodSeconds: 5 containers: - - name: frontend - image: labs.etsi.org:5050/tfs/controller/pathcomp-frontend:latest - imagePullPolicy: Always - ports: - - containerPort: 10020 - - containerPort: 9192 - env: - - name: LOG_LEVEL - value: "INFO" - - name: ENABLE_FORECASTER - value: "YES" - readinessProbe: - exec: - command: ["/bin/grpc_health_probe", "-addr=:10020"] - livenessProbe: - exec: - command: ["/bin/grpc_health_probe", "-addr=:10020"] - resources: - requests: - cpu: 250m - memory: 128Mi - limits: - cpu: 1000m - memory: 1024Mi - - name: backend - image: labs.etsi.org:5050/tfs/controller/pathcomp-backend:latest - imagePullPolicy: Always - ports: - - containerPort: 8081 - #readinessProbe: - # httpGet: - # path: /health - # port: 8081 - # initialDelaySeconds: 5 - # timeoutSeconds: 5 - #livenessProbe: - # httpGet: - # path: /health - # port: 8081 - # initialDelaySeconds: 5 - # timeoutSeconds: 5 - resources: - requests: - cpu: 250m - memory: 256Mi - limits: - cpu: 1000m - memory: 1024Mi + - name: frontend + image: labs.etsi.org:5050/tfs/controller/pathcomp-frontend:latest + imagePullPolicy: Always + ports: + - containerPort: 10020 + - containerPort: 9192 + env: + - name: LOG_LEVEL + value: "INFO" + - name: ENABLE_FORECASTER + value: "NO" + readinessProbe: + exec: + command: ["/bin/grpc_health_probe", "-addr=:10020"] + livenessProbe: + exec: + command: ["/bin/grpc_health_probe", "-addr=:10020"] + resources: + requests: + cpu: 250m + memory: 128Mi + limits: + cpu: 1000m + memory: 1024Mi + - name: backend + image: labs.etsi.org:5050/tfs/controller/pathcomp-backend:latest + imagePullPolicy: Always + ports: + - containerPort: 8081 + #readinessProbe: + # httpGet: + # path: /health + # port: 8081 + # initialDelaySeconds: 5 + # timeoutSeconds: 5 + #livenessProbe: + # httpGet: + # path: /health + # port: 8081 + # initialDelaySeconds: 5 + # timeoutSeconds: 5 + resources: + requests: + cpu: 250m + memory: 256Mi + limits: + cpu: 1000m + memory: 1024Mi --- apiVersion: v1 kind: Service @@ -88,18 +88,18 @@ spec: selector: app: pathcompservice ports: - - name: grpc - protocol: TCP - port: 10020 - targetPort: 10020 - - name: http - protocol: TCP - port: 8081 - targetPort: 8081 - - name: metrics - protocol: TCP - port: 9192 - targetPort: 9192 + - name: grpc + protocol: TCP + port: 10020 + targetPort: 10020 + - name: http + protocol: TCP + port: 8081 + targetPort: 8081 + - name: metrics + protocol: TCP + port: 9192 + targetPort: 9192 --- apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler @@ -113,12 +113,12 @@ spec: minReplicas: 1 maxReplicas: 20 metrics: - - type: Resource - resource: - name: cpu - target: - type: Utilization - averageUtilization: 80 + - type: Resource + resource: + name: cpu + target: + type: Utilization + averageUtilization: 80 #behavior: # scaleDown: # stabilizationWindowSeconds: 30 diff --git a/manifests/policyservice.yaml b/manifests/policyservice.yaml index b34331724665e4788d2de327bb5160eb370fed96..7ef040e7fde49c4e023b015f6f5e0bb917317fbe 100644 --- a/manifests/policyservice.yaml +++ b/manifests/policyservice.yaml @@ -108,22 +108,22 @@ spec: limits: cpu: 2000m memory: 2048Mi ---- -apiVersion: autoscaling/v2 -kind: HorizontalPodAutoscaler -metadata: - name: policyservice-hpa -spec: - scaleTargetRef: - apiVersion: apps/v1 - kind: Deployment - name: policyservice - minReplicas: 1 - maxReplicas: 10 - metrics: - - type: Resource - resource: - name: cpu - target: - type: Utilization - averageUtilization: 80 +#--- +#apiVersion: autoscaling/v2 +#kind: HorizontalPodAutoscaler +#metadata: +# name: policyservice-hpa +#spec: +# scaleTargetRef: +# apiVersion: apps/v1 +# kind: Deployment +# name: policyservice +# minReplicas: 1 +# maxReplicas: 10 +# metrics: +# - type: Resource +# resource: +# name: cpu +# target: +# type: Utilization +# averageUtilization: 80 diff --git a/manifests/prometheus.yaml b/manifests/prometheus.yaml index 43a766b6e2ae67e36d161c3063a8a2d3ccc875d3..ec1ffb0c509437a715c508aa378a2a01f1c2252a 100644 --- a/manifests/prometheus.yaml +++ b/manifests/prometheus.yaml @@ -60,18 +60,18 @@ spec: spec: #serviceAccountName: prometheus containers: - - name: prometheus - image: prom/prometheus:v2.28.1 - ports: - - containerPort: 9090 - volumeMounts: - - name: prometheus-config-volume - mountPath: /etc/prometheus/prometheus.yml - subPath: prometheus.yml + - name: prometheus + image: prom/prometheus:v2.28.1 + ports: + - containerPort: 9090 + volumeMounts: + - name: prometheus-config-volume + mountPath: /etc/prometheus/prometheus.yml + subPath: prometheus.yml volumes: - - name: prometheus-config-volume - configMap: - name: prometheus-config + - name: prometheus-config-volume + configMap: + name: prometheus-config restartPolicy: Always --- apiVersion: v1 @@ -85,8 +85,9 @@ spec: selector: app: prometheus ports: - - name: http - protocol: TCP - port: 9090 - targetPort: 9090 + - name: http + protocol: TCP + port: 9090 + targetPort: 9090 --- + diff --git a/manifests/servicemonitors.yaml b/manifests/servicemonitors.yaml index 1f7f3322d77e3e06a0fd902baad4481e77e143ac..ccfe774b3a4b860c5e7f393ee9e3d8ca4eb097ae 100644 --- a/manifests/servicemonitors.yaml +++ b/manifests/servicemonitors.yaml @@ -20,9 +20,9 @@ metadata: labels: app: contextservice #release: prometheus - #release: prom # name of the release - # ( VERY IMPORTANT: You need to know the correct release name by viewing - # the servicemonitor of Prometheus itself: Without the correct name, + #release: prom # name of the release + # ( VERY IMPORTANT: You need to know the correct release name by viewing + # the servicemonitor of Prometheus itself: Without the correct name, # Prometheus cannot identify the metrics of the Flask app as the target.) spec: selector: @@ -32,14 +32,14 @@ spec: app: contextservice # same as above #release: prometheus # same as above endpoints: - - port: metrics # named port in target app - scheme: http - path: /metrics # path to scrape - interval: 5s # scrape interval + - port: metrics # named port in target app + scheme: http + path: /metrics # path to scrape + interval: 5s # scrape interval namespaceSelector: any: false matchNames: - - tfs # namespace where the app is running + - tfs # namespace where the app is running --- apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor @@ -49,9 +49,9 @@ metadata: labels: app: deviceservice #release: prometheus - #release: prom # name of the release - # ( VERY IMPORTANT: You need to know the correct release name by viewing - # the servicemonitor of Prometheus itself: Without the correct name, + #release: prom # name of the release + # ( VERY IMPORTANT: You need to know the correct release name by viewing + # the servicemonitor of Prometheus itself: Without the correct name, # Prometheus cannot identify the metrics of the Flask app as the target.) spec: selector: @@ -61,14 +61,14 @@ spec: app: deviceservice # same as above #release: prometheus # same as above endpoints: - - port: metrics # named port in target app - scheme: http - path: /metrics # path to scrape - interval: 5s # scrape interval + - port: metrics # named port in target app + scheme: http + path: /metrics # path to scrape + interval: 5s # scrape interval namespaceSelector: any: false matchNames: - - tfs # namespace where the app is running + - tfs # namespace where the app is running --- apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor @@ -78,9 +78,9 @@ metadata: labels: app: serviceservice #release: prometheus - #release: prom # name of the release - # ( VERY IMPORTANT: You need to know the correct release name by viewing - # the servicemonitor of Prometheus itself: Without the correct name, + #release: prom # name of the release + # ( VERY IMPORTANT: You need to know the correct release name by viewing + # the servicemonitor of Prometheus itself: Without the correct name, # Prometheus cannot identify the metrics of the Flask app as the target.) spec: selector: @@ -90,14 +90,14 @@ spec: app: serviceservice # same as above #release: prometheus # same as above endpoints: - - port: metrics # named port in target app - scheme: http - path: /metrics # path to scrape - interval: 5s # scrape interval + - port: metrics # named port in target app + scheme: http + path: /metrics # path to scrape + interval: 5s # scrape interval namespaceSelector: any: false matchNames: - - tfs # namespace where the app is running + - tfs # namespace where the app is running --- apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor @@ -107,9 +107,9 @@ metadata: labels: app: sliceservice #release: prometheus - #release: prom # name of the release - # ( VERY IMPORTANT: You need to know the correct release name by viewing - # the servicemonitor of Prometheus itself: Without the correct name, + #release: prom # name of the release + # ( VERY IMPORTANT: You need to know the correct release name by viewing + # the servicemonitor of Prometheus itself: Without the correct name, # Prometheus cannot identify the metrics of the Flask app as the target.) spec: selector: @@ -119,14 +119,14 @@ spec: app: sliceservice # same as above #release: prometheus # same as above endpoints: - - port: metrics # named port in target app - scheme: http - path: /metrics # path to scrape - interval: 5s # scrape interval + - port: metrics # named port in target app + scheme: http + path: /metrics # path to scrape + interval: 5s # scrape interval namespaceSelector: any: false matchNames: - - tfs # namespace where the app is running + - tfs # namespace where the app is running --- apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor @@ -136,9 +136,9 @@ metadata: labels: app: pathcompservice #release: prometheus - #release: prom # name of the release - # ( VERY IMPORTANT: You need to know the correct release name by viewing - # the servicemonitor of Prometheus itself: Without the correct name, + #release: prom # name of the release + # ( VERY IMPORTANT: You need to know the correct release name by viewing + # the servicemonitor of Prometheus itself: Without the correct name, # Prometheus cannot identify the metrics of the Flask app as the target.) spec: selector: @@ -148,14 +148,14 @@ spec: app: pathcompservice # same as above #release: prometheus # same as above endpoints: - - port: metrics # named port in target app - scheme: http - path: /metrics # path to scrape - interval: 5s # scrape interval + - port: metrics # named port in target app + scheme: http + path: /metrics # path to scrape + interval: 5s # scrape interval namespaceSelector: any: false matchNames: - - tfs # namespace where the app is running + - tfs # namespace where the app is running --- apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor @@ -165,9 +165,9 @@ metadata: labels: app: monitoringservice #release: prometheus - #release: prom # name of the release - # ( VERY IMPORTANT: You need to know the correct release name by viewing - # the servicemonitor of Prometheus itself: Without the correct name, + #release: prom # name of the release + # ( VERY IMPORTANT: You need to know the correct release name by viewing + # the servicemonitor of Prometheus itself: Without the correct name, # Prometheus cannot identify the metrics of the Flask app as the target.) spec: selector: @@ -177,14 +177,14 @@ spec: app: monitoringservice # same as above #release: prometheus # same as above endpoints: - - port: metrics # named port in target app - scheme: http - path: /metrics # path to scrape - interval: 5s # scrape interval + - port: metrics # named port in target app + scheme: http + path: /metrics # path to scrape + interval: 5s # scrape interval namespaceSelector: any: false matchNames: - - tfs # namespace where the app is running + - tfs # namespace where the app is running --- apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor @@ -194,9 +194,9 @@ metadata: labels: app: dltservice #release: prometheus - #release: prom # name of the release - # ( VERY IMPORTANT: You need to know the correct release name by viewing - # the servicemonitor of Prometheus itself: Without the correct name, + #release: prom # name of the release + # ( VERY IMPORTANT: You need to know the correct release name by viewing + # the servicemonitor of Prometheus itself: Without the correct name, # Prometheus cannot identify the metrics of the Flask app as the target.) spec: selector: @@ -206,14 +206,14 @@ spec: app: dltservice # same as above #release: prometheus # same as above endpoints: - - port: metrics # named port in target app - scheme: http - path: /metrics # path to scrape - interval: 5s # scrape interval + - port: metrics # named port in target app + scheme: http + path: /metrics # path to scrape + interval: 5s # scrape interval namespaceSelector: any: false matchNames: - - tfs # namespace where the app is running + - tfs # namespace where the app is running --- apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor @@ -223,9 +223,9 @@ metadata: labels: app: interdomainservice #release: prometheus - #release: prom # name of the release - # ( VERY IMPORTANT: You need to know the correct release name by viewing - # the servicemonitor of Prometheus itself: Without the correct name, + #release: prom # name of the release + # ( VERY IMPORTANT: You need to know the correct release name by viewing + # the servicemonitor of Prometheus itself: Without the correct name, # Prometheus cannot identify the metrics of the Flask app as the target.) spec: selector: @@ -235,14 +235,14 @@ spec: app: interdomainservice # same as above #release: prometheus # same as above endpoints: - - port: metrics # named port in target app - scheme: http - path: /metrics # path to scrape - interval: 5s # scrape interval + - port: metrics # named port in target app + scheme: http + path: /metrics # path to scrape + interval: 5s # scrape interval namespaceSelector: any: false matchNames: - - tfs # namespace where the app is running + - tfs # namespace where the app is running --- apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor @@ -252,9 +252,9 @@ metadata: labels: app: policyservice #release: prometheus - #release: prom # name of the release - # ( VERY IMPORTANT: You need to know the correct release name by viewing - # the servicemonitor of Prometheus itself: Without the correct name, + #release: prom # name of the release + # ( VERY IMPORTANT: You need to know the correct release name by viewing + # the servicemonitor of Prometheus itself: Without the correct name, # Prometheus cannot identify the metrics of the Flask app as the target.) spec: selector: @@ -264,14 +264,14 @@ spec: app: policyservice # same as above #release: prometheus # same as above endpoints: - - port: metrics # named port in target app - scheme: http - path: /q/metrics # path to scrape - interval: 5s # scrape interval + - port: metrics # named port in target app + scheme: http + path: /q/metrics # path to scrape + interval: 5s # scrape interval namespaceSelector: any: false matchNames: - - tfs # namespace where the app is running + - tfs # namespace where the app is running --- apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor @@ -281,9 +281,9 @@ metadata: labels: app: ztpservice #release: prometheus - #release: prom # name of the release - # ( VERY IMPORTANT: You need to know the correct release name by viewing - # the servicemonitor of Prometheus itself: Without the correct name, + #release: prom # name of the release + # ( VERY IMPORTANT: You need to know the correct release name by viewing + # the servicemonitor of Prometheus itself: Without the correct name, # Prometheus cannot identify the metrics of the Flask app as the target.) spec: selector: @@ -293,14 +293,14 @@ spec: app: ztpservice # same as above #release: prometheus # same as above endpoints: - - port: metrics # named port in target app - scheme: http - path: /q/metrics # path to scrape - interval: 5s # scrape interval + - port: metrics # named port in target app + scheme: http + path: /q/metrics # path to scrape + interval: 5s # scrape interval namespaceSelector: any: false matchNames: - - tfs # namespace where the app is running + - tfs # namespace where the app is running --- apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor @@ -310,9 +310,9 @@ metadata: labels: app: nbiservice #release: prometheus - #release: prom # name of the release - # ( VERY IMPORTANT: You need to know the correct release name by viewing - # the servicemonitor of Prometheus itself: Without the correct name, + #release: prom # name of the release + # ( VERY IMPORTANT: You need to know the correct release name by viewing + # the servicemonitor of Prometheus itself: Without the correct name, # Prometheus cannot identify the metrics of the Flask app as the target.) spec: selector: @@ -322,14 +322,14 @@ spec: app: nbiservice # same as above #release: prometheus # same as above endpoints: - - port: metrics # named port in target app - scheme: http - path: /metrics # path to scrape - interval: 5s # scrape interval + - port: metrics # named port in target app + scheme: http + path: /metrics # path to scrape + interval: 5s # scrape interval namespaceSelector: any: false matchNames: - - tfs # namespace where the app is running + - tfs # namespace where the app is running --- apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor @@ -339,9 +339,9 @@ metadata: labels: app: load-generatorservice #release: prometheus - #release: prom # name of the release - # ( VERY IMPORTANT: You need to know the correct release name by viewing - # the servicemonitor of Prometheus itself: Without the correct name, + #release: prom # name of the release + # ( VERY IMPORTANT: You need to know the correct release name by viewing + # the servicemonitor of Prometheus itself: Without the correct name, # Prometheus cannot identify the metrics of the Flask app as the target.) spec: selector: @@ -351,14 +351,14 @@ spec: app: load-generatorservice # same as above #release: prometheus # same as above endpoints: - - port: metrics # named port in target app - scheme: http - path: /metrics # path to scrape - interval: 5s # scrape interval + - port: metrics # named port in target app + scheme: http + path: /metrics # path to scrape + interval: 5s # scrape interval namespaceSelector: any: false matchNames: - - tfs # namespace where the app is running + - tfs # namespace where the app is running --- apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor @@ -368,9 +368,9 @@ metadata: labels: app: dbscanservingservice #release: prometheus - #release: prom # name of the release - # ( VERY IMPORTANT: You need to know the correct release name by viewing - # the servicemonitor of Prometheus itself: Without the correct name, + #release: prom # name of the release + # ( VERY IMPORTANT: You need to know the correct release name by viewing + # the servicemonitor of Prometheus itself: Without the correct name, # Prometheus cannot identify the metrics of the Flask app as the target.) spec: selector: @@ -380,14 +380,14 @@ spec: app: dbscanservingservice # same as above #release: prometheus # same as above endpoints: - - port: metrics # named port in target app - scheme: http - path: /metrics # path to scrape - interval: 5s # scrape interval + - port: metrics # named port in target app + scheme: http + path: /metrics # path to scrape + interval: 5s # scrape interval namespaceSelector: any: false matchNames: - - tfs # namespace where the app is running + - tfs # namespace where the app is running --- apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor @@ -397,9 +397,9 @@ metadata: labels: app: opticalattackmitigatorservice #release: prometheus - #release: prom # name of the release - # ( VERY IMPORTANT: You need to know the correct release name by viewing - # the servicemonitor of Prometheus itself: Without the correct name, + #release: prom # name of the release + # ( VERY IMPORTANT: You need to know the correct release name by viewing + # the servicemonitor of Prometheus itself: Without the correct name, # Prometheus cannot identify the metrics of the Flask app as the target.) spec: selector: @@ -409,14 +409,14 @@ spec: app: opticalattackmitigatorservice # same as above #release: prometheus # same as above endpoints: - - port: metrics # named port in target app - scheme: http - path: /metrics # path to scrape - interval: 5s # scrape interval + - port: metrics # named port in target app + scheme: http + path: /metrics # path to scrape + interval: 5s # scrape interval namespaceSelector: any: false matchNames: - - tfs # namespace where the app is running + - tfs # namespace where the app is running --- apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor @@ -426,9 +426,9 @@ metadata: labels: app: opticalattackdetectorservice #release: prometheus - #release: prom # name of the release - # ( VERY IMPORTANT: You need to know the correct release name by viewing - # the servicemonitor of Prometheus itself: Without the correct name, + #release: prom # name of the release + # ( VERY IMPORTANT: You need to know the correct release name by viewing + # the servicemonitor of Prometheus itself: Without the correct name, # Prometheus cannot identify the metrics of the Flask app as the target.) spec: selector: @@ -438,14 +438,14 @@ spec: app: opticalattackdetectorservice # same as above #release: prometheus # same as above endpoints: - - port: metrics # named port in target app - scheme: http - path: /metrics # path to scrape - interval: 5s # scrape interval + - port: metrics # named port in target app + scheme: http + path: /metrics # path to scrape + interval: 5s # scrape interval namespaceSelector: any: false matchNames: - - tfs # namespace where the app is running + - tfs # namespace where the app is running --- apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor @@ -455,9 +455,9 @@ metadata: labels: app: opticalattackmanagerservice #release: prometheus - #release: prom # name of the release - # ( VERY IMPORTANT: You need to know the correct release name by viewing - # the servicemonitor of Prometheus itself: Without the correct name, + #release: prom # name of the release + # ( VERY IMPORTANT: You need to know the correct release name by viewing + # the servicemonitor of Prometheus itself: Without the correct name, # Prometheus cannot identify the metrics of the Flask app as the target.) spec: selector: @@ -467,11 +467,11 @@ spec: app: opticalattackmanagerservice # same as above #release: prometheus # same as above endpoints: - - port: metrics # named port in target app - scheme: http - path: /metrics # path to scrape - interval: 5s # scrape interval + - port: metrics # named port in target app + scheme: http + path: /metrics # path to scrape + interval: 5s # scrape interval namespaceSelector: any: false matchNames: - - tfs # namespace where the app is running + - tfs # namespace where the app is running diff --git a/manifests/serviceservice.yaml b/manifests/serviceservice.yaml index 7d7bdaa4ef9ad4972da6236071810c63a9faa4f8..2fb7ebb8756a48b0a909734b7b9a90a44d79b9ea 100644 --- a/manifests/serviceservice.yaml +++ b/manifests/serviceservice.yaml @@ -28,28 +28,28 @@ spec: spec: terminationGracePeriodSeconds: 5 containers: - - name: server - image: labs.etsi.org:5050/tfs/controller/service:latest - imagePullPolicy: Always - ports: - - containerPort: 3030 - - containerPort: 9192 - env: - - name: LOG_LEVEL - value: "INFO" - readinessProbe: - exec: - command: ["/bin/grpc_health_probe", "-addr=:3030"] - livenessProbe: - exec: - command: ["/bin/grpc_health_probe", "-addr=:3030"] - resources: - requests: - cpu: 250m - memory: 128Mi - limits: - cpu: 1000m - memory: 1024Mi + - name: server + image: labs.etsi.org:5050/tfs/controller/service:latest + imagePullPolicy: Always + ports: + - containerPort: 3030 + - containerPort: 9192 + env: + - name: LOG_LEVEL + value: "INFO" + readinessProbe: + exec: + command: ["/bin/grpc_health_probe", "-addr=:3030"] + livenessProbe: + exec: + command: ["/bin/grpc_health_probe", "-addr=:3030"] + resources: + requests: + cpu: 250m + memory: 128Mi + limits: + cpu: 1000m + memory: 1024Mi --- apiVersion: v1 kind: Service @@ -62,14 +62,14 @@ spec: selector: app: serviceservice ports: - - name: grpc - protocol: TCP - port: 3030 - targetPort: 3030 - - name: metrics - protocol: TCP - port: 9192 - targetPort: 9192 + - name: grpc + protocol: TCP + port: 3030 + targetPort: 3030 + - name: metrics + protocol: TCP + port: 9192 + targetPort: 9192 --- apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler @@ -83,12 +83,12 @@ spec: minReplicas: 1 maxReplicas: 20 metrics: - - type: Resource - resource: - name: cpu - target: - type: Utilization - averageUtilization: 80 + - type: Resource + resource: + name: cpu + target: + type: Utilization + averageUtilization: 80 #behavior: # scaleDown: # stabilizationWindowSeconds: 30 diff --git a/manifests/sliceservice.yaml b/manifests/sliceservice.yaml index e7e5c1604a8b971424ff5f7e5bf292c4b263cbfe..0daa8e70f4965274be563a8e5f703855281fe698 100644 --- a/manifests/sliceservice.yaml +++ b/manifests/sliceservice.yaml @@ -28,33 +28,33 @@ spec: spec: terminationGracePeriodSeconds: 5 containers: - - name: server - image: labs.etsi.org:5050/tfs/controller/slice:latest - imagePullPolicy: Always - ports: - - containerPort: 4040 - - containerPort: 9192 - env: - - name: LOG_LEVEL - value: "INFO" - - name: SLICE_GROUPING - value: "DISABLE" - envFrom: - - secretRef: - name: qdb-data - readinessProbe: - exec: - command: ["/bin/grpc_health_probe", "-addr=:4040"] - livenessProbe: - exec: - command: ["/bin/grpc_health_probe", "-addr=:4040"] - resources: - requests: - cpu: 250m - memory: 128Mi - limits: - cpu: 1000m - memory: 1024Mi + - name: server + image: labs.etsi.org:5050/tfs/controller/slice:latest + imagePullPolicy: Always + ports: + - containerPort: 4040 + - containerPort: 9192 + env: + - name: LOG_LEVEL + value: "INFO" + - name: SLICE_GROUPING + value: "DISABLE" + envFrom: + - secretRef: + name: qdb-data + readinessProbe: + exec: + command: ["/bin/grpc_health_probe", "-addr=:4040"] + livenessProbe: + exec: + command: ["/bin/grpc_health_probe", "-addr=:4040"] + resources: + requests: + cpu: 250m + memory: 128Mi + limits: + cpu: 1000m + memory: 1024Mi --- apiVersion: v1 kind: Service @@ -67,14 +67,14 @@ spec: selector: app: sliceservice ports: - - name: grpc - protocol: TCP - port: 4040 - targetPort: 4040 - - name: metrics - protocol: TCP - port: 9192 - targetPort: 9192 + - name: grpc + protocol: TCP + port: 4040 + targetPort: 4040 + - name: metrics + protocol: TCP + port: 9192 + targetPort: 9192 --- apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler @@ -88,12 +88,12 @@ spec: minReplicas: 1 maxReplicas: 20 metrics: - - type: Resource - resource: - name: cpu - target: - type: Utilization - averageUtilization: 80 + - type: Resource + resource: + name: cpu + target: + type: Utilization + averageUtilization: 80 #behavior: # scaleDown: # stabilizationWindowSeconds: 30 diff --git a/manifests/teservice.yaml b/manifests/teservice.yaml index 15f1619df08069f00db883f0b918c17837c707d1..ec8f2e3d6ad360eab1a1869e9564fd6c03561e06 100644 --- a/manifests/teservice.yaml +++ b/manifests/teservice.yaml @@ -30,37 +30,37 @@ spec: terminationGracePeriodSeconds: 5 shareProcessNamespace: true containers: - - name: server - image: labs.etsi.org:5050/tfs/controller/te:latest - imagePullPolicy: Always - ports: - - containerPort: 10030 - env: - - name: ERLANG_LOGGER_LEVEL - value: "debug" - - name: ERLANG_COOKIE - value: "tfte-unsafe-cookie" - - name: ERLANG_NODE_NAME - valueFrom: - fieldRef: - fieldPath: metadata.name - - name: ERLANG_NODE_IP - valueFrom: - fieldRef: - fieldPath: status.podIP - readinessProbe: - exec: - command: ["/tfte/bin/tfte", "status"] - livenessProbe: - exec: - command: ["/tfte/bin/tfte", "status"] - resources: - requests: - cpu: 250m - memory: 512Mi - limits: - cpu: 700m - memory: 1024Mi + - name: server + image: labs.etsi.org:5050/tfs/controller/te:latest + imagePullPolicy: Always + ports: + - containerPort: 10030 + env: + - name: ERLANG_LOGGER_LEVEL + value: "debug" + - name: ERLANG_COOKIE + value: "tfte-unsafe-cookie" + - name: ERLANG_NODE_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: ERLANG_NODE_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + readinessProbe: + exec: + command: ["/tfte/bin/tfte", "status"] + livenessProbe: + exec: + command: ["/tfte/bin/tfte", "status"] + resources: + requests: + cpu: 250m + memory: 512Mi + limits: + cpu: 700m + memory: 1024Mi --- apiVersion: v1 kind: Service @@ -71,11 +71,11 @@ spec: selector: app: teservice ports: - - name: grpc - protocol: TCP - port: 10030 - targetPort: 10030 - - name: pcep - protocol: TCP - port: 4189 - targetPort: 4189 + - name: grpc + protocol: TCP + port: 10030 + targetPort: 10030 + - name: pcep + protocol: TCP + port: 4189 + targetPort: 4189 diff --git a/manifests/webuiservice.yaml b/manifests/webuiservice.yaml index 43caa9f04b56d6477d82c5a5bb22cb292eec8a90..bb2573c454a7bf59364a7526a1b5193111daf892 100644 --- a/manifests/webuiservice.yaml +++ b/manifests/webuiservice.yaml @@ -32,73 +32,73 @@ spec: supplementalGroups: - 0 containers: - - name: server - image: labs.etsi.org:5050/tfs/controller/webui:latest - imagePullPolicy: Always - ports: - - containerPort: 8004 - env: - - name: LOG_LEVEL - value: "INFO" - - name: WEBUISERVICE_SERVICE_BASEURL_HTTP - value: "/webui/" - readinessProbe: - httpGet: - path: /healthz/ready - port: 8004 - initialDelaySeconds: 5 - timeoutSeconds: 1 - livenessProbe: - httpGet: - path: /healthz/live - port: 8004 - initialDelaySeconds: 5 - timeoutSeconds: 1 - resources: - requests: - cpu: 50m - memory: 128Mi - limits: - cpu: 1000m - memory: 1024Mi - - name: grafana - image: grafana/grafana:8.5.22 - imagePullPolicy: IfNotPresent - ports: - - containerPort: 3000 - name: http-grafana - protocol: TCP - env: - - name: GF_SERVER_ROOT_URL - value: "http://0.0.0.0:3000/grafana/" - - name: GF_SERVER_SERVE_FROM_SUB_PATH - value: "true" - readinessProbe: - failureThreshold: 60 - httpGet: - #path: /robots.txt - path: /login - port: 3000 - scheme: HTTP - initialDelaySeconds: 1 - periodSeconds: 1 - successThreshold: 1 - timeoutSeconds: 2 - livenessProbe: - failureThreshold: 60 - initialDelaySeconds: 1 - periodSeconds: 1 - successThreshold: 1 - tcpSocket: - port: 3000 - timeoutSeconds: 1 - resources: - requests: - cpu: 250m - memory: 512Mi - limits: - cpu: 500m - memory: 1024Mi + - name: server + image: labs.etsi.org:5050/tfs/controller/webui:latest + imagePullPolicy: Always + ports: + - containerPort: 8004 + env: + - name: LOG_LEVEL + value: "INFO" + - name: WEBUISERVICE_SERVICE_BASEURL_HTTP + value: "/webui/" + readinessProbe: + httpGet: + path: /healthz/ready + port: 8004 + initialDelaySeconds: 5 + timeoutSeconds: 1 + livenessProbe: + httpGet: + path: /healthz/live + port: 8004 + initialDelaySeconds: 5 + timeoutSeconds: 1 + resources: + requests: + cpu: 50m + memory: 128Mi + limits: + cpu: 1000m + memory: 1024Mi + - name: grafana + image: grafana/grafana:8.5.22 + imagePullPolicy: IfNotPresent + ports: + - containerPort: 3000 + name: http-grafana + protocol: TCP + env: + - name: GF_SERVER_ROOT_URL + value: "http://0.0.0.0:3000/grafana/" + - name: GF_SERVER_SERVE_FROM_SUB_PATH + value: "true" + readinessProbe: + failureThreshold: 60 + httpGet: + #path: /robots.txt + path: /login + port: 3000 + scheme: HTTP + initialDelaySeconds: 1 + periodSeconds: 1 + successThreshold: 1 + timeoutSeconds: 2 + livenessProbe: + failureThreshold: 60 + initialDelaySeconds: 1 + periodSeconds: 1 + successThreshold: 1 + tcpSocket: + port: 3000 + timeoutSeconds: 1 + resources: + requests: + cpu: 250m + memory: 512Mi + limits: + cpu: 500m + memory: 1024Mi --- apiVersion: v1 kind: Service @@ -111,9 +111,9 @@ spec: selector: app: webuiservice ports: - - name: webui - port: 8004 - targetPort: 8004 - - name: grafana - port: 3000 - targetPort: 3000 + - name: webui + port: 8004 + targetPort: 8004 + - name: grafana + port: 3000 + targetPort: 3000 diff --git a/manifests/ztpservice.yaml b/manifests/ztpservice.yaml index e2be80cea7b1e779fdc9bb05110ddc0d6b144101..608bab125be80decfc36ce290d1a3f666ff23229 100644 --- a/manifests/ztpservice.yaml +++ b/manifests/ztpservice.yaml @@ -104,22 +104,22 @@ spec: limits: cpu: 2000m memory: 2048Mi ---- -apiVersion: autoscaling/v2 -kind: HorizontalPodAutoscaler -metadata: - name: ztpservice-hpa -spec: - scaleTargetRef: - apiVersion: apps/v1 - kind: Deployment - name: ztpservice - minReplicas: 1 - maxReplicas: 10 - metrics: - - type: Resource - resource: - name: cpu - target: - type: Utilization - averageUtilization: 80 +#--- +#apiVersion: autoscaling/v2 +#kind: HorizontalPodAutoscaler +#metadata: +# name: ztpservice-hpa +#spec: +# scaleTargetRef: +# apiVersion: apps/v1 +# kind: Deployment +# name: ztpservice +# minReplicas: 1 +# maxReplicas: 10 +# metrics: +# - type: Resource +# resource: +# name: cpu +# target: +# type: Utilization +# averageUtilization: 80 diff --git a/my_deploy.sh b/my_deploy.sh index 0fcb51f90509732452620126c9062597a17735ed..9e4447349c5838fa8cd0cb13429c5fe9f737125c 100755 --- a/my_deploy.sh +++ b/my_deploy.sh @@ -20,11 +20,17 @@ export TFS_REGISTRY_IMAGES="http://localhost:32000/tfs/" # Set the list of components, separated by spaces, you want to build images for, and deploy. -export TFS_COMPONENTS="context device pathcomp service slice nbi webui load_generator" +export TFS_COMPONENTS="context device pathcomp opticalcontroller service slice nbi webui " # Uncomment to activate Monitoring #export TFS_COMPONENTS="${TFS_COMPONENTS} monitoring" +# Uncomment to activate BGP-LS Speaker +#export TFS_COMPONENTS="${TFS_COMPONENTS} bgpls_speaker" + +# Uncomment to activate Optical Controller +#export TFS_COMPONENTS="${TFS_COMPONENTS} opticalcontroller" + # Uncomment to activate ZTP #export TFS_COMPONENTS="${TFS_COMPONENTS} ztp" diff --git a/ofc24 b/ofc24 new file mode 100644 index 0000000000000000000000000000000000000000..baae92c8e249f4abfbbcf9739c9162087fefbacd --- /dev/null +++ b/ofc24 @@ -0,0 +1 @@ +src/tests/ofc24/ \ No newline at end of file diff --git a/proto/bgpls.proto b/proto/bgpls.proto new file mode 100644 index 0000000000000000000000000000000000000000..9b6f1efab8e3fbd2d913d1b44ac87b78bf46d6eb --- /dev/null +++ b/proto/bgpls.proto @@ -0,0 +1,70 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// +// 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. + +syntax = "proto3"; +package bgpls; + +import "context.proto"; + +service BgplsService { + rpc ListDiscoveredDevices (context.Empty ) returns (DiscoveredDeviceList) {} + rpc ListDiscoveredLinks (context.Empty ) returns (DiscoveredLinkList ) {} + rpc AddBgplsSpeaker (BgplsSpeaker ) returns (BgplsSpeakerId ) {} + rpc ListBgplsSpeakers (context.Empty ) returns (BgplsSpeakerList ) {} + rpc DisconnectFromSpeaker (BgplsSpeaker ) returns (context.Empty ) {} + rpc GetSpeakerInfoFromId (BgplsSpeakerId ) returns (BgplsSpeaker ) {} + rpc NotifyAddNodeToContext(NodeDescriptors) returns (context.Empty ) {} +} + +message DiscoveredDevice { + string nodeName = 1; + string ip = 2; + string igpID = 3; + string learntFrom = 4; +} + +message DiscoveredDeviceList { + repeated DiscoveredDevice discovereddevices = 1; +} + +message DiscoveredLinkList{ + repeated DiscoveredLink discoveredlinks = 1; +} + +message DiscoveredLink{ + NodeDescriptors local = 1; + NodeDescriptors remote = 2; + string learntFrom = 3; + string local_ipv4 = 4; + string remote_ipv4 = 5; +} + +message NodeDescriptors{ + string asNumber = 1; + string igp_id = 2; + string nodeName = 3; +} + +message BgplsSpeaker{ + string address = 1; + string port = 2; + string asNumber = 3; +} +message BgplsSpeakerId{ + uint32 id = 1; +} + +message BgplsSpeakerList{ + repeated BgplsSpeakerId speakers = 1; +} diff --git a/proto/context.proto b/proto/context.proto index d5022ac292f04cd2e9b80f690be3077e7aedd868..55c4121190690a3a57c16a1d241987d0a590fd1d 100644 --- a/proto/context.proto +++ b/proto/context.proto @@ -74,6 +74,17 @@ service ContextService { rpc SetConnection (Connection ) returns ( ConnectionId ) {} rpc RemoveConnection (ConnectionId ) returns ( Empty ) {} rpc GetConnectionEvents(Empty ) returns (stream ConnectionEvent ) {} + + + // ------------------------------ Experimental ----------------------------- + rpc GetOpticalConfig (Empty ) returns (OpticalConfigList ) {} + rpc SetOpticalConfig (OpticalConfig ) returns (OpticalConfigId ) {} + rpc SelectOpticalConfig(OpticalConfigId) returns (OpticalConfig ) {} + rpc DeleteOpticalConfig(OpticalConfigId) returns (Empty ) {} + + rpc SetOpticalLink (OpticalLink ) returns (Empty ) {} + rpc GetOpticalLink (OpticalLinkId ) returns (OpticalLink ) {} + rpc GetFiber (FiberId ) returns (Fiber ) {} } // ----- Generic ------------------------------------------------------------------------------------------------------- @@ -203,6 +214,7 @@ enum DeviceDriverEnum { DEVICEDRIVER_GNMI_OPENCONFIG = 8; DEVICEDRIVER_FLEXSCALE = 9; DEVICEDRIVER_IETF_ACTN = 10; + DEVICEDRIVER_OC = 11; } enum DeviceOperationalStatusEnum { @@ -288,6 +300,7 @@ enum ServiceTypeEnum { SERVICETYPE_TAPI_CONNECTIVITY_SERVICE = 3; SERVICETYPE_TE = 4; SERVICETYPE_E2E = 5; + SERVICETYPE_OPTICAL_CONNECTIVITY = 6; } enum ServiceStatusEnum { @@ -612,3 +625,59 @@ message AuthenticationResult { ContextId context_id = 1; bool authenticated = 2; } + +// ---------------- Experimental ------------------------ +message OpticalConfigId { + string opticalconfig_uuid = 1; +} +message OpticalConfig { + OpticalConfigId opticalconfig_id = 1; + string config = 2; +} + +message OpticalConfigList { + repeated OpticalConfig opticalconfigs = 1; +} + +message OpticalConfigEvent { + Event event = 1; + OpticalConfigId opticalconfig_id = 2; +} + + +// ---- Optical Link ---- + +message OpticalLinkId { + Uuid optical_link_uuid = 1; +} + +message FiberId { + Uuid fiber_uuid = 1; +} + +message Fiber { + string ID = 10; + string src_port = 1; + string dst_port = 2; + string local_peer_port = 3; + string remote_peer_port = 4; + repeated int32 c_slots = 5; + repeated int32 l_slots = 6; + repeated int32 s_slots = 7; + float length = 8; + bool used = 9; + FiberId fiber_uuid = 11; + +} +message OpticalLinkDetails { + float length = 1; + string source = 2; + string target = 3; + repeated Fiber fibers = 4; +} + +message OpticalLink { + string name = 1; + OpticalLinkDetails details = 2; + OpticalLinkId optical_link_uuid = 3; +} diff --git a/proto/openconfig_device.proto b/proto/openconfig_device.proto new file mode 100644 index 0000000000000000000000000000000000000000..913ac247eaab89efb7d6de9f64b2730378937738 --- /dev/null +++ b/proto/openconfig_device.proto @@ -0,0 +1,23 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// +// 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. + +syntax = "proto3"; +package openconfig_device; + +import "context.proto"; + +service OpenConfigService { + rpc AddOpenConfigDevice (context.OpticalConfig) returns (context.OpticalConfigId) {} + rpc ConfigureOpticalDevice(context.OpticalConfig) returns (context.Empty ) {} +} diff --git a/scripts/expose_ingress_grpc.sh b/scripts/expose_ingress_grpc.sh new file mode 100644 index 0000000000000000000000000000000000000000..4fec2f219908cc4f8e496b781aaf62606033a291 --- /dev/null +++ b/scripts/expose_ingress_grpc.sh @@ -0,0 +1,55 @@ +#!/bin/bash +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# +# 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. + +######################################################################################################################## +# Define your deployment settings here +######################################################################################################################## + +# If not already set, set the name of the Kubernetes namespace to deploy to. +export TFS_K8S_NAMESPACE=${TFS_K8S_NAMESPACE:-"tfs"} + +# If not already set, set the list of components you want to build images for, and deploy. +export TFS_COMPONENTS=${TFS_COMPONENTS:-"context device ztp policy service nbi monitoring dbscanserving opticalattackmitigator opticalcentralizedattackdetector l3_attackmitigator l3_centralizedattackdetector webui"} + +######################################################################################################################## +# Automated steps start here +######################################################################################################################## + +echo "Exposing GRPC ports for components..." +for COMPONENT in $TFS_COMPONENTS; do + echo "Processing '$COMPONENT' component..." + + SERVICE_GRPC_PORT=$(kubectl get service ${COMPONENT}service --namespace $TFS_K8S_NAMESPACE -o 'jsonpath={.spec.ports[?(@.name=="grpc")].port}') + echo " '$COMPONENT' service port: $SERVICE_GRPC_PORT" + if [ -z "${SERVICE_GRPC_PORT}" ]; then + printf "\n" + continue; + fi + + COMPONENT_OBJNAME=$(echo "${COMPONENT}" | sed "s/\_/-/") + PATCH='{"data": {"'${SERVICE_GRPC_PORT}'": "'$TFS_K8S_NAMESPACE'/'${COMPONENT_OBJNAME}service':'${SERVICE_GRPC_PORT}'"}}' + #echo "PATCH: ${PATCH}" + kubectl patch configmap nginx-ingress-tcp-microk8s-conf --namespace ingress --patch "${PATCH}" + + PORT_MAP='{"containerPort": '${SERVICE_GRPC_PORT}', "hostPort": '${SERVICE_GRPC_PORT}'}' + CONTAINER='{"name": "nginx-ingress-microk8s", "ports": ['${PORT_MAP}']}' + PATCH='{"spec": {"template": {"spec": {"containers": ['${CONTAINER}']}}}}' + #echo "PATCH: ${PATCH}" + kubectl patch daemonset nginx-ingress-microk8s-controller --namespace ingress --patch "${PATCH}" + + printf "\n" +done + +echo "Done!" diff --git a/scripts/run_tests_docker.sh b/scripts/run_tests_docker.sh new file mode 100644 index 0000000000000000000000000000000000000000..23d920487284245d5c2e23bb3c24f0f4248127a3 --- /dev/null +++ b/scripts/run_tests_docker.sh @@ -0,0 +1,88 @@ +#!/bin/bash +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# +# 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. + + +######################################################################################################################## +# Define your deployment settings here +######################################################################################################################## + +# Set the URL of your local Docker registry where the images will be uploaded to. Leave it blank if you do not want to +# use any Docker registry. +REGISTRY_IMAGE="" +#REGISTRY_IMAGE="http://my-container-registry.local/" + +# Set the list of components you want to build images for, and deploy. +COMPONENTS="context device ztp policy service nbi monitoring centralizedattackdetector" + +# Set the tag you want to use for your images. +IMAGE_TAG="tf-dev" + +# Constants +TMP_FOLDER="./tmp" + +TMP_LOGS_FOLDER="$TMP_FOLDER/logs" +mkdir -p $TMP_LOGS_FOLDER + +DOCKER_BUILD="docker build" +DOCKER_MAJOR_VERSION=$(docker --version | grep -o -E "Docker version [0-9]+\." | grep -o -E "[0-9]+" | cut -c 1-3) +if [[ $DOCKER_MAJOR_VERSION -ge 23 ]]; then + # If Docker version >= 23, build command was migrated to docker-buildx + # In Ubuntu, in practice, means to install package docker-buildx together with docker.io + # Check if docker-buildx plugin is installed + docker buildx version 1>/dev/null 2>/dev/null + if [[ $? -ne 0 ]]; then + echo "Docker buildx command is not installed. Check: https://docs.docker.com/build/architecture/#install-buildx" + echo "If you installed docker through APT package docker.io, consider installing also package docker-buildx" + exit 1; + fi + DOCKER_BUILD="docker buildx build" +fi + +for COMPONENT in $COMPONENTS; do + echo "Processing '$COMPONENT' component..." + IMAGE_NAME="$COMPONENT:$IMAGE_TAG" + IMAGE_URL="$REGISTRY_IMAGE/$IMAGE_NAME" + + echo " Building Docker image..." + BUILD_LOG="$TMP_LOGS_FOLDER/build_${COMPONENT}.log" + + if [ "$COMPONENT" == "ztp" ] || [ "$COMPONENT" == "policy" ]; then + $DOCKER_BUILD -t "$IMAGE_NAME" -f ./src/"$COMPONENT"/Dockerfile ./src/"$COMPONENT"/ > "$BUILD_LOG" + else + $DOCKER_BUILD -t "$IMAGE_NAME" -f ./src/"$COMPONENT"/Dockerfile ./src/ > "$BUILD_LOG" + fi + + if [ -n "$REGISTRY_IMAGE" ]; then + echo "Pushing Docker image to '$REGISTRY_IMAGE'..." + + TAG_LOG="$TMP_LOGS_FOLDER/tag_${COMPONENT}.log" + docker tag "$IMAGE_NAME" "$IMAGE_URL" > "$TAG_LOG" + + PUSH_LOG="$TMP_LOGS_FOLDER/push_${COMPONENT}.log" + docker push "$IMAGE_URL" > "$PUSH_LOG" + fi +done + +echo "Preparing for running the tests..." + +if docker network list | grep teraflowbridge; then echo "teraflowbridge is already created"; else docker network create -d bridge teraflowbridge; fi + +for COMPONENT in $COMPONENTS; do + IMAGE_NAME="$COMPONENT:$IMAGE_TAG" + echo " Running tests for $COMPONENT:" + docker run -it -d --name $COMPONENT $IMAGE_NAME --network=teraflowbridge + docker exec -it $COMPONENT bash -c "pytest --log-level=DEBUG --verbose $COMPONENT/tests/test_unitary.py" + docker stop $COMPONENT +done diff --git a/scripts/run_tests_locally-optical-attack-detector.sh b/scripts/run_tests_locally-optical-attack-detector.sh new file mode 100644 index 0000000000000000000000000000000000000000..e34c62b5665677c3040900abee6f95f0fb20233c --- /dev/null +++ b/scripts/run_tests_locally-optical-attack-detector.sh @@ -0,0 +1,102 @@ +#!/bin/bash +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# +# 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. + + +PROJECTDIR=`pwd` +RCFILE=$PROJECTDIR/coverage/.coveragerc +COVERAGEFILE=$PROJECTDIR/coverage/.coverage + +# Destroy old coverage file and configure the correct folder on the .coveragerc file +rm -f $COVERAGEFILE +cat $PROJECTDIR/coverage/.coveragerc.template | sed s+~/tfs-ctrl+$PROJECTDIR+g > $RCFILE + +echo +echo "Pre-test clean-up:" +echo "------------------" +docker rm -f redis opticalattackdetector dbscanserving +docker network rm tfs_br + +echo +echo "Pull Docker images:" +echo "-------------------" +docker pull redis:7.0-alpine + +echo +echo "Build optical attack detector:" +echo "------------------------------" +docker build -t "opticalattackdetector:latest" -f ./src/opticalattackdetector/Dockerfile . +docker images --filter="dangling=true" --quiet | xargs -r docker rmi + +echo +echo "Build dbscan serving:" +echo "---------------------" +docker build -t "dbscanserving:latest" -f ./src/dbscanserving/Dockerfile . +docker images --filter="dangling=true" --quiet | xargs -r docker rmi + +echo +echo "Create test environment:" +echo "------------------------" +export REDIS_PASSWORD=$(uuidgen) +docker network create -d bridge --subnet=172.254.254.0/24 --gateway=172.254.254.1 --ip-range=172.254.254.0/24 tfs_br + +docker run --name redis -d --network=tfs_br -p 16379:6379 --rm \ + --env REDIS_PASSWORD=${REDIS_PASSWORD} \ + redis:7.0-alpine redis-server --requirepass ${REDIS_PASSWORD} + +docker run --name dbscanserving -d --network=tfs_br -p 10008:10008 --rm \ + --env LOG_LEVEL=DEBUG \ + dbscanserving:latest "python -m dbscanserving.service" + +echo +echo "Waiting for initialization..." +echo "-----------------------------" +while ! docker logs redis 2>&1 | grep -q 'Ready to accept connections'; do sleep 1; done +docker logs redis +#while ! docker logs dbscanserving 2>&1 | grep -q 'Server is ready'; do sleep 1; done +docker logs dbscanserving +#sleep 10 +docker ps -a + +echo +echo "Run unitary tests and analyze code coverage:" +echo "--------------------------------------------" +export REDIS_ADDRESS=$(docker inspect redis --format "{{.NetworkSettings.Networks.tfs_br.IPAddress}}") +export DBSCANSERVING_ADDRESS=$(docker inspect dbscanserving --format "{{.NetworkSettings.Networks.tfs_br.IPAddress}}") +docker run --name opticalattackdetector -d --network=tfs_br -p 10006:10006 --rm \ + --env REDIS_PASSWORD=${REDIS_PASSWORD} \ + --env DBSCANSERVINGSERVICE_SERVICE_HOST=${DBSCANSERVING_ADDRESS} \ + --env CACHINGSERVICE_SERVICE_HOST=${REDIS_ADDRESS} \ + opticalattackdetector:latest + +sleep 5 +docker ps -a +docker logs opticalattackdetector +docker exec -i opticalattackdetector bash -c "coverage run -m pytest --log-level=DEBUG --verbose opticalattackdetector/tests/test_unitary.py" +docker logs redis +docker logs dbscanserving +docker logs opticalattackdetector + +echo +echo "Coverage report:" +echo "----------------" +docker exec -i opticalattackdetector bash -c "coverage report --include='opticalattackdetector/*' --sort cover --show-missing --skip-covered" + +echo +echo "Post-test clean-up:" +echo "-------------------" +docker rm -f redis opticalattackdetector dbscanserving +docker network rm tfs_br + +echo "Done!" diff --git a/scripts/show_logs_bgp.sh b/scripts/show_logs_bgp.sh new file mode 100644 index 0000000000000000000000000000000000000000..29e8fa60c4768d1a0638556f9b68d4ab63dc9c22 --- /dev/null +++ b/scripts/show_logs_bgp.sh @@ -0,0 +1,27 @@ +#!/bin/bash +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# +# 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. + +######################################################################################################################## +# Define your deployment settings here +######################################################################################################################## + +# If not already set, set the name of the Kubernetes namespace to deploy to. +export TFS_K8S_NAMESPACE=${TFS_K8S_NAMESPACE:-"tfs"} + +######################################################################################################################## +# Automated steps start here +######################################################################################################################## + +kubectl --namespace $TFS_K8S_NAMESPACE logs deployment/bgpls_speakerservice -c server diff --git a/scripts/show_logs_opticalcontroller.sh b/scripts/show_logs_opticalcontroller.sh new file mode 100644 index 0000000000000000000000000000000000000000..17af5483c59e4d97a5534b388d006f5be00030e5 --- /dev/null +++ b/scripts/show_logs_opticalcontroller.sh @@ -0,0 +1,27 @@ +#!/bin/bash +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# +# 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. + +######################################################################################################################## +# Define your deployment settings here +######################################################################################################################## + +# If not already set, set the name of the Kubernetes namespace to deploy to. +export TFS_K8S_NAMESPACE=${TFS_K8S_NAMESPACE:-"tfs"} + +######################################################################################################################## +# Automated steps start here +######################################################################################################################## + +kubectl --namespace $TFS_K8S_NAMESPACE logs deployment/opticalcontrollerservice -c server diff --git a/scripts/start_webui_dev_mode.sh b/scripts/start_webui_dev_mode.sh new file mode 100644 index 0000000000000000000000000000000000000000..fe2587c1a596bb49558fe8f1cd9238727277bbfe --- /dev/null +++ b/scripts/start_webui_dev_mode.sh @@ -0,0 +1,37 @@ +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# +# 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. + +# for development purposes only + +# K8S_NAMESPACE=${K8S_NAMESPACE:-'tf-dev'} + +# export CONTEXTSERVICE_SERVICE_HOST=`kubectl get service/contextservice -n ${K8S_NAMESPACE} -o jsonpath='{.spec.clusterIP}'` + +# echo Context IP: $CONTEXTSERVICE_SERVICE_HOST + +# export DEVICESERVICE_SERVICE_HOST=`kubectl get service/deviceservice -n ${K8S_NAMESPACE} -o jsonpath='{.spec.clusterIP}'` + +# echo Device IP: $DEVICESERVICE_SERVICE_HOST + +source tfs_runtime_env_vars.sh + +export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION='python' +export HOST="127.0.0.1" +export HOSTNAME="test" +export FLASK_ENV="development" +export LOG_LEVEL="DEBUG" + +# python3 -m webbrowser http://${HOST}:8004 + +python -m webui.service diff --git a/scripts/wait_context_nats.sh b/scripts/wait_context_nats.sh new file mode 100644 index 0000000000000000000000000000000000000000..9005957412221250f32a900318a19d14715091bf --- /dev/null +++ b/scripts/wait_context_nats.sh @@ -0,0 +1,28 @@ +#!/bin/bash +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# +# 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. + +######################################################################################################################## +# Define your deployment settings here +######################################################################################################################## + +# If not already set, set the name of the Kubernetes namespace to deploy to. +export TFS_K8S_NAMESPACE=${TFS_K8S_NAMESPACE:-"tfs"} + + +######################################################################################################################## +# Automated steps start here +######################################################################################################################## + +while ! kubectl --namespace $TFS_K8S_NAMESPACE logs deployment/contextservice -c server 2>&1 | grep -q 'Subscriber is Ready? True'; do sleep 1; done diff --git a/src/bgpls_speaker/.gitlab-ci.yml b/src/bgpls_speaker/.gitlab-ci.yml new file mode 100644 index 0000000000000000000000000000000000000000..50b5ebf69f81463af47f92b3c7129099575e8503 --- /dev/null +++ b/src/bgpls_speaker/.gitlab-ci.yml @@ -0,0 +1,105 @@ +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# +# 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. + +# Build, tag, and push the Docker image to the GitLab Docker registry +build bgpls_speaker: + variables: + IMAGE_NAME: 'bgpls_speaker' # name of the microservice + IMAGE_TAG: 'latest' # tag of the container image (production, development, etc) + stage: build + before_script: + - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY + script: + - docker buildx build -t "$IMAGE_NAME:$IMAGE_TAG" -f ./src/$IMAGE_NAME/Dockerfile . + - docker tag "$IMAGE_NAME:$IMAGE_TAG" "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" + - docker push "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" + after_script: + - docker images --filter="dangling=true" --quiet | xargs -r docker rmi + rules: + - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && ($CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH)' + - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "develop"' + - changes: + - src/common/**/*.py + - proto/*.proto + - src/$IMAGE_NAME/**/*.{py,in,yml} + - src/$IMAGE_NAME/Dockerfile + - src/$IMAGE_NAME/tests/*.py + - manifests/${IMAGE_NAME}service.yaml + - .gitlab-ci.yml + +## Apply unit test to the component +#unit_test bgpls_speaker: +# variables: +# IMAGE_NAME: 'bgpls_speaker' # name of the microservice +# IMAGE_TAG: 'latest' # tag of the container image (production, development, etc) +# stage: unit_test +# needs: +# - build bgpls_speaker +# before_script: +# - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY +# - if docker network list | grep teraflowbridge; then echo "teraflowbridge is already created"; else docker network create --driver=bridge teraflowbridge; fi +# - if docker container ls | grep $IMAGE_NAME; then docker rm -f $IMAGE_NAME; else echo "$IMAGE_NAME image is not in the system"; fi +# script: +# - docker pull "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" +# - docker run --name $IMAGE_NAME -d -p 20030:20030 -v "$PWD/src/$IMAGE_NAME/tests:/opt/results" --network=teraflowbridge $CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG +# - sleep 5 +# - docker ps -a +# - docker logs $IMAGE_NAME +# - docker exec -i $IMAGE_NAME bash -c "coverage run -m pytest --log-level=INFO --verbose $IMAGE_NAME/tests/test_unitary.py --junitxml=/opt/results/${IMAGE_NAME}_report.xml" +# - docker exec -i $IMAGE_NAME bash -c "coverage report --include='${IMAGE_NAME}/*' --show-missing" +# coverage: '/TOTAL\s+\d+\s+\d+\s+(\d+%)/' +# after_script: +# - docker rm -f $IMAGE_NAME +# - docker network rm teraflowbridge +# rules: +# - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && ($CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH)' +# - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "develop"' +# - changes: +# - src/common/**/*.py +# - proto/*.proto +# - src/$IMAGE_NAME/**/*.{py,in,yml} +# - src/$IMAGE_NAME/Dockerfile +# - src/$IMAGE_NAME/tests/*.py +# - manifests/${IMAGE_NAME}service.yaml +# - .gitlab-ci.yml +# artifacts: +# when: always +# reports: +# junit: src/$IMAGE_NAME/tests/${IMAGE_NAME}_report.xml + +## Deployment of the service in Kubernetes Cluster +#deploy bgpls_speaker: +# variables: +# IMAGE_NAME: 'bgpls_speaker' # name of the microservice +# IMAGE_TAG: 'latest' # tag of the container image (production, development, etc) +# stage: deploy +# needs: +# - unit test bgpls_speaker +# # - integ_test execute +# script: +# - 'sed -i "s/$IMAGE_NAME:.*/$IMAGE_NAME:$IMAGE_TAG/" manifests/${IMAGE_NAME}service.yaml' +# - kubectl version +# - kubectl get all +# - kubectl apply -f "manifests/${IMAGE_NAME}service.yaml" +# - kubectl get all +# # environment: +# # name: test +# # url: https://example.com +# # kubernetes: +# # namespace: test +# rules: +# - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && ($CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH)' +# when: manual +# - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "develop"' +# when: manual diff --git a/src/bgpls_speaker/Config.py b/src/bgpls_speaker/Config.py new file mode 100644 index 0000000000000000000000000000000000000000..38d04994fb0fa1951fb465bc127eb72659dc2eaf --- /dev/null +++ b/src/bgpls_speaker/Config.py @@ -0,0 +1,13 @@ +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# +# 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. diff --git a/src/bgpls_speaker/Dockerfile b/src/bgpls_speaker/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..87463943af647188791e5d162b2af416df867285 --- /dev/null +++ b/src/bgpls_speaker/Dockerfile @@ -0,0 +1,110 @@ +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# +# 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. + +# +# Maven install stage +# +# ---------------------------------------------- +# FROM alpine/git:latest AS repo + +# WORKDIR /usr/src/app +# RUN git clone https://github.com/telefonicaid/netphony-network-protocols.git . + +FROM maven:3.8.8-eclipse-temurin-17 AS build + +WORKDIR / +COPY src/bgpls_speaker/service/java/netphony-topology/ netphony-topology/ +COPY src/bgpls_speaker/service/java/netphony-topology/pom.xml netphony-topology/pom.xml + +WORKDIR /netphony-topology/ +RUN mvn clean compile -DskipTests -X +RUN mvn package assembly:single -P bgp-ls-speaker -DskipTests +WORKDIR /netphony-topology/target/ +# ENTRYPOINT [ "ls" ,"-a"] +# ------------------------------------------- +# jar created in /netphony-topology/target/bgp-ls-speaker-jar-with-dependencies.jar + +# +# Stage 2 +# + +FROM python:3.9-slim + + +# Install dependencies +RUN apt-get --yes --quiet --quiet update && \ + apt-get --yes --quiet --quiet install wget g++ && \ + rm -rf /var/lib/apt/lists/* + +# Set Python to show logs as they occur +ENV PYTHONUNBUFFERED=0 + +# Download the gRPC health probe +RUN GRPC_HEALTH_PROBE_VERSION=v0.2.0 && \ + wget -qO/bin/grpc_health_probe https://github.com/grpc-ecosystem/grpc-health-probe/releases/download/${GRPC_HEALTH_PROBE_VERSION}/grpc_health_probe-linux-amd64 && \ + chmod +x /bin/grpc_health_probe + +# Get generic Python packages +RUN python3 -m pip install --upgrade pip +RUN python3 -m pip install --upgrade setuptools wheel +RUN python3 -m pip install --upgrade pip-tools + +# Install OpenJDK-11 +RUN apt-get update && \ + apt-get install -y openjdk-17-jre && \ + apt-get clean; + +# Get common Python packages +# Note: this step enables sharing the previous Docker build steps among all the Python components +WORKDIR /var/teraflow +COPY common_requirements.in common_requirements.in +RUN pip-compile --quiet --output-file=common_requirements.txt common_requirements.in +RUN python3 -m pip install -r common_requirements.txt + +# Add common files into working directory +WORKDIR /var/teraflow/common +COPY src/common/. ./ +RUN rm -rf proto + +# Create proto sub-folder, copy .proto files, and generate Python code +RUN mkdir -p /var/teraflow/common/proto +WORKDIR /var/teraflow/common/proto +RUN touch __init__.py +COPY proto/*.proto ./ +RUN python3 -m grpc_tools.protoc -I=. --python_out=. --grpc_python_out=. *.proto +RUN rm *.proto +RUN find . -type f -exec sed -i -E 's/(import\ .*)_pb2/from . \1_pb2/g' {} \; + +# Create component sub-folders, get specific Python packages +RUN mkdir -p /var/teraflow/bgpls_speaker +WORKDIR /var/teraflow/bgpls_speaker +COPY src/bgpls_speaker/requirements.in requirements.in +RUN pip-compile --quiet --output-file=requirements.txt requirements.in +RUN python3 -m pip install -r requirements.txt + +# Java module necessary config files +WORKDIR /var/teraflow/bgpls_speaker +RUN mkdir -p /java +COPY src/bgpls_speaker/service/java/* /java/ +COPY --from=build /netphony-topology/target/bgp-ls-speaker-jar-with-dependencies.jar /var/teraflow/bgpls_speaker/service/java/bgp_ls.jar + +# Add component files into working directory +WORKDIR /var/teraflow +COPY src/context/__init__.py context/__init__.py +COPY src/context/client/. context/client/ +COPY src/bgpls_speaker/. bgpls_speaker/ + +# Start the service +ENTRYPOINT ["python", "-m", "bgpls_speaker.service"] +# ENTRYPOINT [ "ls","-R" ] \ No newline at end of file diff --git a/src/bgpls_speaker/__init__.py b/src/bgpls_speaker/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..38d04994fb0fa1951fb465bc127eb72659dc2eaf --- /dev/null +++ b/src/bgpls_speaker/__init__.py @@ -0,0 +1,13 @@ +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# +# 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. diff --git a/src/bgpls_speaker/client/BgplsClient.py b/src/bgpls_speaker/client/BgplsClient.py new file mode 100644 index 0000000000000000000000000000000000000000..dc8ecf4ecaa10076e673e42069c5d8c2033cd309 --- /dev/null +++ b/src/bgpls_speaker/client/BgplsClient.py @@ -0,0 +1,91 @@ +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# +# 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. + +import grpc, logging +from common.Constants import ServiceNameEnum +from common.Settings import get_service_host, get_service_port_grpc +from common.proto.context_pb2 import Empty, Service, ServiceId +from common.proto.service_pb2_grpc import ServiceServiceStub +from common.proto.bgpls_pb2_grpc import BgplsServiceStub +from common.proto.bgpls_pb2 import BgplsSpeaker, DiscoveredDeviceList,DiscoveredLinkList,BgplsSpeakerId, NodeDescriptors +from common.tools.client.RetryDecorator import retry, delay_exponential +from common.tools.grpc.Tools import grpc_message_to_json_string + +LOGGER = logging.getLogger(__name__) +MAX_RETRIES = 15 +DELAY_FUNCTION = delay_exponential(initial=0.01, increment=2.0, maximum=5.0) +RETRY_DECORATOR = retry(max_retries=MAX_RETRIES, delay_function=DELAY_FUNCTION, prepare_method_name='connect') + +class BgplsClient: + def __init__(self, host=None, port=None): + if not host: host = get_service_host(ServiceNameEnum.BGPLS) + if not port: port = get_service_port_grpc(ServiceNameEnum.BGPLS) + self.endpoint = '{:s}:{:s}'.format(str(host), str(port)) + LOGGER.info('Creating channel to {:s}...'.format(str(self.endpoint))) + self.channel = None + self.stub = None + self.connect() + LOGGER.info('Channel created') + + def connect(self): + self.channel = grpc.insecure_channel(self.endpoint) + self.stub = BgplsServiceStub(self.channel) + + def close(self): + if self.channel is not None: self.channel.close() + self.channel = None + self.stub = None + + @RETRY_DECORATOR + def ListDiscoveredDevices(self, request: Empty) -> DiscoveredDeviceList: + LOGGER.info('ListDiscoveredDevices request: {:s}'.format(grpc_message_to_json_string(request))) + response = self.stub.ListDiscoveredDevices(request) + LOGGER.info('ListDiscoveredDevices result: {:s}'.format(grpc_message_to_json_string(response))) + return response + @RETRY_DECORATOR + def ListDiscoveredLinks(self, request: Empty) -> DiscoveredLinkList: + LOGGER.info('ListDiscoveredDevices request: {:s}'.format(grpc_message_to_json_string(request))) + response = self.stub.ListDiscoveredLinks(request) + LOGGER.info('ListDiscoveredDevices result: {:s}'.format(grpc_message_to_json_string(response))) + return response + @RETRY_DECORATOR + def AddBgplsSpeaker(self, request: BgplsSpeaker) -> str: + LOGGER.info('AddBgplsSpeaker request: {:s}'.format(grpc_message_to_json_string(request))) + response = self.stub.AddBgplsSpeaker(request) + LOGGER.info('AddBgplsSpeaker result: {:s}'.format(grpc_message_to_json_string(response))) + return response + @RETRY_DECORATOR + def ListBgplsSpeakers(self, request: Empty) -> BgplsSpeakerId: + LOGGER.info('ListBgplsSpeakers request: {:s}'.format(grpc_message_to_json_string(request))) + response = self.stub.ListBgplsSpeakers(request) + LOGGER.info('ListBgplsSpeakers result: {:s}'.format(grpc_message_to_json_string(response))) + return response + @RETRY_DECORATOR + def DisconnectFromSpeaker(self, request: BgplsSpeaker) -> bool: + LOGGER.info('DisconnectFromSpeaker request: {:s}'.format(grpc_message_to_json_string(request))) + response = self.stub.DisconnectFromSpeaker(request) + LOGGER.info('DisconnectFromSpeaker result: {:s}'.format(grpc_message_to_json_string(response))) + return response + @RETRY_DECORATOR + def GetSpeakerInfoFromId(self, request: BgplsSpeakerId) -> BgplsSpeaker: + LOGGER.info('GetSpeakerInfoFromId request: {:s}'.format(grpc_message_to_json_string(request))) + response = self.stub.GetSpeakerInfoFromId(request) + LOGGER.info('GetSpeakerInfoFromId result: {:s}'.format(grpc_message_to_json_string(response))) + return response + @RETRY_DECORATOR + def NotifyAddNodeToContext(self, request: NodeDescriptors) -> str: + LOGGER.info('NotifyAddNodeToContext request: {:s}'.format(grpc_message_to_json_string(request))) + response = self.stub.NotifyAddNodeToContext(request) + LOGGER.info('NotifyAddNodeToContext result: {:s}'.format(grpc_message_to_json_string(response))) + return response diff --git a/src/bgpls_speaker/client/__init__.py b/src/bgpls_speaker/client/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..38d04994fb0fa1951fb465bc127eb72659dc2eaf --- /dev/null +++ b/src/bgpls_speaker/client/__init__.py @@ -0,0 +1,13 @@ +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# +# 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. diff --git a/src/bgpls_speaker/quick_deploy.sh b/src/bgpls_speaker/quick_deploy.sh new file mode 100644 index 0000000000000000000000000000000000000000..7276f3287d6523d35ce99362963c6f45dfde911c --- /dev/null +++ b/src/bgpls_speaker/quick_deploy.sh @@ -0,0 +1,438 @@ +#!/bin/bash +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# +# 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. + + +######################################################################################################################## +# Read deployment settings +######################################################################################################################## + + +# ----- TeraFlowSDN ------------------------------------------------------------ + +# If not already set, set the URL of the Docker registry where the images will be uploaded to. +# By default, assume internal MicroK8s registry is used. +export TFS_REGISTRY_IMAGES=${TFS_REGISTRY_IMAGES:-"http://localhost:32000/tfs/"} + +# If not already set, set the list of components, separated by spaces, you want to build images for, and deploy. +# By default, only basic components are deployed +export TFS_COMPONENTS=${TFS_COMPONENTS:-"context device pathcomp service slice nbi webui load_generator bgpls_speaker"} + +# If not already set, set the tag you want to use for your images. +export TFS_IMAGE_TAG=${TFS_IMAGE_TAG:-"dev"} + +# If not already set, set the name of the Kubernetes namespace to deploy TFS to. +export TFS_K8S_NAMESPACE=${TFS_K8S_NAMESPACE:-"tfs"} + +# If not already set, set additional manifest files to be applied after the deployment +export TFS_EXTRA_MANIFESTS=${TFS_EXTRA_MANIFESTS:-""} + +# If not already set, set the new Grafana admin password +export TFS_GRAFANA_PASSWORD=${TFS_GRAFANA_PASSWORD:-"admin123+"} + +# If not already set, disable skip-build flag to rebuild the Docker images. +# If TFS_SKIP_BUILD is "YES", the containers are not rebuilt-retagged-repushed and existing ones are used. +export TFS_SKIP_BUILD=${TFS_SKIP_BUILD:-"YES"} + +# If TFS_SKIP_BUILD is "YES", select the containers to be build +# Any other container will use previous docker images +export TFS_QUICK_COMPONENTS="bgpls_speaker" + +# ----- CockroachDB ------------------------------------------------------------ + +# If not already set, set the namespace where CockroackDB will be deployed. +export CRDB_NAMESPACE=${CRDB_NAMESPACE:-"crdb"} + +# If not already set, set the database username to be used by Context. +export CRDB_USERNAME=${CRDB_USERNAME:-"tfs"} + +# If not already set, set the database user's password to be used by Context. +export CRDB_PASSWORD=${CRDB_PASSWORD:-"tfs123"} + +# If not already set, set the database name to be used by Context. +export CRDB_DATABASE=${CRDB_DATABASE:-"tfs"} + + +# ----- NATS ------------------------------------------------------------------- + +# If not already set, set the namespace where NATS will be deployed. +export NATS_NAMESPACE=${NATS_NAMESPACE:-"nats"} + + +# ----- QuestDB ---------------------------------------------------------------- + +# If not already set, set the namespace where QuestDB will be deployed. +export QDB_NAMESPACE=${QDB_NAMESPACE:-"qdb"} + +# If not already set, set the database username to be used for QuestDB. +export QDB_USERNAME=${QDB_USERNAME:-"admin"} + +# If not already set, set the database user's password to be used for QuestDB. +export QDB_PASSWORD=${QDB_PASSWORD:-"quest"} + +# If not already set, set the table name to be used by Monitoring for KPIs. +export QDB_TABLE_MONITORING_KPIS=${QDB_TABLE_MONITORING_KPIS:-"tfs_monitoring_kpis"} + +# If not already set, set the table name to be used by Slice for plotting groups. +export QDB_TABLE_SLICE_GROUPS=${QDB_TABLE_SLICE_GROUPS:-"tfs_slice_groups"} + + +######################################################################################################################## +# Automated steps start here +######################################################################################################################## + +# Constants +GITLAB_REPO_URL="labs.etsi.org:5050/tfs/controller" +TMP_FOLDER="./tmp" + +# Create a tmp folder for files modified during the deployment +TMP_MANIFESTS_FOLDER="$TMP_FOLDER/manifests" +mkdir -p $TMP_MANIFESTS_FOLDER +TMP_LOGS_FOLDER="$TMP_FOLDER/logs" +mkdir -p $TMP_LOGS_FOLDER + +echo "Deleting and Creating a new namespace..." +kubectl delete namespace $TFS_K8S_NAMESPACE --ignore-not-found +kubectl create namespace $TFS_K8S_NAMESPACE +printf "\n" + +echo "Create secret with CockroachDB data" +CRDB_SQL_PORT=$(kubectl --namespace ${CRDB_NAMESPACE} get service cockroachdb-public -o 'jsonpath={.spec.ports[?(@.name=="sql")].port}') +kubectl create secret generic crdb-data --namespace ${TFS_K8S_NAMESPACE} --type='Opaque' \ + --from-literal=CRDB_NAMESPACE=${CRDB_NAMESPACE} \ + --from-literal=CRDB_SQL_PORT=${CRDB_SQL_PORT} \ + --from-literal=CRDB_DATABASE=${CRDB_DATABASE} \ + --from-literal=CRDB_USERNAME=${CRDB_USERNAME} \ + --from-literal=CRDB_PASSWORD=${CRDB_PASSWORD} \ + --from-literal=CRDB_SSLMODE=require +printf "\n" + +echo "Create secret with NATS data" +NATS_CLIENT_PORT=$(kubectl --namespace ${NATS_NAMESPACE} get service nats -o 'jsonpath={.spec.ports[?(@.name=="client")].port}') +kubectl create secret generic nats-data --namespace ${TFS_K8S_NAMESPACE} --type='Opaque' \ + --from-literal=NATS_NAMESPACE=${NATS_NAMESPACE} \ + --from-literal=NATS_CLIENT_PORT=${NATS_CLIENT_PORT} +printf "\n" + +echo "Create secret with QuestDB data" +QDB_HTTP_PORT=$(kubectl --namespace ${QDB_NAMESPACE} get service questdb-public -o 'jsonpath={.spec.ports[?(@.name=="http")].port}') +QDB_ILP_PORT=$(kubectl --namespace ${QDB_NAMESPACE} get service questdb-public -o 'jsonpath={.spec.ports[?(@.name=="ilp")].port}') +QDB_SQL_PORT=$(kubectl --namespace ${QDB_NAMESPACE} get service questdb-public -o 'jsonpath={.spec.ports[?(@.name=="sql")].port}') +METRICSDB_HOSTNAME="questdb-public.${QDB_NAMESPACE}.svc.cluster.local" +kubectl create secret generic qdb-data --namespace ${TFS_K8S_NAMESPACE} --type='Opaque' \ + --from-literal=QDB_NAMESPACE=${QDB_NAMESPACE} \ + --from-literal=METRICSDB_HOSTNAME=${METRICSDB_HOSTNAME} \ + --from-literal=METRICSDB_REST_PORT=${QDB_HTTP_PORT} \ + --from-literal=METRICSDB_ILP_PORT=${QDB_ILP_PORT} \ + --from-literal=METRICSDB_SQL_PORT=${QDB_SQL_PORT} \ + --from-literal=METRICSDB_TABLE_MONITORING_KPIS=${QDB_TABLE_MONITORING_KPIS} \ + --from-literal=METRICSDB_TABLE_SLICE_GROUPS=${QDB_TABLE_SLICE_GROUPS} \ + --from-literal=METRICSDB_USERNAME=${QDB_USERNAME} \ + --from-literal=METRICSDB_PASSWORD=${QDB_PASSWORD} +printf "\n" + +echo "Deploying components and collecting environment variables..." +ENV_VARS_SCRIPT=tfs_runtime_env_vars.sh +echo "# Environment variables for TeraFlowSDN deployment" > $ENV_VARS_SCRIPT +PYTHONPATH=$(pwd)/src +echo "export PYTHONPATH=${PYTHONPATH}" >> $ENV_VARS_SCRIPT + +for COMPONENT in $TFS_COMPONENTS; do + echo "Processing '$COMPONENT' component..." + + if [ "$TFS_SKIP_BUILD" != "YES" ]; then + echo " Building Docker image..." + BUILD_LOG="$TMP_LOGS_FOLDER/build_${COMPONENT}.log" + + if [ "$COMPONENT" == "automation" ] || [ "$COMPONENT" == "policy" ]; then + docker build -t "$COMPONENT:$TFS_IMAGE_TAG" -f ./src/"$COMPONENT"/Dockerfile ./src/"$COMPONENT"/ > "$BUILD_LOG" + elif [ "$COMPONENT" == "pathcomp" ]; then + BUILD_LOG="$TMP_LOGS_FOLDER/build_${COMPONENT}-frontend.log" + docker build -t "$COMPONENT-frontend:$TFS_IMAGE_TAG" -f ./src/"$COMPONENT"/frontend/Dockerfile . > "$BUILD_LOG" + + BUILD_LOG="$TMP_LOGS_FOLDER/build_${COMPONENT}-backend.log" + docker build -t "$COMPONENT-backend:$TFS_IMAGE_TAG" -f ./src/"$COMPONENT"/backend/Dockerfile . > "$BUILD_LOG" + # next command is redundant, but helpful to keep cache updated between rebuilds + IMAGE_NAME="$COMPONENT-backend:$TFS_IMAGE_TAG-builder" + docker build -t "$IMAGE_NAME" --target builder -f ./src/"$COMPONENT"/backend/Dockerfile . >> "$BUILD_LOG" + elif [ "$COMPONENT" == "dlt" ]; then + BUILD_LOG="$TMP_LOGS_FOLDER/build_${COMPONENT}-connector.log" + docker build -t "$COMPONENT-connector:$TFS_IMAGE_TAG" -f ./src/"$COMPONENT"/connector/Dockerfile . > "$BUILD_LOG" + + BUILD_LOG="$TMP_LOGS_FOLDER/build_${COMPONENT}-gateway.log" + docker build -t "$COMPONENT-gateway:$TFS_IMAGE_TAG" -f ./src/"$COMPONENT"/gateway/Dockerfile . > "$BUILD_LOG" + else + docker build -t "$COMPONENT:$TFS_IMAGE_TAG" -f ./src/"$COMPONENT"/Dockerfile . > "$BUILD_LOG" + fi + + echo " Pushing Docker image to '$TFS_REGISTRY_IMAGES'..." + + if [ "$COMPONENT" == "pathcomp" ]; then + IMAGE_URL=$(echo "$TFS_REGISTRY_IMAGES/$COMPONENT-frontend:$TFS_IMAGE_TAG" | sed 's,//,/,g' | sed 's,http:/,,g') + + TAG_LOG="$TMP_LOGS_FOLDER/tag_${COMPONENT}-frontend.log" + docker tag "$COMPONENT-frontend:$TFS_IMAGE_TAG" "$IMAGE_URL" > "$TAG_LOG" + + PUSH_LOG="$TMP_LOGS_FOLDER/push_${COMPONENT}-frontend.log" + docker push "$IMAGE_URL" > "$PUSH_LOG" + + IMAGE_URL=$(echo "$TFS_REGISTRY_IMAGES/$COMPONENT-backend:$TFS_IMAGE_TAG" | sed 's,//,/,g' | sed 's,http:/,,g') + + TAG_LOG="$TMP_LOGS_FOLDER/tag_${COMPONENT}-backend.log" + docker tag "$COMPONENT-backend:$TFS_IMAGE_TAG" "$IMAGE_URL" > "$TAG_LOG" + + PUSH_LOG="$TMP_LOGS_FOLDER/push_${COMPONENT}-backend.log" + docker push "$IMAGE_URL" > "$PUSH_LOG" + elif [ "$COMPONENT" == "dlt" ]; then + IMAGE_URL=$(echo "$TFS_REGISTRY_IMAGES/$COMPONENT-connector:$TFS_IMAGE_TAG" | sed 's,//,/,g' | sed 's,http:/,,g') + + TAG_LOG="$TMP_LOGS_FOLDER/tag_${COMPONENT}-connector.log" + docker tag "$COMPONENT-connector:$TFS_IMAGE_TAG" "$IMAGE_URL" > "$TAG_LOG" + + PUSH_LOG="$TMP_LOGS_FOLDER/push_${COMPONENT}-connector.log" + docker push "$IMAGE_URL" > "$PUSH_LOG" + + IMAGE_URL=$(echo "$TFS_REGISTRY_IMAGES/$COMPONENT-gateway:$TFS_IMAGE_TAG" | sed 's,//,/,g' | sed 's,http:/,,g') + + TAG_LOG="$TMP_LOGS_FOLDER/tag_${COMPONENT}-gateway.log" + docker tag "$COMPONENT-gateway:$TFS_IMAGE_TAG" "$IMAGE_URL" > "$TAG_LOG" + + PUSH_LOG="$TMP_LOGS_FOLDER/push_${COMPONENT}-gateway.log" + docker push "$IMAGE_URL" > "$PUSH_LOG" + else + IMAGE_URL=$(echo "$TFS_REGISTRY_IMAGES/$COMPONENT:$TFS_IMAGE_TAG" | sed 's,//,/,g' | sed 's,http:/,,g') + + TAG_LOG="$TMP_LOGS_FOLDER/tag_${COMPONENT}.log" + docker tag "$COMPONENT:$TFS_IMAGE_TAG" "$IMAGE_URL" > "$TAG_LOG" + + PUSH_LOG="$TMP_LOGS_FOLDER/push_${COMPONENT}.log" + docker push "$IMAGE_URL" > "$PUSH_LOG" + fi + else + for QUICK_COMPONENT in $TFS_QUICK_COMPONENTS; do + if [ "$COMPONENT" == "$QUICK_COMPONENT" ]; then + + echo " Building Docker image..." + BUILD_LOG="$TMP_LOGS_FOLDER/build_${QUICK_COMPONENT}.log" + + docker build -t "$QUICK_COMPONENT:$TFS_IMAGE_TAG" -f ./src/"$QUICK_COMPONENT"/Dockerfile . > "$BUILD_LOG" + echo " Pushing Docker image to '$TFS_REGISTRY_IMAGES'..." + + + + IMAGE_URL=$(echo "$TFS_REGISTRY_IMAGES/$QUICK_COMPONENT:$TFS_IMAGE_TAG" | sed 's,//,/,g' | sed 's,http:/,,g') + + TAG_LOG="$TMP_LOGS_FOLDER/tag_${QUICK_COMPONENT}.log" + docker tag "$QUICK_COMPONENT:$TFS_IMAGE_TAG" "$IMAGE_URL" > "$TAG_LOG" + + PUSH_LOG="$TMP_LOGS_FOLDER/push_${QUICK_COMPONENT}.log" + docker push "$IMAGE_URL" > "$PUSH_LOG" + fi + done + fi + + echo " Adapting '$COMPONENT' manifest file..." + MANIFEST="$TMP_MANIFESTS_FOLDER/${COMPONENT}service.yaml" + cp ./manifests/"${COMPONENT}"service.yaml "$MANIFEST" + + if [ "$COMPONENT" == "pathcomp" ]; then + IMAGE_URL=$(echo "$TFS_REGISTRY_IMAGES/$COMPONENT-frontend:$TFS_IMAGE_TAG" | sed 's,//,/,g' | sed 's,http:/,,g') + VERSION=$(grep -i "${GITLAB_REPO_URL}/${COMPONENT}-frontend:" "$MANIFEST" | cut -d ":" -f4) + sed -E -i "s#image: $GITLAB_REPO_URL/$COMPONENT-frontend:${VERSION}#image: $IMAGE_URL#g" "$MANIFEST" + + IMAGE_URL=$(echo "$TFS_REGISTRY_IMAGES/$COMPONENT-backend:$TFS_IMAGE_TAG" | sed 's,//,/,g' | sed 's,http:/,,g') + VERSION=$(grep -i "${GITLAB_REPO_URL}/${COMPONENT}-backend:" "$MANIFEST" | cut -d ":" -f4) + sed -E -i "s#image: $GITLAB_REPO_URL/$COMPONENT-backend:${VERSION}#image: $IMAGE_URL#g" "$MANIFEST" + elif [ "$COMPONENT" == "dlt" ]; then + IMAGE_URL=$(echo "$TFS_REGISTRY_IMAGES/$COMPONENT-connector:$TFS_IMAGE_TAG" | sed 's,//,/,g' | sed 's,http:/,,g') + VERSION=$(grep -i "${GITLAB_REPO_URL}/${COMPONENT}-connector:" "$MANIFEST" | cut -d ":" -f4) + sed -E -i "s#image: $GITLAB_REPO_URL/$COMPONENT-connector:${VERSION}#image: $IMAGE_URL#g" "$MANIFEST" + + IMAGE_URL=$(echo "$TFS_REGISTRY_IMAGES/$COMPONENT-gateway:$TFS_IMAGE_TAG" | sed 's,//,/,g' | sed 's,http:/,,g') + VERSION=$(grep -i "${GITLAB_REPO_URL}/${COMPONENT}-gateway:" "$MANIFEST" | cut -d ":" -f4) + sed -E -i "s#image: $GITLAB_REPO_URL/$COMPONENT-gateway:${VERSION}#image: $IMAGE_URL#g" "$MANIFEST" + else + IMAGE_URL=$(echo "$TFS_REGISTRY_IMAGES/$COMPONENT:$TFS_IMAGE_TAG" | sed 's,//,/,g' | sed 's,http:/,,g') + VERSION=$(grep -i "${GITLAB_REPO_URL}/${COMPONENT}:" "$MANIFEST" | cut -d ":" -f4) + sed -E -i "s#image: $GITLAB_REPO_URL/$COMPONENT:${VERSION}#image: $IMAGE_URL#g" "$MANIFEST" + fi + + sed -E -i "s#imagePullPolicy: .*#imagePullPolicy: Always#g" "$MANIFEST" + + # TODO: harmonize names of the monitoring component + + echo " Deploying '$COMPONENT' component to Kubernetes..." + DEPLOY_LOG="$TMP_LOGS_FOLDER/deploy_${COMPONENT}.log" + kubectl --namespace $TFS_K8S_NAMESPACE apply -f "$MANIFEST" > "$DEPLOY_LOG" + COMPONENT_OBJNAME=$(echo "${COMPONENT}" | sed "s/\_/-/") + #kubectl --namespace $TFS_K8S_NAMESPACE scale deployment --replicas=0 ${COMPONENT_OBJNAME}service >> "$DEPLOY_LOG" + #kubectl --namespace $TFS_K8S_NAMESPACE scale deployment --replicas=1 ${COMPONENT_OBJNAME}service >> "$DEPLOY_LOG" + + echo " Collecting env-vars for '$COMPONENT' component..." + + SERVICE_DATA=$(kubectl get service ${COMPONENT_OBJNAME}service --namespace $TFS_K8S_NAMESPACE -o json) + if [ -z "${SERVICE_DATA}" ]; then continue; fi + + # Env vars for service's host address + SERVICE_HOST=$(echo ${SERVICE_DATA} | jq -r '.spec.clusterIP') + if [ -z "${SERVICE_HOST}" ]; then continue; fi + ENVVAR_HOST=$(echo "${COMPONENT}service_SERVICE_HOST" | tr '[:lower:]' '[:upper:]') + echo "export ${ENVVAR_HOST}=${SERVICE_HOST}" >> $ENV_VARS_SCRIPT + + # Env vars for service's 'grpc' port (if any) + SERVICE_PORT_GRPC=$(echo ${SERVICE_DATA} | jq -r '.spec.ports[] | select(.name=="grpc") | .port') + if [ -n "${SERVICE_PORT_GRPC}" ]; then + ENVVAR_PORT_GRPC=$(echo "${COMPONENT}service_SERVICE_PORT_GRPC" | tr '[:lower:]' '[:upper:]') + echo "export ${ENVVAR_PORT_GRPC}=${SERVICE_PORT_GRPC}" >> $ENV_VARS_SCRIPT + fi + + # Env vars for service's 'http' port (if any) + SERVICE_PORT_HTTP=$(echo ${SERVICE_DATA} | jq -r '.spec.ports[] | select(.name=="http") | .port') + if [ -n "${SERVICE_PORT_HTTP}" ]; then + ENVVAR_PORT_HTTP=$(echo "${COMPONENT}service_SERVICE_PORT_HTTP" | tr '[:lower:]' '[:upper:]') + echo "export ${ENVVAR_PORT_HTTP}=${SERVICE_PORT_HTTP}" >> $ENV_VARS_SCRIPT + fi + + printf "\n" +done + +echo "Deploying extra manifests..." +for EXTRA_MANIFEST in $TFS_EXTRA_MANIFESTS; do + echo "Processing manifest '$EXTRA_MANIFEST'..." + if [[ "$EXTRA_MANIFEST" == *"servicemonitor"* ]]; then + kubectl apply -f $EXTRA_MANIFEST + else + kubectl --namespace $TFS_K8S_NAMESPACE apply -f $EXTRA_MANIFEST + fi + printf "\n" +done +printf "\n" + +for COMPONENT in $TFS_COMPONENTS; do + echo "Waiting for '$COMPONENT' component..." + COMPONENT_OBJNAME=$(echo "${COMPONENT}" | sed "s/\_/-/") + kubectl wait --namespace $TFS_K8S_NAMESPACE \ + --for='condition=available' --timeout=300s deployment/${COMPONENT_OBJNAME}service + printf "\n" +done + +if [[ "$TFS_COMPONENTS" == *"webui"* ]] && [[ "$TFS_COMPONENTS" == *"monitoring"* ]]; then + echo "Configuring WebUI DataStores and Dashboards..." + sleep 5 + + # Exposed through the ingress controller "tfs-ingress" + GRAFANA_URL="127.0.0.1:80/grafana" + + # Default Grafana credentials + GRAFANA_USERNAME="admin" + GRAFANA_PASSWORD="admin" + + # Configure Grafana Admin Password + # Ref: https://grafana.com/docs/grafana/latest/http_api/user/#change-password + GRAFANA_URL_DEFAULT="http://${GRAFANA_USERNAME}:${GRAFANA_PASSWORD}@${GRAFANA_URL}" + + echo ">> Updating Grafana 'admin' password..." + curl -X PUT -H "Content-Type: application/json" -d '{ + "oldPassword": "'${GRAFANA_PASSWORD}'", + "newPassword": "'${TFS_GRAFANA_PASSWORD}'", + "confirmNew" : "'${TFS_GRAFANA_PASSWORD}'" + }' ${GRAFANA_URL_DEFAULT}/api/user/password + echo + echo + + # Updated Grafana API URL + GRAFANA_URL_UPDATED="http://${GRAFANA_USERNAME}:${TFS_GRAFANA_PASSWORD}@${GRAFANA_URL}" + echo "export GRAFANA_URL_UPDATED=${GRAFANA_URL_UPDATED}" >> $ENV_VARS_SCRIPT + + echo ">> Installing Scatter Plot plugin..." + curl -X POST -H "Content-Type: application/json" -H "Content-Length: 0" \ + ${GRAFANA_URL_UPDATED}/api/plugins/michaeldmoore-scatter-panel/install + echo + + # Ref: https://grafana.com/docs/grafana/latest/http_api/data_source/ + QDB_HOST_PORT="${METRICSDB_HOSTNAME}:${QDB_SQL_PORT}" + echo ">> Creating datasources..." + curl -X POST -H "Content-Type: application/json" -H "Accept: application/json" -d '{ + "access" : "proxy", + "type" : "postgres", + "name" : "questdb-mon-kpi", + "url" : "'${QDB_HOST_PORT}'", + "database" : "'${QDB_TABLE_MONITORING_KPIS}'", + "user" : "'${QDB_USERNAME}'", + "basicAuth": false, + "isDefault": true, + "jsonData" : { + "sslmode" : "disable", + "postgresVersion" : 1100, + "maxOpenConns" : 0, + "maxIdleConns" : 2, + "connMaxLifetime" : 14400, + "tlsAuth" : false, + "tlsAuthWithCACert" : false, + "timescaledb" : false, + "tlsConfigurationMethod": "file-path", + "tlsSkipVerify" : true + }, + "secureJsonData": {"password": "'${QDB_PASSWORD}'"} + }' ${GRAFANA_URL_UPDATED}/api/datasources + echo + + curl -X POST -H "Content-Type: application/json" -H "Accept: application/json" -d '{ + "access" : "proxy", + "type" : "postgres", + "name" : "questdb-slc-grp", + "url" : "'${QDB_HOST_PORT}'", + "database" : "'${QDB_TABLE_SLICE_GROUPS}'", + "user" : "'${QDB_USERNAME}'", + "basicAuth": false, + "isDefault": false, + "jsonData" : { + "sslmode" : "disable", + "postgresVersion" : 1100, + "maxOpenConns" : 0, + "maxIdleConns" : 2, + "connMaxLifetime" : 14400, + "tlsAuth" : false, + "tlsAuthWithCACert" : false, + "timescaledb" : false, + "tlsConfigurationMethod": "file-path", + "tlsSkipVerify" : true + }, + "secureJsonData": {"password": "'${QDB_PASSWORD}'"} + }' ${GRAFANA_URL_UPDATED}/api/datasources + printf "\n\n" + + echo ">> Creating dashboards..." + # Ref: https://grafana.com/docs/grafana/latest/http_api/dashboard/ + curl -X POST -H "Content-Type: application/json" -d '@src/webui/grafana_db_mon_kpis_psql.json' \ + ${GRAFANA_URL_UPDATED}/api/dashboards/db + echo + + curl -X POST -H "Content-Type: application/json" -d '@src/webui/grafana_db_slc_grps_psql.json' \ + ${GRAFANA_URL_UPDATED}/api/dashboards/db + printf "\n\n" + + echo ">> Staring dashboards..." + DASHBOARD_URL="${GRAFANA_URL_UPDATED}/api/dashboards/uid/tfs-l3-monit" + DASHBOARD_ID=$(curl -s "${DASHBOARD_URL}" | jq '.dashboard.id') + curl -X POST ${GRAFANA_URL_UPDATED}/api/user/stars/dashboard/${DASHBOARD_ID} + echo + + DASHBOARD_URL="${GRAFANA_URL_UPDATED}/api/dashboards/uid/tfs-slice-grps" + DASHBOARD_ID=$(curl -s "${DASHBOARD_URL}" | jq '.dashboard.id') + curl -X POST ${GRAFANA_URL_UPDATED}/api/user/stars/dashboard/${DASHBOARD_ID} + echo + + printf "\n\n" +fi diff --git a/src/bgpls_speaker/requirements.in b/src/bgpls_speaker/requirements.in new file mode 100644 index 0000000000000000000000000000000000000000..3af49b784a205ac6aada306219f5a2e658beea27 --- /dev/null +++ b/src/bgpls_speaker/requirements.in @@ -0,0 +1,23 @@ +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# +# 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. + +anytree==2.8.0 +APScheduler==3.8.1 +ncclient==0.6.13 +python-json-logger==2.0.2 +lxml==4.9.1 +pytz==2021.3 +xmltodict==0.12.0 +grpcio==1.47.* +protobuf==3.20.* \ No newline at end of file diff --git a/src/bgpls_speaker/service/BgplsService.py b/src/bgpls_speaker/service/BgplsService.py new file mode 100644 index 0000000000000000000000000000000000000000..3ac4d1c5bab56cfea2a0457893691175a5dfdfbb --- /dev/null +++ b/src/bgpls_speaker/service/BgplsService.py @@ -0,0 +1,31 @@ +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# +# 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. + +from bgpls_speaker.service.tools.DiscoveredDBManager import DiscoveredDBManager +from bgpls_speaker.service.tools.GrpcServer import GrpcServer +from common.Constants import ServiceNameEnum +from common.Settings import get_service_port_grpc +from common.proto.bgpls_pb2_grpc import add_BgplsServiceServicer_to_server +from common.tools.service.GenericGrpcService import GenericGrpcService +from .BgplsServiceServicerImpl import BgplsServiceServicerImpl + +class BgplsService(GenericGrpcService): + def __init__(self, discoveredDB : DiscoveredDBManager, + speakerServer : GrpcServer,cls_name: str = __name__) -> None: + port = get_service_port_grpc(ServiceNameEnum.BGPLS) # El enum en common.constants + super().__init__(port, cls_name=cls_name) + self.bgpls_servicer = BgplsServiceServicerImpl(discoveredDB,speakerServer) + + def install_servicers(self): + add_BgplsServiceServicer_to_server(self.bgpls_servicer, self.server) diff --git a/src/bgpls_speaker/service/BgplsServiceServicerImpl.py b/src/bgpls_speaker/service/BgplsServiceServicerImpl.py new file mode 100644 index 0000000000000000000000000000000000000000..6fa9a8b8049e782b60ee700990a742e702d8942d --- /dev/null +++ b/src/bgpls_speaker/service/BgplsServiceServicerImpl.py @@ -0,0 +1,178 @@ +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# +# 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. + +import grpc, json, logging +from typing import List, Tuple, Union +from bgpls_speaker.service.tools.DiscoveredDBManager import DiscoveredDBManager, GetContextDevices, getEndpointFromIpInterface +from bgpls_speaker.service.tools.GrpcServer import GrpcServer +from common.method_wrappers.Decorator import MetricsPool, safe_and_metered_rpc_method +from common.proto.context_pb2 import DeviceId, Empty, EndPointId, Link, LinkId, Uuid +from context.client.ContextClient import ContextClient +from common.proto.bgpls_pb2 import ( + BgplsSpeaker, BgplsSpeakerId, DiscoveredDeviceList, DiscoveredDevice, + DiscoveredLink, DiscoveredLinkList, NodeDescriptors, BgplsSpeakerList +) +from common.proto.bgpls_pb2_grpc import BgplsServiceServicer + +LOGGER = logging.getLogger(__name__) + +METRICS_POOL = MetricsPool('Service', 'RPC') + +class BgplsServiceServicerImpl(BgplsServiceServicer): + def __init__(self,discoveredDB : DiscoveredDBManager, + speakerServer : GrpcServer) -> None: + LOGGER.debug('Creating Servicer...') + self.speaker_handler_factory = 1 + self.speaker_server=speakerServer + self.discoveredDB=discoveredDB + LOGGER.debug('Servicer Created') + + @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) + def ListDiscoveredDevices(self, request : Empty, context : grpc.ServicerContext) -> DiscoveredDeviceList: + """ + Get devices discovered from bgpls protocol + """ + device_names=self.discoveredDB.GetNodeNamesFromDiscoveredDB() + nodes = self.discoveredDB.GetNodesFromDiscoveredDB() + devices = [DiscoveredDevice(nodeName=node.node_name,igpID=node.igp_id,learntFrom=node.learnt_from) for node in nodes] + return DiscoveredDeviceList(discovereddevices=devices) + + @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) + def ListDiscoveredLinks(self, request : Empty, context : grpc.ServicerContext) -> DiscoveredLinkList: + """ + Get links discovered from bgpls protocol + """ + self.discoveredDB.UpdateNodeNameInLink() + links = self.discoveredDB.GetLinksFromDiscoveredDB() + links_info=[] + for link in links: + local=NodeDescriptors(igp_id=link.local_id,nodeName=link.local_id) + remote=NodeDescriptors(igp_id=link.remote_id,nodeName=link.remote_id) + links_info.append(DiscoveredLink(local=local,remote=remote,learntFrom=link.learnt_from, + local_ipv4=link.local_ipv4_id,remote_ipv4=link.remote_ipv4_id)) + return DiscoveredLinkList(discoveredlinks=links_info) + + @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) + def AddBgplsSpeaker(self, request : BgplsSpeaker, context : grpc.ServicerContext) -> BgplsSpeakerId: + """ + Creates a new connection with an speaker with the given ip address, port and as. + Returns de id of the speaker created (to kill proccess¿) + """ + LOGGER.debug("(AddBgplsSpeaker) Create speaker instance %s",request) + + speaker_id=self.speaker_server.connectToJavaBgpls(request.address,request.port,request.asNumber) + return BgplsSpeakerId(id=speaker_id) + + @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) + def ListBgplsSpeakers(self, request : Empty, context : grpc.ServicerContext) -> BgplsSpeakerId: + """ + Returns a list of the IDs of the BGP-LS speakers with open connections. + """ + speaker_list=[] + bgpls_speaker_list=[] + speaker_list=self.speaker_server.getSpeakerListIds() + for speaker in speaker_list: + bgpls_speaker_list.append(BgplsSpeakerId(id=speaker)) + return BgplsSpeakerList(speakers=bgpls_speaker_list) + + @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) + def DisconnectFromSpeaker(self, request : BgplsSpeaker, context : grpc.ServicerContext) -> bool: + """ + Disconencts from the BGP-LS speaker given its ipv4 address. + """ + speaker_id=self.speaker_server.getSpeakerIdFromIpAddr(request.address) + self.speaker_server.terminateRunnerById(speaker_id) + return Empty() + + @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) + def GetSpeakerInfoFromId(self, request : BgplsSpeakerId, context : grpc.ServicerContext) -> BgplsSpeaker: + """ + Get the address, port and as number of the speaker given its id. + """ + address,as_number,port=self.speaker_server.getSpeakerFromId(request.id) + return BgplsSpeaker(address=address,port=port,asNumber=as_number) + + @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) + def NotifyAddNodeToContext(self, request : DiscoveredDevice, context : grpc.ServicerContext) : + """ + When a node is added to context via bgpls module this function checks if there are other nodes in the + topology connected by links discovered via bgpls. Then, if the link exist adds it to the context. + """ + node_name=request.nodeName + node_igp=self.discoveredDB.GetIgpIdFromNodeName(node_name) + LOGGER.debug("(NotifyAddNodeToContext) Find links to nodes %s:%s",node_name,node_igp) + # Get nodes connected and links were the igpID appears + nodes_conected, links_local, links_remote=self.discoveredDB.FindConnectedNodes(node_igp) + o=[LOGGER.debug("(NotifyAddNodeToContext) Links local: %s %s",link_local.local_id, link_local.remote_id) for link_local in links_local] + o=[LOGGER.debug("(NotifyAddNodeToContext) Links remote: %s %s",links_remote.local_id,links_remote.remote_id) for links_remote in links_remote] + # Check if nodes are in context + context_client=ContextClient() + context_client.connect() + # devices=context_client.ListDevices(Empty()) + device_names,devices_ips=GetContextDevices(context_client) + LOGGER.debug("(NotifyAddNodeToContext) Devices in context: %s", device_names) + LOGGER.debug("(NotifyAddNodeToContext) Nodes conected in context: %s", nodes_conected) + nodes_conected_in_context=list(set(nodes_conected) & set(device_names)) + LOGGER.debug("(NotifyAddNodeToContext) nodes_conected_in_context: %s", nodes_conected_in_context) + # TODO: next to function + for remote_node in nodes_conected_in_context: + LOGGER.info("(NotifyAddNodeToContext) creating link to...: %s", remote_node) + remote_igp=self.discoveredDB.GetIgpIdFromNodeName(remote_node) + # Get source device from name + device_uuid_src=DeviceId(device_uuid=Uuid(uuid=node_name)) + device_src=context_client.GetDevice(device_uuid_src) + + # Get destination device from name + device_uuid_dest=DeviceId(device_uuid=Uuid(uuid=remote_node)) + device_dest=context_client.GetDevice(device_uuid_dest) + + # Here I assume one link will always have same link in other direction + # First direction for link + # Get endpoints associated to link between devices + for link_local in links_local: + LOGGER.debug("(NotifyAddNodeToContext) local: %s %s", link_local.local_id,link_local.remote_id) + LOGGER.debug("(NotifyAddNodeToContext) matches: %s %s", node_igp,remote_igp) + if link_local.local_id == node_igp and link_local.remote_id == remote_igp: + LOGGER.debug("(NotifyAddNodeToContext) local_ipv4_id: %s", link_local.local_ipv4_id) + end_point1,ip_1=getEndpointFromIpInterface(device_src,link_local.local_ipv4_id) + LOGGER.debug("(NotifyAddNodeToContext) end_point1: %s", end_point1) + + LOGGER.debug("(NotifyAddNodeToContext) remote_ipv4_id: %s", link_local.remote_ipv4_id) + end_point2,ip_2=getEndpointFromIpInterface(device_dest,link_local.remote_ipv4_id) + LOGGER.debug("(NotifyAddNodeToContext) end_point2: %s", end_point2) + # LOGGER.debug("(NotifyAddNodeToContext) Source: %s Destination: %s", end_point1,end_point2) + + link_name_src_dest=node_name+"/"+end_point1+"=="+remote_node+"/"+end_point2 + + end_point_uuid1=Uuid(uuid=end_point1) + end_point_uuid2=Uuid(uuid=end_point2) + + end_point_id1=EndPointId(endpoint_uuid=end_point_uuid1,device_id=device_uuid_src) + + link_name_dest_src=remote_node+"/"+end_point2+"=="+node_name+"/"+end_point1 + + end_point_id2=EndPointId(endpoint_uuid=end_point_uuid2,device_id=device_uuid_dest) + + end_point_ids_src_dest=[end_point_id1,end_point_id2] + end_point_ids_dest_src=[end_point_id2,end_point_id1] + + link_id_src=context_client.SetLink(Link(link_id=LinkId(link_uuid=Uuid(uuid=link_name_src_dest)), + link_endpoint_ids=end_point_ids_src_dest)) + + link_id_dst=context_client.SetLink(Link(link_id=LinkId(link_uuid=Uuid(uuid=link_name_dest_src)), + link_endpoint_ids=end_point_ids_dest_src)) + + LOGGER.debug("(NotifyAddNodeToContext) Link set id src--->dst: %s", link_id_src) + context_client.close() + return Empty() diff --git a/src/bgpls_speaker/service/__init__.py b/src/bgpls_speaker/service/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..f80ccfd52ebfd4fa1783267201c52eb7381741bf --- /dev/null +++ b/src/bgpls_speaker/service/__init__.py @@ -0,0 +1,13 @@ +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# +# 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. \ No newline at end of file diff --git a/src/bgpls_speaker/service/__main__.py b/src/bgpls_speaker/service/__main__.py new file mode 100644 index 0000000000000000000000000000000000000000..a56449eafb0eb40a31768e16f0fdcb1fa1dc72f8 --- /dev/null +++ b/src/bgpls_speaker/service/__main__.py @@ -0,0 +1,63 @@ +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# +# 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. + +import logging, signal, sys, threading +from prometheus_client import start_http_server +from common.Settings import get_log_level, get_metrics_port +from .tools.DiscoveredDBManager import DiscoveredDBManager +from .BgplsService import BgplsService +from .tools.GrpcServer import GrpcServer + +terminate = threading.Event() +LOGGER : logging.Logger = None +_ONE_DAY_IN_SECONDS = 60 * 60 * 24 + +def signal_handler(signal, frame): + LOGGER.warning('Terminate signal received') + LOGGER.warning(signal) + terminate.set() + +def main(): + global LOGGER + + log_level = get_log_level() + logging.basicConfig(level=log_level, format="[%(asctime)s] %(levelname)s:%(name)s:%(message)s") + LOGGER = logging.getLogger(__name__) + signal.signal(signal.SIGINT, signal_handler) + signal.signal(signal.SIGTERM, signal_handler) + + LOGGER.info('Starting...') + + # Start metrics server + metrics_port = get_metrics_port() + start_http_server(metrics_port) + # One common database for all bgpls_speakers connection + DB=DiscoveredDBManager() + + speaker_server = GrpcServer(DB) + speaker_server.Connect() + + grpc_service = BgplsService(DB,speaker_server) + grpc_service.start() + + # Wait for termination signal + while not terminate.wait(timeout=0.1): pass + LOGGER.info('Terminating...') + speaker_server.terminateGrpcServer() + grpc_service.stop() + LOGGER.info('Bye') + return 0 + +if __name__ == '__main__': + sys.exit(main()) diff --git a/src/bgpls_speaker/service/java/BGP4Parameters_3.xml b/src/bgpls_speaker/service/java/BGP4Parameters_3.xml new file mode 100644 index 0000000000000000000000000000000000000000..ec6894922db6cee3fa696a9610929041817e4c82 --- /dev/null +++ b/src/bgpls_speaker/service/java/BGP4Parameters_3.xml @@ -0,0 +1,65 @@ + + + + + 12179 + 7.7.7.7 + + 1112 + + + 10.95.90.43 + false + true + 179 + + + + BGP4Parser2.log + BGP4Client2.log + BGP4Server2.log + + true + + 40000 + true + + + 180 + + 4 + + 65006 + + + + false + + true + + fromBGP + + + + + + 0.0.0.0 + \ No newline at end of file diff --git a/src/bgpls_speaker/service/java/exec_speakear_java.sh b/src/bgpls_speaker/service/java/exec_speakear_java.sh new file mode 100644 index 0000000000000000000000000000000000000000..10f84c6537714982a1441b284b45b59373e9b49f --- /dev/null +++ b/src/bgpls_speaker/service/java/exec_speakear_java.sh @@ -0,0 +1,19 @@ +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# +# 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. + +#!/bin/bash +cd netphony-topology/ +"/home/ubuntu/downloads/apache-maven-3.8.8/bin/mvn" clean package -P bgp-ls-speaker assembly:single -DskipTests +cd .. +sudo java -jar netphony-topology/target/bgp-ls-speaker-jar-with-dependencies.jar BGP4Parameters_3.xml \ No newline at end of file diff --git a/src/bgpls_speaker/service/java/netphony-topology/.settings/org.eclipse.jdt.core.prefs b/src/bgpls_speaker/service/java/netphony-topology/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..cb635b1c2a6bee7b1279cac6db56bd9ee2f6c271 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,8 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore +org.eclipse.jdt.core.compiler.release=disabled +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/src/bgpls_speaker/service/java/netphony-topology/BGP4Parameters_3.xml b/src/bgpls_speaker/service/java/netphony-topology/BGP4Parameters_3.xml new file mode 100644 index 0000000000000000000000000000000000000000..063344673d2a07b7fdf2f69871c44518cd7f2d1a --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/BGP4Parameters_3.xml @@ -0,0 +1,65 @@ + + + + + 12179 + 7.7.7.7 + + 1112 + + + 10.95.90.43 + false + true + 179 + + + + BGP4Parser2.log + BGP4Client2.log + BGP4Server2.log + + true + + 40000 + true + + + 180 + + 4 + + 100 + + + + false + + true + + fromBGP + + + + + + 0.0.0.0 + \ No newline at end of file diff --git a/src/bgpls_speaker/service/java/netphony-topology/CHANGELOG b/src/bgpls_speaker/service/java/netphony-topology/CHANGELOG new file mode 100644 index 0000000000000000000000000000000000000000..4049eba8ae25be4be928f0b937d80788d6c955eb --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/CHANGELOG @@ -0,0 +1,50 @@ +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +# 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. + +v1.3.3 +- Topology Module added +- Topology Module: Export via RESCONF with COP model +- Topology Module: Export via RESTCONF with IETF model (nodes only) +- Topology Module: Export via UNIFY model +- Topology Module: Import via XML +- Topology Module: Import/Export via BGP-LS +v1.3.2 +- Supports network-protocols 1.3.2 +- Update to support reading multiple AS_PATH +- Apache 2.0 license +- Moved to slf4j logging framework +- Added method to pass multiple TEDs from en external program +- Added docker support in travis +v1.3 +- Compile with networking-protocols v1.3.0 (available in maven central) +- JUnit Test upgrade to check intraTEDBs after sending +- Added functionality: read multiple intraTEDBs from xml file +- Added support to draft-previdi-idr-bgpls-te-metric-extensions-00 +v1.2.2 +- Added travis integration +- Javadoc errors fixed +- Ready to meet maven central requirements +- Compile with networking-protocols v1.2.3 (available in maven central) +v1.2.1 +- Compile with networking-protocols v1.2.1 +v1.2 +- JUnit Test added +- Bugfixes +- Reduced number of logs +- Updated README with explanation of parameters +v1.1.1 +- Added configuration instructions of the standalone BGP Peer +- Added dependencies to pom.xml +v1.1.0 +First Public Release diff --git a/src/bgpls_speaker/service/java/netphony-topology/LICENSE b/src/bgpls_speaker/service/java/netphony-topology/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..d645695673349e3947e8e5ae42332d0ac3164cd7 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. diff --git a/src/bgpls_speaker/service/java/netphony-topology/VERSION b/src/bgpls_speaker/service/java/netphony-topology/VERSION new file mode 100644 index 0000000000000000000000000000000000000000..31e5c843497c24df077777c05af122d8b3a60ddb --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/VERSION @@ -0,0 +1 @@ +1.3.3 diff --git a/src/bgpls_speaker/service/java/netphony-topology/doc/Examples.md b/src/bgpls_speaker/service/java/netphony-topology/doc/Examples.md new file mode 100644 index 0000000000000000000000000000000000000000..88f7a7bd5c7a268857a7a4ec2642c388daf715d3 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/doc/Examples.md @@ -0,0 +1,133 @@ + + +#Examples + +##Topology Module Examples + +Two sets of basic configuration files are here included with Topology Module software: the setup for running three TM within the same machine (configuration A) and the setup for running three TM in three dedicated machines (configuration B). In both cases three example network topologies are provided to represent the abstract topology of 2 end-point providers and 1 transit provider. + +### Example TM1: 1 Way Test in the same virtual machine, BPG-LS Plugin and UNIFY Export. + +The setup has been provided just for testing purpose and configures 3 TADS in the same machine to perform unidirectional information exchange. + +![1WayTest](figures/1wayTest.png?raw=true "Test with 3 TM") + +The reference files, including Topology Module configuration, BGP-LS Plugin configuration and abstracted topologies are copiend in the folder target/conf1wayTest after the maven installation. Be sure to compile also the Topology Module as indicated in README.md. + +To execute TM1 run: + ```bash + sudo java -Dlog4j.configurationFile=target/log4j2.xml -jar target/topology-1.3.3-shaded.jar target/conf1wayTest/TM1.xml + ``` + +To execute TM2 run: + ```bash + sudo java -Dlog4j.configurationFile=target/log4j2.xml -jar target/topology-1.3.3-shaded.jar target/conf1wayTest/TM2.xml + ``` + +To execute TM3 run: + ```bash + sudo java -Dlog4j.configurationFile=target/log4j2.xml -jar target/topology-1.3.3-shaded.jar target/conf1wayTest/TM3.xml + ``` + +To verify the retrieved information: + ```bash +curl http://localhost:8087/restconf/data/virtualizer/ | python -m json.tool + ``` +[for TADS2] + ```bash +curl http://localhost:8088/restconf/data/virtualizer/ | python -m json.tool + ``` +[for TADS3] + ```bash +curl http://localhost:8089/restconf/data/virtualizer/ | python -m json.tool + ``` + +### Example TM2: 2 Way Test in the different virtual machines, BPG-LS Plugin and UNIFY Export. +The setup has been provided as reference configuration for the configuration of 3 TM in dedicated machines to perform bidirectional exchange of information +![1WayTest](figures/2wayTest.png?raw=true "Test with 3 TM in 3 different machines") +The reference files, including Topology Module configuration, BGP-LS Plugin configuration and abstracted topologies are in + ```bash +target/conf2waysReal + ``` +Before running the reference scenario be sure to complete the IP configuration in the 3 modules, in fact, according to previous description, minor ad-hoc changes are needed. + +In the Topology Module configuration files (TM*.xml): +• set the IP address used for the BGP-LS communication as Identifier + +In the BGP-LS Plugin configuration (BGPLS*_2way.xml): +• set the IP address used for the BGP-LS communication as BGPIdentifier +• configure the peers as needed (IP address and port) + +[where * = 1,2,3] + +To execute TADS1 in machine 1 run: + ```bash + sudo java -Dlog4j.configurationFile=target/log4j2.xml -jar target/topology-1.3.3-shaded.jar target/conf1wayTest/TM1.xml + ``` + +To execute TADS1 in machine 2 run: + ```bash + sudo java -Dlog4j.configurationFile=target/log4j2.xml -jar target/topology-1.3.3-shaded.jar target/conf1wayTest/TM2.xml + ``` + +To execute TADS1 in machine 3 run: + ```bash + sudo java -Dlog4j.configurationFile=target/log4j2.xml -jar target/topology-1.3.3-shaded.jar target/conf1wayTest/TM3.xml + ``` + +To verify the retrieved information: +[for TADS2, in machine 1] + ```bash +curl http://localhost:8088/restconf/data/virtualizer/ | python -m json.tool + ``` +[for TADS2, in machine 2] + ```bash +>curl http://localhost:8088/restconf/data/virtualizer/ | python -m json.tool + ``` +[for TADS3, in machine 3] + ```bash +>curl http://localhost:8088/restconf/data/virtualizer/ | python -m json.tool + ``` +### Topology module with BGP-LS and COP plugins and BGP-LS speaker + +In this example there are 2 BGP-LS speakers, one acting as sender of topology, and the other as consumer. A small topology is loaded from an xml file in BGP-LS Speaker #1. This topology is sent to BGP-LS Speaker #2. + ```bash +TBD + ``` +### Topology module with BGP-LS and COP plugins and Topology module with BGP-LS speaker + +In this example there are 2 BGP-LS speakers, one acting as sender of topology, and the other as consumer. A small topology is loaded from an xml file in BGP-LS Speaker #1. This topology is sent to BGP-LS Speaker #2. + ```bash +TBD + ``` +## BGP-LS Speaker Examples + +### BPP-LS Speaker Example 1 + +In this example there are 2 BGP-LS speakers, one acting as sender of topology, and the other as consumer. A small topology is loaded from an xml file in BGP-LS Speaker #1. This topology is sent to BGP-LS Speaker #2. +To launch BGP-LS Speaker #1: + ```bash +sudo java -Dlog4j.configurationFile=target/log4j2.xml -jar target/bgp-ls-speaker-jar-with-dependencies.jar target/bgpls_example1/BGP4Parameters_1.xml + ``` + BGP-LS Speaker #2: + ```bash +sudo java -Dlog4j.configurationFile=target/log4j2.xml -jar target/bgp-ls-speaker-jar-with-dependencies.jar target/bgpls_example1/BGP4Parameters_2.xml + ``` +To verify the retrieved information: + ```bash +telnet localhost 1112 +show topology + ``` +Then, the topology is printed on screen. diff --git a/src/bgpls_speaker/service/java/netphony-topology/doc/TAPIExample.md b/src/bgpls_speaker/service/java/netphony-topology/doc/TAPIExample.md new file mode 100644 index 0000000000000000000000000000000000000000..9b0c48c8ed24fe8ca5c06f118b3d440653c686e5 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/doc/TAPIExample.md @@ -0,0 +1,27 @@ + + +# Example 1: TM with XML Plugin and TAPI Plugin +- First of all, compile the full-jar if you have not done so +```bash + mvn package -P generate-full-jar +``` +Execute the server +```bash +sudo java -Dlog4j.configurationFile=target/examples/log4j2.xml -jar target/topology-1.3.4-SNAPSHOT-shaded.jar target/TM_TAPI_example1/TMConfTAPI.xml +``` +Make the query +```bash +curl http://localhost:8089/config/context/topology -X GET -i -H "Content-Type: application/json" -H "Accept: application/json" +``` diff --git a/src/bgpls_speaker/service/java/netphony-topology/doc/TopologyFileDescription.md b/src/bgpls_speaker/service/java/netphony-topology/doc/TopologyFileDescription.md new file mode 100644 index 0000000000000000000000000000000000000000..452050b65106b8393ac8a7df98ea472b7705e608 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/doc/TopologyFileDescription.md @@ -0,0 +1,127 @@ + + +# Topology XML File + +This section describes the topology file format, used by the TADS to load the abstracted view of the local provider. + +The reference file for this description is + +``` +target/conf1wayTest/network1.xml +``` + +The main tag of the file is **network** that can include multiple **domains**, each domain represents a provider. + +```xml + + + + + + +``` + +In this case the network topology includes two providers. + +The first part of the each domain contains some general information: + + - **domain_id**: the AS number of the domain represented in IPv4 format + - the **reachability_entry**: that summarizes the prefix network for the provider (IPv4 network prefix and mask) + - **it_resources**: here the information related to overall IT resources availability is described considering + - **controller_it**: the entry point for 5GEx orchestration + - **cpu**: overall available CPUs + - **mem**: overall available memory + - **storage**: overall available storage + +```xml +0.0.0.1 + + 172.16.101.0 + 24 + + + https://openstack.5Gex.com/url + 100 + 100Gbyte + 100Tbyte + +``` + +Then the file is organized considering a list of nodes and a list unidirectional links. + +Each node is represented with a tag **node** and is identified with an IPv4 id called **router_id** + +```xml + + 172.16.101.101 + + + 172.16.101.102 + + + 172.16.101.103 + + + 172.16.101.104 + +``` + +In the reference case 4 nodes are considered. +Each link is identified by the tag **edge**. +The link description include: + + + - **source**: the source node of the link, identified with the pair **router_id** and interface id, **if_id** + - **destination**: the destination node of the link, identified with the pair router_id and interface + - **TE parameters**: several possibilities are available, in the considered example the focus was on + - unidirectional link delay + - minimum experienced delay + - maximum experienced delay + +```xml + + + 172.16.101.101 + 1 + + + 172.16.101.104 + 1 + + 99 + + 23 + 250 + + + +``` + +For setting up default TE parameters for all the network links, the **edgeCommon** tag is used. + +```xml + + 99 + + 23 + 43 + + 1 + 102 + 802 + 500 + 436 + +``` diff --git a/src/bgpls_speaker/service/java/netphony-topology/doc/figures/1wayTest.png b/src/bgpls_speaker/service/java/netphony-topology/doc/figures/1wayTest.png new file mode 100644 index 0000000000000000000000000000000000000000..021dd3ee5c6dff653af4131f8060e0b7cac88f1d Binary files /dev/null and b/src/bgpls_speaker/service/java/netphony-topology/doc/figures/1wayTest.png differ diff --git a/src/bgpls_speaker/service/java/netphony-topology/doc/figures/2wayTest.png b/src/bgpls_speaker/service/java/netphony-topology/doc/figures/2wayTest.png new file mode 100644 index 0000000000000000000000000000000000000000..4800df6d96874c480059be8cc905e753b8614f2b Binary files /dev/null and b/src/bgpls_speaker/service/java/netphony-topology/doc/figures/2wayTest.png differ diff --git a/src/bgpls_speaker/service/java/netphony-topology/log4j2.xml b/src/bgpls_speaker/service/java/netphony-topology/log4j2.xml new file mode 100644 index 0000000000000000000000000000000000000000..d0b383697fccd29960486751685e927d76dda34c --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/log4j2.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/bgpls_speaker/service/java/netphony-topology/pom.xml b/src/bgpls_speaker/service/java/netphony-topology/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..be949361d720695e225e4c9fc08c9730f453fd8a --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/pom.xml @@ -0,0 +1,497 @@ + + + 4.0.0 + es.tid.netphony + topology + 1.4.0-SNAPSHOT + jar + Netphony TED and BGP-LS peer + Traffic Engineering Database, BGP-LS peer, Topology Module + http://telefonicaid.github.io/netphony-topology/ + + + Apache License 2.0 + http://www.apache.org/licenses/LICENSE-2.0 + + + + + + + + + + + + + + + + + + + com.sun.jersey + jersey-json + ${jersey-version} + + + + org.slf4j + slf4j-api + ${slf4j-version} + + + + org.slf4j + slf4j-simple + ${slf4j-version} + + + es.tid.netphony + network-protocols + 1.4.1 + + + + + org.jgrapht + jgrapht-core + ${jgrapht-core-version} + + + com.google.code.gson + gson + 2.2.2 + + + com.googlecode.json-simple + json-simple + 1.1.1 + + + com.metaparadigm + json-rpc + 1.0 + + + redis.clients + jedis + 2.1.0 + + + + com.fasterxml.jackson.core + jackson-core + ${jackson-version} + + + com.fasterxml.jackson.core + jackson-annotations + ${jackson-version} + + + com.fasterxml.jackson.core + jackson-databind + ${jackson-version} + + + com.fasterxml.jackson.datatype + jackson-datatype-joda + ${jackson-datatype-joda-version} + + + + joda-time + joda-time + ${jodatime-version} + + + + + io.grpc + grpc-netty-shaded + ${grpc-protobuf-version} + + + io.grpc + grpc-protobuf + ${grpc-protobuf-version} + + + io.grpc + grpc-stub + ${grpc-stub-version} + + + javax.annotation + javax.annotation-api + ${javax-annotation-api-version} + + + + com.google.guava + guava + 31.1-jre + + + + + + Telefonica I+D + oscar.gonzalezdedios@telefonica.com + Telefonica I+D + https://www.tid.es + + + + scm:git:git@github.com:telefonicaid/netphony-topology.git + scm:git:git@github.com:telefonicaid/netphony-topology.git + git@github.com:telefonicaid/netphony-topology.git + + + + + oss.sonatype.org-snapshot + http://oss.sonatype.org/content/repositories/snapshots + + false + + + true + + + + + + ossrh + https://oss.sonatype.org/content/repositories/snapshots + + + ossrh + https://oss.sonatype.org/service/local/staging/deploy/maven2/ + + + + ${basedir}/src/main/java + + + kr.motd.maven + os-maven-plugin + 1.6.2 + + + + + + org.xolstice.maven.plugins + protobuf-maven-plugin + 0.6.1 + + com.google.protobuf:protoc:3.9.0:exe:${os.detected.classifier} + grpc-java + io.grpc:protoc-gen-grpc-java:1.24.0:exe:${os.detected.classifier} + + + + + compile + compile-custom + + + + + + maven-compiler-plugin + 3.8.1 + + 8 + 8 + UTF-8 + + + + maven-resources-plugin + 2.6 + + UTF-8 + + + + copy-resources + validate + + copy-resources + + + ${basedir}/target + + + ${basedir}/src/main/resources + true + + + ${basedir}/src/main/sample-config-files + true + + + + + + + + org.apache.maven.plugins + maven-source-plugin + 2.2.1 + + + attach-sources + + jar-no-fork + + + + + + + org.apache.maven.plugins + maven-jar-plugin + 3.1.0 + + + + true + lib/ + eu.teraflow.tid.bgp4Peer.peer.BGPPeerMain + + + + + + + + + deploy-maven-central + + + + org.apache.maven.plugins + maven-javadoc-plugin + 2.9.1 + + -Xdoclint:none + + + + attach-javadocs + + jar + + + + + + org.apache.maven.plugins + maven-gpg-plugin + 1.6 + + + sign-artifacts + verify + + sign + + + + + + + + + bgp-ls-speaker + + + org.apache.logging.log4j + log4j-slf4j-impl + 2.5 + + + org.apache.logging.log4j + log4j-api + 2.5 + + + org.apache.logging.log4j + log4j-core + 2.5 + + + io.netty + netty-transport-native-epoll + 4.1.77.Final + linux-x86_64 + + + + + + maven-assembly-plugin + 3.3.0 + + + jar-with-dependencies + + bgp-ls-speaker + + + eu.teraflow.tid.bgp4Peer.peer.BGPPeerMain + + + + + + + + + generate-javadoc + + + + org.apache.maven.plugins + maven-javadoc-plugin + + false + + 2.9.1 + + + attach-javadocs + + jar + + + + + + + + + integration-test + + + + org.apache.maven.plugins + maven-failsafe-plugin + 2.13 + + + integration-test + + integration-test + + + + verify + + verify + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + 2.19.1 + + true + + + + + + + + generate-full-jar + + + org.apache.logging.log4j + log4j-slf4j-impl + 2.5 + + + org.apache.logging.log4j + log4j-api + 2.5 + + + org.apache.logging.log4j + log4j-core + 2.5 + + + + + + org.apache.maven.plugins + maven-shade-plugin + 2.4.3 + + + package + + shade + + + true + + + *:* + + + + false + + + + eu.teraflow.tid.bgp.bgp4Peer.peer.BGPPeerMain + + + + + + + make-assembly + package + + single + + + + + + + + + + + 1.19.4 + 2.0.6 + 4.8.1 + 2.5 + 2.4.2 + 2.3 + 2.19.1 + 0.9.1 + 1.3.2 + 1.24.0 + 1.46.0 + 2.1.5 + + diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/BGP4PeerInitiatedSession.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/BGP4PeerInitiatedSession.java new file mode 100644 index 0000000000000000000000000000000000000000..e5a37e74344acd28c04428f02ac59d1692720aaf --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/BGP4PeerInitiatedSession.java @@ -0,0 +1,188 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.bgp4Peer.bgp4session; + +import es.tid.bgp.bgp4.messages.BGP4Message; +import es.tid.bgp.bgp4.messages.BGP4MessageTypes; +import es.tid.bgp.bgp4.messages.BGP4Update; +import eu.teraflow.tid.bgp4Peer.peer.BGP4Exception; +import eu.teraflow.tid.bgp4Peer.updateTEDB.UpdateDispatcher; + +import org.slf4j.LoggerFactory; + +import java.io.IOException; +import java.net.Inet4Address; +import java.net.InetSocketAddress; +import java.net.Socket; +import java.net.SocketException; +import java.util.Timer; + +/** + * BGP4 session server + * + * @author mcs + * + */ +public class BGP4PeerInitiatedSession extends GenericBGP4Session{ + /** + * Class to dispatch the BGP4 update messages. + * If a BGP5 update message is received, it is stored in a queue of UpdateDispatcher. + */ + private UpdateDispatcher updateDispatcher; + + + /** + * Constructor of the BGP4 Session + * @param s Socket of the BGP4Peer-BGP4Peer Communication + * @param bgp4SessionsInformation bgp4SessionsInformation + * @param updateDispatcher updateDispatcher + * @param holdTime holdTime + * @param BGPIdentifier BGPIdentifier + * @param version version + * @param myAutonomousSystem myAutonomousSystem + * @param noDelay noDelay + * @param keepAliveTimer keepAliveTimer + */ + public BGP4PeerInitiatedSession(Socket s, BGP4SessionsInformation bgp4SessionsInformation, UpdateDispatcher updateDispatcher,int holdTime,Inet4Address BGPIdentifier,int version,int myAutonomousSystem,boolean noDelay,int keepAliveTimer ){ + super(bgp4SessionsInformation, holdTime, BGPIdentifier, version, myAutonomousSystem,keepAliveTimer); + + this.setFSMstate(BGP4StateSession.BGP4_STATE_IDLE); + log=LoggerFactory.getLogger("BGP4Server"); + log.debug("New BGP4Session: "+s); + this.socket = s; + try { + s.setTcpNoDelay(noDelay); + } catch (SocketException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + this.newSessionId(); + + this.remotePeerIP =(Inet4Address) ((InetSocketAddress) socket.getRemoteSocketAddress()).getAddress(); + + + timer=new Timer(); + this.updateDispatcher = updateDispatcher; + //this.keepAliveLocal=params.getKeepAliveTimer(); + //this.deadTimerLocal=params.getDeadTimer(); + } + + + + /** + * Initiates a Session the BGP-4 Peers + */ + public void run() { + try { + initializeBGP4Session(); + } catch (BGP4Exception e2) { + // TODO Auto-generated catch block + try { + this.socket.close(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return; + } + log.info("BGP4 Session established with peer "+this.remotePeerIP); + this.deadTimerT=new DeadTimerThread(this, this.holdTime); + startDeadTimer(); + this.keepAliveT=new KeepAliveThread(out, this.keepAliveTimer); + startKeepAlive(); + + //Listen to new messages + try{ + while(this.FSMstate==BGP4StateSession.BGP4_STATE_SESSION_UP) { + try { + this.msg = readBGP4Msg(in);//Read a new message + + }catch (IOException e){ + cancelDeadTimer(); + cancelKeepAlive(); + timer.cancel(); + try { + in.close(); + out.close(); + } catch (Exception e1) { + log.warn("Exception Closing BGP4 Session with "+this.remotePeerIP); + } + log.debug("Finishing BGP4 Session with "+this.remotePeerIP); + return; + } + if (this.msg != null) {//If null, it is not a valid PCEP message + boolean bgp4Msg = true;//By now, we assume a valid PCEP message has arrived + //Depending on the type a different action is performed + switch(BGP4Message.getMessageType(this.msg)) { + + case BGP4MessageTypes.MESSAGE_OPEN: + log.debug("OPEN message received"); + //After the session has been started, ignore subsequent OPEN messages + log.warn("OPEN message ignored"); + break; + + case BGP4MessageTypes.MESSAGE_KEEPALIVE: + log.debug("KEEPALIVE message received from "+this.remotePeerIP); + //The Keepalive message allows to reset the deadtimer + break; + + case BGP4MessageTypes.MESSAGE_NOTIFICATION: + log.info("NOTIFICATION message from "+this.remotePeerIP); + break; + + case BGP4MessageTypes.MESSAGE_UPDATE: + log.debug("UPDATE message from "+this.remotePeerIP); + BGP4Update bgp4Update = new BGP4Update(msg); + log.debug(bgp4Update.toString()); + bgp4Update.setLearntFrom(this.getRemotePeerIP().toString()); + updateDispatcher.dispatchRequests(bgp4Update); + break; + + default: + log.warn("ERROR: unexpected message from "+this.remotePeerIP); + bgp4Msg = false; + } + + if (bgp4Msg) { + //Reseting Dead Timer as BGP4 Session Message has arrived + resetDeadTimer(); + } + } + } + }finally{ + log.error("BGP4 session with peer "+this.remotePeerIP+" has been closed"); + cancelDeadTimer(); + cancelKeepAlive(); + this.FSMstate=BGP4StateSession.BGP4_STATE_IDLE; + endSession(); + } + } + + @Override + public void close() { + // TODO Auto-generated method stub + + } + + + + @Override + protected void endSession() { + // TODO Auto-generated method stub + log.debug("Ending session with id "+this.getSessionId()+" from peer "+this.remotePeerIP); + BGP4SessionsInformation.deleteSession(this.getSessionId()); + } + +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/BGP4Session.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/BGP4Session.java new file mode 100644 index 0000000000000000000000000000000000000000..002a5caa56f57f53b1d37f031e815377806684b3 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/BGP4Session.java @@ -0,0 +1,44 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.bgp4Peer.bgp4session; + +import es.tid.bgp.bgp4.messages.BGP4Message; + + +/** + * BGP Session Interface + * + * @author mcs + * + */ +public interface BGP4Session { + /** + * Send close message and finish the BGP Session + */ + public void close(/*int reason*/); + /** + * Finish the BGP Session abruptly, + */ + public void killSession(); + + /** + * Encodes and sends BGP Message + * If the message is bad encoded, the session is closed + * @param message BGP4 Message + */ + public void sendBGP4Message(BGP4Message message); + + +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/BGP4SessionClient.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/BGP4SessionClient.java new file mode 100644 index 0000000000000000000000000000000000000000..61a5fc41c991947aeec8d9940605c9c934e216dd --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/BGP4SessionClient.java @@ -0,0 +1,222 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.bgp4Peer.bgp4session; + +import es.tid.bgp.bgp4.messages.BGP4Message; +import es.tid.bgp.bgp4.messages.BGP4MessageTypes; +import es.tid.bgp.bgp4.messages.BGP4Update; +import eu.teraflow.tid.bgp4Peer.peer.BGP4Exception; +import eu.teraflow.tid.bgp4Peer.updateTEDB.UpdateDispatcher; + +import org.slf4j.LoggerFactory; + +import java.io.IOException; +import java.net.Inet4Address; +import java.net.Socket; +import java.util.Timer; +/** + * Client session + * + * @author mcs + * + */ +public class BGP4SessionClient extends GenericBGP4Session{ + /** + * Peer BGP port to which the session is connected + */ + private int peerBGP_port; + /** + * Delay + */ + + + private boolean no_delay=true; + private String localBGP4Address; + private int localBGP4Port; + /** + * Class to dispatch the BGP4 update messages. + * If a BGP5 update message is received, it is stored in a queue of UpdateDispatcher. + */ + private UpdateDispatcher updateDispatcher; + + public BGP4SessionClient(BGP4SessionsInformation bgp4SessionsInformation,UpdateDispatcher updateDispatcher, Inet4Address peerBGP_IPaddress, int peerBGP_port, int holdTime,Inet4Address BGPIdentifier,int version,int myAutonomousSystem, String localBGP4Address, int localBGP4Port,int keepAliveTimer){ + super(bgp4SessionsInformation, holdTime, BGPIdentifier, version, myAutonomousSystem,keepAliveTimer); + timer=new Timer(); + log = LoggerFactory.getLogger("BGP4Client"); + this.peerBGP_port = peerBGP_port; + this.updateDispatcher=updateDispatcher; + this.localBGP4Address=localBGP4Address; + this.localBGP4Port=localBGP4Port; + this.remotePeerIP = peerBGP_IPaddress; + } + /** + * Initiates a Session between the local BGP Peer and the remote BGP Peer + */ + public void run() { + + log.info("Opening new BGP4 Session with host "+ this.remotePeerIP.getHostAddress() + " on port " + this.peerBGP_port); + log.debug("Do we want to update from peer?" + updateFrom); + log.debug("Do we want to send to peer?" + sendTo); + try { + Inet4Address addr = (Inet4Address) Inet4Address.getByName(localBGP4Address); + Inet4Address addrPeer = remotePeerIP; + socket = new Socket(addrPeer, peerBGP_port, addr, 0); + if (no_delay){ + this.socket.setTcpNoDelay(true); + log.debug("No delay activated"); + } + + } catch (IOException e) { + log.info("Connection refused trying to connect " + remotePeerIP.getHostAddress() + " on port " + peerBGP_port); + //As there is not yet a session added (it is added in the beginning of initializeBGP4Session()); + //endSession(); + return; + } + + try { + initializeBGP4Session(); + log.info("BGP4 Session established with peer "+this.remotePeerIP); + this.keepAliveT= new KeepAliveThread(this.getOut(),this.keepAliveTimer); + keepAliveT.start(); + } catch (BGP4Exception e2) { + // TODO Auto-generated catch block + e2.printStackTrace(); + log.debug("Session with "+this.remotePeerIP+" already exists: "+e2.getMessage()); + try { + socket.close(); + } catch (IOException e) { + // TODO Auto-generated catch block + log.error("Problem closing socket "+e.getMessage()); + } + return; + } + + + + + try{ + while(this.FSMstate==BGP4StateSession.BGP4_STATE_SESSION_UP) { + try { + + this.msg = readBGP4Msg(in);//Read a new message + + }catch (IOException e){ + cancelDeadTimer(); + cancelKeepAlive(); + timer.cancel(); + try { + in.close(); + out.close(); + } catch (Exception e1) { + log.warn("problem closing sockets"); + } + log.debug("Finishing BGP4 Session abruptly!"); + return; + } + if (this.msg != null) {//If null, it is not a valid PCEP message + boolean bgp4Msg = true;//By now, we assume a valid PCEP message has arrived + //Depending on the type a different action is performed + switch(BGP4Message.getMessageType(this.msg)) { + + case BGP4MessageTypes.MESSAGE_OPEN: + log.debug("BGP OPEN message received from "+this.remotePeerIP); + //After the session has been started, ignore subsequent OPEN messages + log.warn("OPEN message ignored"); + break; + + case BGP4MessageTypes.MESSAGE_KEEPALIVE: + log.debug("BGP KEEPALIVE message received from "+this.remotePeerIP); + //The Keepalive message allows to reset the deadtimer + break; + + case BGP4MessageTypes.MESSAGE_NOTIFICATION: + log.debug("BGP NOTIFICATION message received from "+this.remotePeerIP); + break; + + case BGP4MessageTypes.MESSAGE_UPDATE: + log.debug("BGP UPDATE message received from "+this.remotePeerIP); + if(this.getUpdateFrom()){ + BGP4Update bgp4Update = new BGP4Update(msg); + log.debug(bgp4Update.toString()); + bgp4Update.setLearntFrom(this.remotePeerIP.getHostAddress() ); + updateDispatcher.dispatchRequests(bgp4Update); + } + else + log.debug("Update message from " + this.remotePeerIP + " discarded"); + break; + + default: + log.warn("ERROR: unexpected message received"); + bgp4Msg = false; + } + + if (bgp4Msg) { + //Reseting Dead Timer as BGP4 Session Message has arrived + resetDeadTimer(); + } + } + } + }finally{ + //log.error("SESSION "+ internalSessionID+" IS KILLED"); + log.info("BGP4 session with peer "+this.remotePeerIP+" has been closed"); + cancelDeadTimer(); + cancelKeepAlive(); + this.FSMstate=BGP4StateSession.BGP4_STATE_IDLE; + endSession(); + } + } + + + public int getPeerBGP_port() { + return peerBGP_port; + } + public void setPeerBGP_port(int peerBGP_port) { + this.peerBGP_port = peerBGP_port; + } + public Boolean getUpdateFrom() { + return updateFrom; + } + public void setUpdateFrom(Boolean updateFrom) { + this.updateFrom = updateFrom; + } + public Boolean getSendTo() { + return sendTo; + } + public void setSendTo(Boolean sendTo) { + this.sendTo = sendTo; + } + public boolean isNo_delay() { + return no_delay; + } + public void setNo_delay(boolean no_delay) { + this.no_delay = no_delay; + } + + + @Override + public void close() { + // TODO Auto-generated method stub + + } + + + @Override + protected void endSession() { + // TODO Auto-generated method stub + log.debug("Ending session with id "+this.getSessionId()); + this.BGP4SessionsInformation.deleteSession(this.getSessionId()); + } + +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/BGP4SessionExistsException.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/BGP4SessionExistsException.java new file mode 100644 index 0000000000000000000000000000000000000000..668825ca8ef616b7867e2bc58de91df4c741a36c --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/BGP4SessionExistsException.java @@ -0,0 +1,24 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.bgp4Peer.bgp4session; + +public class BGP4SessionExistsException extends Exception { + + /** + * + */ + private static final long serialVersionUID = 1L; + +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/BGP4SessionsInformation.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/BGP4SessionsInformation.java new file mode 100644 index 0000000000000000000000000000000000000000..df5d7bc9c828ab4270f5f2bad01e6c27d674ce98 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/BGP4SessionsInformation.java @@ -0,0 +1,146 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.bgp4Peer.bgp4session; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import eu.teraflow.tid.bgp4Peer.peer.BGP4Exception; + +import java.io.DataOutputStream; +import java.net.Inet4Address; +import java.util.Enumeration; +import java.util.Hashtable; + + +/** + * Class where the oppened BGP4 sessions are stored. + * + * @author mcs + * + */ +public class BGP4SessionsInformation { + public Hashtable sessionList; + public Hashtable sessionListByPeerIP; + private boolean isTest = false; + Logger log; + //FIXME: ya lo tenemos a trav�s de la lista de sesiones + DataOutputStream out; + + public BGP4SessionsInformation(){ + sessionList=new Hashtable(); + sessionListByPeerIP=new Hashtable(); + log = LoggerFactory.getLogger("BGP4Parser"); + } + + public BGP4SessionsInformation(boolean test){ + sessionList=new Hashtable(); + sessionListByPeerIP=new Hashtable(); + log = LoggerFactory.getLogger("BGP4Parser"); + isTest= test; + } + + + public synchronized void notifySessionStart(Inet4Address addr) throws BGP4SessionExistsException{ + if (sessionListByPeerIP.containsKey(addr)){ + throw new BGP4SessionExistsException(); + } + } + + public synchronized void addSession(long sessionId, GenericBGP4Session session) throws BGP4Exception{ + Enumeration sessions = sessionList.elements(); + log.debug("Looking to add session with id "+sessionId+" --> "+session.toString()); + + //Check if there is already a session with the remote peer. + //Only one session allowed with each remote peer + GenericBGP4Session existingSession=sessionListByPeerIP.get(session.remotePeerIP); + if(isTest){ + //If there is no existing session with the peer + sessionList.put(new Long(sessionId),session); + sessionListByPeerIP.put(session.getPeerIP() , session); + log.debug("Registering new session with Peer "+session.getPeerIP() +" with ID "+sessionId); + } + else{ + if (existingSession!=null){ + log.debug("Session with id "+existingSession.getSessionId()+" against "+session.remotePeerIP.getHostAddress()+" already exists"); + throw new BGP4Exception();//si no existe throw new BGP4Exception(); + } + + //If there is no existing session with the peer + sessionList.put(new Long(sessionId),session); + sessionListByPeerIP.put(session.getPeerIP() , session); + log.debug("Registering new session with Peer "+session.getPeerIP() +" with ID "+sessionId); + + } + + } + + public synchronized void deleteSession(long sessionId){ + GenericBGP4Session ses=sessionList.get(sessionId); + if (ses!=null) { + Inet4Address ip=sessionList.get(sessionId).getPeerIP(); + sessionList.remove(new Long(sessionId)); + sessionListByPeerIP.remove(ses.getPeerIP()); + log.debug("Deleted Session with id "+sessionId +" with peer "+ses.getPeerIP().getHostAddress()); + }else { + log.info("SESSION WAS NOT REGISTERED NULL"); + } + + + } + + @Override + public String toString() { + StringBuffer sb=new StringBuffer(2000); + int counter = 1; + Enumeration sessions = sessionList.elements(); + + //Comprobar si ya existe la session con ese peer + while (sessions.hasMoreElements()){ + sb.append("Session number "+(counter++)+"\n"); + sb.append(sessions.nextElement().toString()+"\n"); + + } + return sb.toString(); + } + + public String printSession(long sessionId){ + GenericBGP4Session ses=sessionList.get(new Long(sessionId)); + if (ses!=null){ + return ses.toString(); + }else { + return "session "+sessionId+" does not exist"; + } + } + + + + public DataOutputStream getOut() { + return out; + } + + public void setOut(DataOutputStream out) { + this.out = out; + } + + public Hashtable getSessionList() { + return sessionList; + } + public void setSessionList(Hashtable sessionList) { + this.sessionList = sessionList; + } + + +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/BGP4StateSession.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/BGP4StateSession.java new file mode 100644 index 0000000000000000000000000000000000000000..6f426828b3bcb6b485a12c1966b5b760093bf9cf --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/BGP4StateSession.java @@ -0,0 +1,28 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.bgp4Peer.bgp4session; +/** + * The state session attribute indicates the current state of the BGP + FSM + * @author mcs + * + */ +public class BGP4StateSession { + public static final int BGP4_STATE_IDLE=0; + public static final int BGP4_STATE_TCP_PENDING=1; + public static final int BGP4_STATE_OPEN_WAIT=2; + public static final int BGP4_STATE_KEEP_WAIT=3; + public static final int BGP4_STATE_SESSION_UP=4; +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/ConnectRetryTimer.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/ConnectRetryTimer.java new file mode 100644 index 0000000000000000000000000000000000000000..736c56fc57eb7c8fddb3e9566f94060a9b06866a --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/ConnectRetryTimer.java @@ -0,0 +1,30 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.bgp4Peer.bgp4session; + +import java.util.TimerTask; + +public class ConnectRetryTimer extends TimerTask { + int initialValue; + ConnectRetryTimer(int initialValue){ + this.initialValue=initialValue; + } + @Override + public void run() { + // TODO Auto-generated method stub + + } + +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/DeadTimerThread.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/DeadTimerThread.java new file mode 100644 index 0000000000000000000000000000000000000000..f32f0218f751997fb15935ed457b252b9e39685e --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/DeadTimerThread.java @@ -0,0 +1,72 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.bgp4Peer.bgp4session; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + + +/** + * BGP4 DeadTimer management Thread + * + */ +public class DeadTimerThread extends Thread { + + + private BGP4Session bgp4Session = null; + private int deadTimer = 0; + private Logger log; + private boolean running; + + public DeadTimerThread(BGP4Session p, int d) { + this.deadTimer = d; + this.bgp4Session = p; + log=LoggerFactory.getLogger("BGP4Server"); + } + + public void run() { + running=true; + while (running) { + try { + sleep(deadTimer * 1000); + /* + * Time's over, close PCEP Session + */ + log.warn("DeadTimer OVER"); + this.bgp4Session.close(/*ObjectParameters.REASON_DEADTIMER*/); + return; + } catch (InterruptedException e) { + //return; + if (running==false){ + log.debug("Ending DeadTimerThread"); + return; + } + else { + log.debug("Reseting Dead Timer"); + } + } catch (Exception e) { + //FIXME: Ver que hacer aqui, por ahora, solo saco un log + log.warn("Unhandled exception: " + e.getMessage()); + } + + } + + + } + + public void stopRunning(){ + running=false; + } +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/GenericBGP4Session.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/GenericBGP4Session.java new file mode 100644 index 0000000000000000000000000000000000000000..45636a2fe4e54bc212406bf1bab2a63e2cb5ea78 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/GenericBGP4Session.java @@ -0,0 +1,908 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.bgp4Peer.bgp4session; + +import es.tid.bgp.bgp4.messages.BGP4Keepalive; +import es.tid.bgp.bgp4.messages.BGP4Message; +import es.tid.bgp.bgp4.messages.BGP4MessageTypes; +import es.tid.bgp.bgp4.messages.BGP4Open; +import es.tid.bgp.bgp4.open.BGP4CapabilitiesOptionalParameter; +import es.tid.bgp.bgp4.open.BGP4OctetsASByteCapabilityAdvertisement; +import es.tid.bgp.bgp4.open.MultiprotocolExtensionCapabilityAdvertisement; +import es.tid.bgp.bgp4.update.fields.pathAttributes.AFICodes; +import es.tid.bgp.bgp4.update.fields.pathAttributes.SAFICodes; +import eu.teraflow.tid.bgp4Peer.peer.BGP4Exception; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.IOException; +import java.net.Inet4Address; +import java.net.Socket; +import java.util.Timer; + + +/** + * Generic BGP4 Session. + * Implements the basics of a BGP4 Session + * Any particular session must inherit this one + * + * @author ogondio + * + */ +public abstract class GenericBGP4Session extends Thread implements BGP4Session { + + /** + * PCEP Session Manager + */ + protected BGP4SessionsInformation BGP4SessionsInformation; + + /** + * Thread to send periodic Keepalives + */ + protected KeepAliveThread keepAliveT = null; + + /** + * Value of the Keepalive timer set by the Local PCE. Used to send keepalives + */ + + protected int keepAliveLocal; + + /** + * Value of the Keepalive timer of the peer PCC. It is not used in the server!!! + */ + protected int keepAlivePeer; + + /** + * Thread to check if the connection is still alive. + * If in this time the PCE has not received anything, it closes the session + * It is set by the PCC (in this case, the remote peer) + */ + protected DeadTimerThread deadTimerT = null; + + /** + * Value of the deadtimer that the PCC sends. It is used in the PCC in the thread + */ + protected int deadTimerPeer; + + /** + * Socket of the communication between BGP peers + */ + protected Socket socket = null; + + /** + * Remote Peer IP Address + * Obtained from the socket for convenience + */ + protected Inet4Address remotePeerIP=null; + + /** + * DataOutputStream to send messages to the peer + */ + protected DataOutputStream out=null; + + + + /** + * DataInputStream to receive messages from PCC + */ + protected DataInputStream in=null;// + /** + * Queue to send the Computing Path Requests + */ + //protected RequestQueueSend req; + + /** + * Logger to write the Parent PCE server log + */ + protected Logger log; + + /** + * Timer to schedule KeepWait and OpenWait Timers + */ + protected Timer timer; + + /** + * Finite State Machine of the PCEP protocol + */ + protected int FSMstate; + + /** + * Remote Domain ID + * null if not sent + */ + protected Inet4Address remoteDomainId=null; + + /** + * Remote List of OF Codes + * If sent by the peer PCE + */ + //private LinkedList remoteOfCodes;//FIME: What do we do with them? + + /** + * RemoteOK: a boolean that is set to 1 if the system has received an + acceptable Open message. + */ + private boolean remoteOK=false; + + /** + * + */ + private boolean localOK=false; + + /** + * + */ + private int openRetry=0; + + /** + * Byte array to store the last PCEP message read. + */ + protected byte[] msg = null; + + /** + * Initial number of the session ID (internal use only) + */ + public static long sessionIdCounter=0; + + /** + * + */ + protected Boolean updateFrom; + protected boolean sendTo; + + /** + * Session ID (internal use only) + */ + private long sessionId; + /**************** PARAMETROS DE LA SESION ********************/ + private int ConnectRetryCounter=0; + private ConnectRetryTimer connectRetryTimer = null; + private int connectRetryTime; //FIXME: esto aun no se que es. + + /**************PARAMETROS OPEN MESSAGE************************/ + protected int holdTime; + /** + * Time between sending keepalives + */ + protected int keepAliveTimer; + /** + * IP address that is assigned to that BGP speaker + */ + protected Inet4Address BGPIdentifier; + /** + * Autonomous System number of the sender + */ + protected int myAutonomousSystem; + /** + * version indicates the protocol version number of the message + * it must be 4 + */ + protected int version; + + + public GenericBGP4Session(BGP4SessionsInformation bgp4SessionsInformation,int holdTime,Inet4Address BGPIdentifier,int version,int myAutonomousSystem,int mykeepAliveTimer) { + log=LoggerFactory.getLogger("BGP4Parser"); + this.BGP4SessionsInformation=bgp4SessionsInformation; + this.holdTime=holdTime; + this.BGPIdentifier=BGPIdentifier; + this.version = version; + this.myAutonomousSystem=myAutonomousSystem; + this.keepAliveTimer = mykeepAliveTimer; + this.newSessionId(); + + } + + /** + * Read PCE message from TCP stream + * @param in InputStream + * @return byte array with a BGP4 Message + * @throws IOException Execption thrown trying to read message + */ + protected byte[] readBGP4Msg(DataInputStream in) throws IOException{ + byte[] ret = null; + + byte[] hdr = new byte[BGP4Message.getBGPHeaderLength()]; + byte[] temp = null; + boolean endHdr = false; + int r = 0; + int length = 0; + boolean endMsg = false; + int offset = 0; + + while (!endMsg) { + try { + if (endHdr) { + r = in.read(temp, offset, 1); + } + else { + r = in.read(hdr, offset, 1); + } + } catch (IOException e){ + log.warn("Error reading data: "+ e.getMessage()); + throw e; + }catch (Exception e) { + log.warn("readMsg Oops: " + e.getMessage()); + throw new IOException(); + } + + if (r > 0) { + if (offset == BGP4Message.getBGPMarkerLength()) { + length = ((int)hdr[offset]&0xFF) << 8; + } + if (offset == BGP4Message.getBGPMarkerLength() + 1) { + length = length | (((int)hdr[offset]&0xFF)); + temp = new byte[length]; + endHdr = true; + System.arraycopy(hdr, 0, temp, 0, BGP4Message.getBGPHeaderLength()); + } + if ((length > 0) && (offset == length - 1)) { + endMsg = true; + } + offset++; + } + else if (r==-1){ + log.debug("End of stream has been reached"); + throw new IOException(); + } + } + if (length > 0) { + ret = new byte[length]; + System.arraycopy(temp, 0, ret, 0, length); + } + return ret; + } + + /** + * Read PCE message from TCP stream + * @param in InputStream + * @return byte array with a BGP4 Message + * @throws IOException Execption thrown trying to read message + */ + protected byte[] readMsgOptimized(DataInputStream in) throws IOException{ + byte[] ret = null; + + byte[] hdr = new byte[4]; + byte[] temp = null; + boolean endHdr = false; + int r = 0; + int length = 0; + boolean endMsg = false; + int offset = 0; + + + while (!endMsg) { + try { + if (endHdr) { + //log.info("Vamos a leer datos "); + r = in.read(temp, offset, length-offset); + if (r>0){ + if ((offset+r)>=length){ + //log.info("Bien "); + endMsg=true; + }else { + offset=offset+r; + } + + } + else if (r<0){ + log.error("End of stream has been reached reading data"); + throw new IOException(); + } + } + else { + //log.info("Vamos a leer la cabecera "); + r = in.read(hdr, offset, 4-offset); + if (r < 0) { + log.error("End of stream has been reached reading header"); + throw new IOException(); + }else if (r >0){ + if ((offset+r)>=4){ + length = ( (hdr[offset+2]&0xFF) << 8) | ((hdr[offset+3]&0xFF)); + offset=4; + temp = new byte[length]; + endHdr = true; + System.arraycopy(hdr, 0, temp, 0, 4); + if (length==4){ + endMsg=true; + } + }else { + offset=offset+r; + } + + } + + } + } catch (IOException e){ + log.error("Error reading data: "+ e.getMessage()); + throw e; + }catch (Exception e) { + log.error("readMsg Oops: " + e.getMessage()); + log.error("Failure reason : "+e.getStackTrace()); + throw new IOException(); + } + + } + if (length > 0) { + ret = new byte[length]; + System.arraycopy(temp, 0, ret, 0, length); + } + return ret; + } + + + // /** + // *

Close the PCE session

+ // *

List of reasons (RFC 5440):

+ // * Value Meaning + // 1 No explanation provided + // 2 DeadTimer expired + // 3 Reception of a malformed PCEP message + // 4 Reception of an unacceptable number of unknown + // requests/replies + // 5 Reception of an unacceptable number of unrecognized + // PCEP messages + // * @param reason Reason for closing the PCEP Session + // * @return PCEP Session closed OK + // */ + // public void close(int reason){ + // log.info("Closing PCEP Session"); + // BGP4Close p_close=new BGP4Close(); + // p_close.setReason(reason); + // sendPCEPMessage(p_close); + // killSession(); + // } + public DataOutputStream getOut() { + return out; + } + + public void setOut(DataOutputStream out) { + this.out = out; + } + + /** + * Starts the deadTimerThread + */ + protected void startDeadTimer() { + this.deadTimerT.start(); + } + /** + * Resets the DeadTimerThread + * To be called every time a message in the session is received + */ + protected void resetDeadTimer() { + if (this.deadTimerT != null) { + this.deadTimerT.interrupt(); + } + } + + public Socket getSocket() { + return socket; + } + + /** + * Ends the DeadTimer Thread + */ + protected void cancelDeadTimer() { + log.debug("Cancelling DeadTimer"); + if (this.deadTimerT != null) { + this.deadTimerT.stopRunning(); + this.deadTimerT.interrupt(); + this.deadTimerT=null; + } + } + + /** + * Starts the Keep Alive Thread + */ + public void startKeepAlive() { + this.keepAliveT.start(); + } + + /** + * Ends the KeepAlive Thread + */ + public void cancelKeepAlive() { + log.debug("Cancelling KeepAliveTimer"); + if (this.keepAliveT != null) { + this.keepAliveT.stopRunning(); + this.keepAliveT.interrupt(); + this.keepAliveT=null; + } + } + + /** + * Ends current connections + */ + protected void endConnections(){ + try { + if (in != null) { + in.close(); + } + if (out != null) { + out.close(); + } + if (this.socket != null) { + log.warn("Closing socket"); + this.socket.close(); + } + + } catch (Exception e) { + log.warn("Error closing connections: " + e.getMessage()); + } + } + + public int getFSMstate() { + return FSMstate; + } + + protected void setFSMstate(int fSMstate) { + FSMstate = fSMstate; + } + + public void killSession(){ + log.warn("Killing Session"); + timer.cancel(); + this.endConnections(); + this.cancelDeadTimer(); + this.cancelKeepAlive(); + this.endSession(); + this.BGP4SessionsInformation.deleteSession(this.sessionId); + log.warn("Interrupting thread!!!!"); + this.interrupt(); + } + + /** + * DO HERE ANYTHING NEEDED AT CLOSING?? + * STATISTICS, ETC + */ + protected abstract void endSession(); + + protected void initializeBGP4Session() throws BGP4Exception { + this.BGP4SessionsInformation.addSession(this.getSessionId(), this); + + /** + * Byte array to store the last PCEP message read. + */ + byte[] msg = null; + //First get the input and output stream + try { + out = new DataOutputStream(socket.getOutputStream()); + in = new DataInputStream(socket.getInputStream()); + } catch (IOException e) { + log.warn("Problem in the sockets, ending BGP4Session"); + killSession(); + return; + } + //- Starts the ConnectRetryTimer with initial value + int initialValue=1000;//FIXME: no tengo ni idea de este parametro aun + connectRetryTimer= new ConnectRetryTimer(initialValue) ; + + //STARTING PCEP SESSION ESTABLISHMENT PHASE + //It begins in Open Wait State + this.setFSMstate(BGP4StateSession.BGP4_STATE_OPEN_WAIT); + log.debug("Entering BGP4_STATE_OPEN_WAIT, Scheduling Open Wait Timer"); + + //Create the 60 seconds Open Wait Timer to wait for an OPEN message + OpenWaitTimerTask owtt= new OpenWaitTimerTask(this); + this.timer.schedule(owtt, 60000); + //Define (Not use yet), the keepwait timer + KeepWaitTimerTask kwtt=new KeepWaitTimerTask(this); + BGP4Open open_msg=new BGP4Open(); + //Rellenar: + // - My autonomous system + // - holdTime + // - BGPIdentifier + open_msg.setMyAutonomousSystem(myAutonomousSystem); + open_msg.setBGPIdentifier(BGPIdentifier); + open_msg.setHoldTime(holdTime); + //Chek optional parameters + BGP4CapabilitiesOptionalParameter cop = new BGP4CapabilitiesOptionalParameter(); + open_msg.getParametersList().add(cop); + MultiprotocolExtensionCapabilityAdvertisement multProtExtCapAdv = new MultiprotocolExtensionCapabilityAdvertisement(); + multProtExtCapAdv.setAFI(AFICodes.AFI_BGP_LS); + multProtExtCapAdv.setSAFI(SAFICodes.SAFI_BGP_LS); + cop.getCapabilityList().add(multProtExtCapAdv); + BGP4OctetsASByteCapabilityAdvertisement fouroctects = new BGP4OctetsASByteCapabilityAdvertisement(); + fouroctects.setAS(myAutonomousSystem); + cop.getCapabilityList().add(fouroctects); + + //Send the OPEN message + this.sendBGP4Message(open_msg); + //Now, read messages until we are in SESSION UP + while (this.FSMstate!=BGP4StateSession.BGP4_STATE_SESSION_UP){ + //log.info("State session "+this.FSMstate); + try { + //Read a new message + msg = readBGP4Msg(in); + + }catch (IOException e){ + log.warn("Error reading message, ending session"+e.getMessage()); + killSession(); + return; + } + if (msg != null) {//If null, it is not a valid PCEP message + //log.info("Read a message"); + switch(BGP4Message.getMessageType(msg)) { + case BGP4MessageTypes.MESSAGE_OPEN: + //log.info("OPEN Message Received"); + if (this.FSMstate==BGP4StateSession.BGP4_STATE_OPEN_WAIT){ + log.debug("FSMstate = BGP4_STATE_OPEN_WAIT"); + BGP4Open open_received; + // try { + open_received=new BGP4Open(msg); + log.debug("**** Open received ****\n"+ open_received.toString());//FIXME!!! Cambiar a finest + owtt.cancel(); + //Check parameters + if (openRetry==1){ + boolean checkOK=true; + this.version = open_received.getVersion(); + if (this.version != 4){ + checkOK=false; + } + // this.deadTimerPeer=open_received.getDeadTimer(); + // this.keepAlivePeer=open_received.getKeepalive(); + // + // if (this.deadTimerPeer>maxDeadTimerAccepted){ + // checkOK=false; + // } + // if (this.deadTimerPeer==0){ + // if(zeroDeadTimerAccepted==false){ + // checkOK=false; + // } + // } + // if (this.keepAlivePeer perrobjlist=new LinkedList(); + // perrobjlist.add(perrorObject); + // perror.setErrorObjList(perrobjlist); + // perror.setOpen(open_received.getOpen()); + // log.info("Sending Error with new proposal"); + // this.sendPCEPMessage(perror); + // this.openRetry=this.openRetry+1; + /** + * o If LocalOK=1, the system restarts the OpenWait timer and stays in + the OpenWait state. + o If LocalOK=0, the system clears the OpenWait timer, starts the + KeepWait timer, and moves to the KeepWait state. + */ + if (localOK==true){ + //log.info("Local ok esta a true, vamos a open wait"); + owtt.cancel(); + owtt= new OpenWaitTimerTask(this); + this.timer.schedule(owtt, 60000); + this.setFSMstate(BGP4StateSession.BGP4_STATE_OPEN_WAIT); + } + else { + //log.info("Local ok esta a false, vamos a keep wait"); + owtt.cancel(); + this.setFSMstate(BGP4StateSession.BGP4_STATE_KEEP_WAIT); + this.timer.schedule(kwtt, 60000); + } + } + else { + /* + * If no errors are detected, and the session characteristics are + acceptable to the local system, the system: + o Sends a Keepalive message to the PCEP peer, + o Starts the Keepalive timer, + o Sets the RemoteOK variable to 1. + If LocalOK=1, the system clears the OpenWait timer and moves to the + UP state. + If LocalOK=0, the system clears the OpenWait timer, starts the + KeepWait timer, and moves to the KeepWait state. + */ + this.BGPIdentifier=open_received.getBGPIdentifier(); + this.myAutonomousSystem=open_received.getMyAutonomousSystem(); + this.holdTime=open_received.getHoldTime(); +// if (open_received.getOptionalParameterLength() != 0){ +// log.info("Tiene parametros opcionales"); +// } + //this.BGP4SessionsInformation.addSession(this.getSessionId(), this); + BGP4Keepalive p_ka= new BGP4Keepalive(); + //log.info("Sending Keepalive message"); + sendBGP4Message(p_ka); //Creates the Keep Wait Timer to wait for a KA to acknowledge the OPEN sent + //FIXME: START KA TIMER! + this.remoteOK=true; + if(this.localOK==true){ + //log.info("Entering STATE_SESSION_UP"); + //He conseguido establecer sesion. Hay que matar el otro hilo + + this.setFSMstate(BGP4StateSession.BGP4_STATE_SESSION_UP); + //La sesion se ha establecido + + } + else { + //log.info("Entering STATE_KEEP_WAIT"); + //log.fine("Scheduling KeepwaitTimer"); + timer.schedule(kwtt, 60000); + this.setFSMstate(BGP4StateSession.BGP4_STATE_KEEP_WAIT); + } + } + } + } + else{ + log.debug("Ignore OPEN message, already one received!!"); + } + + break; + case BGP4MessageTypes.MESSAGE_KEEPALIVE: + //log.info("KeepAlive Message Received"); + this.localOK=true; + if(this.FSMstate==BGP4StateSession.BGP4_STATE_KEEP_WAIT){ + // If RemoteOK=1, the system clears the KeepWait timer and moves to + // the UP state. + // If RemoteOK=0, the system clears the KeepWait timer, starts the + // OpenWait timer, and moves to the OpenWait State. + + if (remoteOK==true){ + kwtt.cancel(); + //log.info("Entering STATE_SESSION_UP"); + this.setFSMstate(BGP4StateSession.BGP4_STATE_SESSION_UP); + } + else{ + kwtt.cancel(); + //log.info("Entering OPEN WAIT STATE"); + owtt=new OpenWaitTimerTask(this); + this.timer.schedule(owtt, 60000); + this.setFSMstate(BGP4StateSession.BGP4_STATE_OPEN_WAIT); + } + + } + //If not... seguimos igual que estabamos + //Mas KA no hacen mal... + break; + + default: + log.error("UNEXPECTED Message Received"); + if (this.FSMstate!=BGP4StateSession.BGP4_STATE_OPEN_WAIT){ + log.debug("Ignore OPEN message, already one received!!"); + } + else { + log.error("Unexpected message RECEIVED, closing"); + + } + break; + } + } + else { + if (this.FSMstate!=BGP4StateSession.BGP4_STATE_OPEN_WAIT){ + log.info("Ignore message, already one received!!"); + } + else { + log.error("Unexpected message RECEIVED, closing"); + + } + }//Fin del else + }//Fin del WHILE + } + + + @Override + public void sendBGP4Message(BGP4Message message) { + message.encode(); + try { + out.write(message.getBytes()); + out.flush(); + } catch (Exception e) { + log.error("Problem writing message, finishing session "+e.getMessage()); + killSession(); + } + + } + + + public Inet4Address getRemotePeerIP() { + return remotePeerIP; + } + + + public Inet4Address getBGPIdentifier() { + return BGPIdentifier; + } + + public void setBGPIdentifier(Inet4Address bGPIdentifier) { + BGPIdentifier = bGPIdentifier; + } + + public Boolean getUpdateFrom() { + return updateFrom; + } + + public void setUpdateFrom(Boolean updateFrom) { + this.updateFrom = updateFrom; + } + + public Boolean getSendTo(){ + return sendTo; + } + + public void setSendTo(boolean sendTo) { + this.sendTo = sendTo; + } + + public int getMyAutonomousSystem() { + return myAutonomousSystem; + } + + public void setMyAutonomousSystem(int myAutonomousSystem) { + this.myAutonomousSystem = myAutonomousSystem; + } + + + + public String shortInfo(){ + StringBuffer sb=new StringBuffer(1000); + if (this.socket!=null){ + sb.append("remAddr: "); + sb.append(this.socket.getRemoteSocketAddress()); + sb.append(" state: "); + if (this.FSMstate==BGP4StateSession.BGP4_STATE_OPEN_WAIT){ + sb.append("OPEN_WAIT"); + }else if (this.FSMstate==BGP4StateSession.BGP4_STATE_IDLE){ + sb.append("IDLE"); + }else if (this.FSMstate==BGP4StateSession.BGP4_STATE_KEEP_WAIT){ + sb.append("KEEP_WAIT"); + }else if (this.FSMstate==BGP4StateSession.BGP4_STATE_SESSION_UP){ + sb.append("SESSION_UP"); + }else if (this.FSMstate==BGP4StateSession.BGP4_STATE_SESSION_UP){ + sb.append("TCP_PENDING"); + }else { + sb.append("UNKNOWN"); + } + + } + + return sb.toString(); + } + + public String toString(){ + StringBuffer sb=new StringBuffer(1000); + sb.append("\t> Session ID: "+this.sessionId+"\n"); + sb.append("\t> BGP Remote Peer: "+this.remotePeerIP+"\n"); + sb.append("\t> BGPIdentifier: "+this.BGPIdentifier+"\n"); + if (this.socket!=null){ + sb.append("\t> remAddr: "); + sb.append(this.socket.getRemoteSocketAddress()+"\n"); + sb.append("\t> state: "); + if (this.FSMstate==BGP4StateSession.BGP4_STATE_OPEN_WAIT){ + sb.append("OPEN_WAIT\n"); + }else if (this.FSMstate==BGP4StateSession.BGP4_STATE_IDLE){ + sb.append("IDLE\n"); + }else if (this.FSMstate==BGP4StateSession.BGP4_STATE_KEEP_WAIT){ + sb.append("KEEP_WAIT\n"); + }else if (this.FSMstate==BGP4StateSession.BGP4_STATE_SESSION_UP){ + sb.append("SESSION_UP\n"); + }else if (this.FSMstate==BGP4StateSession.BGP4_STATE_SESSION_UP){ + sb.append("TCP_PENDING\n"); + }else { + sb.append("UNKNOWN"); + } + } + + return sb.toString(); + } + + public synchronized void newSessionId(){ + this.sessionId=GenericBGP4Session.sessionIdCounter+1; + sessionIdCounter=sessionIdCounter+1; + } + + public long getSessionId() { + return sessionId; + } + + + @Override + public void close() { + // TODO Auto-generated method stub + + } + + @Override + public boolean equals(Object obj) { + if (remotePeerIP != null){ + if (this.remotePeerIP.equals(((GenericBGP4Session)obj).getBGPIdentifier())){ + return true; + } + } + else { + log.info("TODO NUL!! en el equals!"); + } + return false; + } + + + public Inet4Address getPeerIP(){ + return (Inet4Address)this.socket.getInetAddress(); + } +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/KeepAliveThread.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/KeepAliveThread.java new file mode 100644 index 0000000000000000000000000000000000000000..70ebe101f4674582e62ed1c7607947e9ae2e3c33 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/KeepAliveThread.java @@ -0,0 +1,98 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.bgp4Peer.bgp4session; +import es.tid.bgp.bgp4.messages.BGP4Keepalive; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.DataOutputStream; +import java.io.IOException; + + +public class KeepAliveThread extends Thread { + + private int keepAlive = 0; + private boolean running; + private Logger log; + private DataOutputStream out=null; //Use this to send messages to peer + + /* + * @param p + * @param k + */ + public KeepAliveThread(DataOutputStream out, int k) { + this.keepAlive = k; + this.out = out; + log=LoggerFactory.getLogger("BGP4Server"); + } + + /** + * Starts the Keepalive process + */ + public void run() { + running=true; + while (running) { + try { + if (keepAlive > 0) { + sleep(keepAlive * 1000); + sendKeepAlive(); + } + else { + log.debug("Ending KEEPALIVE mechanism"); + return; + } + } catch (InterruptedException e) { + if (running==false){ + log.debug("Ending KeepAliveThread"); + return; + } + else { + //Keepalive Timer is reseted + log.debug("Reseting Keepalive timer"); + } + } + } + } + + /** + * Sets the running variable to false. After this, an interrupt will cause + * the KeepaliveThread to end. + */ + public void stopRunning(){ + running=false; + } + /** + * Sends KeepAlive Message. It does not wait for any response. + */ + private void sendKeepAlive() { + BGP4Keepalive p_ka= new BGP4Keepalive(); + //try { + p_ka.encode(); +// } catch (PCEPProtocolViolationException e1) { +// // TODO Auto-generated catch block +// e1.printStackTrace(); +// } + try { + log.debug("Sending Keepalive message"); + out.write(p_ka.getBytes()); + out.flush(); + } catch (IOException e) { + log.warn("Error sending KEEPALIVE: " + e.getMessage()); + } + } + + } + + diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/KeepWaitTimerTask.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/KeepWaitTimerTask.java new file mode 100644 index 0000000000000000000000000000000000000000..3bc72c84d608db79cc28185b63e6ade8d4e1305e --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/KeepWaitTimerTask.java @@ -0,0 +1,58 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.bgp4Peer.bgp4session; + + +import java.util.TimerTask; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + + +/** + * If no Open message is received before the expiration of the OpenWait + timer, the PCEP peer sends a PCErr message with Error-Type=1 and + Error-value=2, the system releases the PCEP resources for the PCEP + peer, closes the TCP connection, and moves to the Idle state. + + * @author Oscar Gonzalez de Dios + * + */ +public class KeepWaitTimerTask extends TimerTask { + +// private DataOutputStream out=null; //Use this to send messages to peer + private BGP4Session bgp4Session; + private Logger log; + + public KeepWaitTimerTask(BGP4Session bgp4Session){ + this.bgp4Session=bgp4Session; + log=LoggerFactory.getLogger("PCEServer"); + } + + + public void run() { + log.warn("KEEP WAIT Timer OVER"); +// PCEPError perror=new PCEPError(); +// PCEPErrorObject perrorObject=new PCEPErrorObject(); +// perrorObject.setErrorType(ObjectParameters.ERROR_ESTABLISHMENT); +// perrorObject.setErrorValue(ObjectParameters.ERROR_ESTABLISHMENT_NO_KA_OR_ERROR_KEEPWAIT_TIMER); +// ErrorConstruct error_c=new ErrorConstruct(); +// error_c.getErrorObjList().add(perrorObject); +// perror.setError(error_c); +// bgp4Session.sendBGP4Message(perror); + this.bgp4Session.killSession(); + return; + } + +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/OpenWaitTimerTask.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/OpenWaitTimerTask.java new file mode 100644 index 0000000000000000000000000000000000000000..20b77ce4ee14821073bab2bf7b95aabef5fb8cea --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/OpenWaitTimerTask.java @@ -0,0 +1,59 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.bgp4Peer.bgp4session; + +import java.util.TimerTask; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + + + +/** + * If no Open message is received before the expiration of the OpenWait + timer, the PCEP peer sends a PCErr message with Error-Type=1 and + Error-value=2, the system releases the PCEP resources for the PCEP + peer, closes the TCP connection, and moves to the Idle state. + + * @author Oscar Gonzalez de Dios + * + */ +public class OpenWaitTimerTask extends TimerTask { + +// private DataOutputStream out=null; //Use this to send messages to peer + private BGP4Session bgp4Session; + private Logger log; + + public OpenWaitTimerTask(BGP4Session bgp4Session){ + this.bgp4Session=bgp4Session; + log=LoggerFactory.getLogger("PCEServer"); + } + + + public void run() { + log.warn("OPEN WAIT Timer OVER"); +// PCEPError perror=new PCEPError(); +// PCEPErrorObject perrorObject=new PCEPErrorObject(); +// perrorObject.setErrorType(ObjectParameters.ERROR_ESTABLISHMENT); +// perrorObject.setErrorValue(ObjectParameters.ERROR_ESTABLISHMENT_NO_OPEN_MESSAGE); +// ErrorConstruct error_c=new ErrorConstruct(); +// error_c.getErrorObjList().add(perrorObject); +// perror.setError(error_c); +// log.info("Sending Error"); +// bgp4Session.sendPCEPMessage(perror); + this.bgp4Session.killSession(); + return; + } + +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/grpc/grpcApp.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/grpc/grpcApp.java new file mode 100644 index 0000000000000000000000000000000000000000..329404668263441348fa3583adb2b5b107ff71f3 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/grpc/grpcApp.java @@ -0,0 +1,38 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.bgp4Peer.grpc; + +import io.grpc.Server; +import io.grpc.ServerBuilder; + +public class grpcApp { + + public static void main( String[] args ) throws Exception + { + // Create a new server to listen on port 8080 + Server server = ServerBuilder.forPort(2021) + .addService(new updateServiceImpl()) + .build(); + + // Start the server + server.start(); + + // Server threads are running in the background. + System.out.println("Server started"); + // Don't exit the main thread. Wait until server is terminated. + server.awaitTermination(); + } + +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/grpc/grpcClient.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/grpc/grpcClient.java new file mode 100644 index 0000000000000000000000000000000000000000..6e74dff00a565edd4197734483f3ca036f939c27 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/grpc/grpcClient.java @@ -0,0 +1,368 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.bgp4Peer.grpc; + +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.TimeUnit; + +import com.google.common.net.InetAddresses; + +import eu.teraflow.tid.bgp4Peer.models.LinkNLRIMsg; +import eu.teraflow.tid.bgp4Peer.models.NodeNLRIMsg; +import eu.teraflow.tid.bgp4Peer.models.UpdateMsg; +import eu.teraflow.tid.bgp4Peer.models.UpdateMsgList; +import io.grpc.ManagedChannel; +import io.grpc.ManagedChannelBuilder; +import io.grpc.stub.StreamObserver; +import jdk.javadoc.internal.doclets.toolkit.util.links.LinkInfo; +import src.main.proto.GrpcService.linkInfo; +import src.main.proto.GrpcService.nodeInfo; +import src.main.proto.GrpcService.NodeDescriptors; +import src.main.proto.GrpcService.updateRequest; +import src.main.proto.GrpcService.updateResponse; +import src.main.proto.updateServiceGrpc; +import src.main.proto.updateServiceGrpc.updateServiceBlockingStub; +import src.main.proto.updateServiceGrpc.updateServiceStub; + +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.TimeUnit; +import java.util.logging.Logger; + +public class grpcClient { + + private static final Logger logger = Logger.getLogger(grpcClient.class.getName()); + + public static void sendGrpcUpdateMsg(UpdateMsg update) throws Exception{ + + updateRequest request=null; + nodeInfo n=null; + linkInfo unic=null; + List l = new ArrayList<>(); + List nodes = new ArrayList<>(); + if(update.nodeCheck()==false && update.linkCheck()==false){ + return; + } +// Build node for grpc message + if(update.nodeCheck()!=false) { + for(NodeNLRIMsg node : update.getNodeList()){ + n = nodeInfo.newBuilder().setNodeName(node.getNodeName()). + setIgpID(node.getRouterID()). + setBgplsID(node.getLocalBgplsID()). + setAsID(InetAddresses.coerceToInteger(node.getAs_number())). + setLearntFrom(node.getLearntFrom()). + buildPartial(); + nodes.add(n); + } + } + for(LinkNLRIMsg link : update.getLinkList()) { + +// String strIPlocal; +// String strIPremote; + String strIgpR; + String strIgpL; + // LinkNLRIMsg link=update.getLink(); + +// if(link.getiPv4RouterIDLocalNodeLATLV()==null) +// strIPlocal="-"; +// else { +// strIPlocal=link.getiPv4RouterIDLocalNodeLATLV(); +// } +// if(link.getiPv4RouterIDNeighborNodeLATLV()==null) +// strIPremote="-"; +// else { +// strIPremote=link.getiPv4RouterIDNeighborNodeLATLV(); +// } + + if(link.getRemoteNodeIGPId()==null) + strIgpR="-"; + else { + strIgpR=link.getRemoteNodeIGPId().toString(); + } + if(link.getLocalNodeIGPId()==null) + strIgpL="-"; + else { + strIgpL=link.getLocalNodeIGPId().toString(); + } + String ipv4R; + if(link.getiPv4RouterIDLocalNodeLATLV()==null) + ipv4R="-"; + else { + ipv4R=link.getiPv4RouterIDLocalNodeLATLV(); + } + String ipv4L; + if(link.getiPv4RouterIDNeighborNodeLATLV()==null) + ipv4L="-"; + else { + ipv4L=link.getiPv4RouterIDNeighborNodeLATLV(); + } + +// Build link for grpc message. need non null values in some cases + + unic = linkInfo.newBuilder().setLocalID(strIgpR). + setLocalIPv4ID(ipv4L). + setRemoteID(strIgpL). + setRemoteIPv4ID(ipv4R). + setLocal(NodeDescriptors.newBuilder(). + setAsNumber(link.getLocalDomainID().toString()). + setBgplsID(link.getLocalBgplsID())). + setRemote(NodeDescriptors.newBuilder(). + setAsNumber(link.getRemoteDomainID().toString()). + setBgplsID(link.getRemoteBgplsID())). + setAvailableBw(link.getAvailableBw()). + setResidualBw(link.getResidualBw()).setUtilized(link.getUtilizedBw()). + setMinLinkDelay(link.getMinDelay()).setMaxLinkDelay(link.getMaxDelay()). + setDelayVariation(link.getLinkDelayVar()).setDelay(link.getLinkDelay()). + setTEDefaultMetric(1).setAdjacencySid("0").setLearntFrom(link.getLearntFrom()).buildPartial(); + + l.add(unic); + } + + if(nodes.size()==0 && l.size()>0) { + request=updateRequest.newBuilder(). + setNextHop(update.getNextHop().toString()). + setAddressFamilyID(Integer.toString(update.getAFI())). + setAsPathSegment(Integer.toString(update.getAsPathSegment())). + addAllLink(l).build(); + }else if(nodes.size()>0&& l.size()==0) { + // logger.debug("ADDING NODE"); + request=updateRequest.newBuilder(). + setNextHop(update.getNextHop().toString()). + setAddressFamilyID(Integer.toString(update.getAFI())). + setAsPathSegment(Integer.toString(update.getAsPathSegment())). + addAllNode(nodes).build(); + }else { + //Error if node name is null + // TODO: handle seng grpc error? + // logger.debug("ADDING NODE AND LINK"); + request=updateRequest.newBuilder(). + setNextHop("-"+update.getNextHop().toString()). + setAddressFamilyID(Integer.toString(update.getAFI())). + setAsPathSegment(Integer.toString(update.getAsPathSegment())). + addAllNode(nodes).addAllLink(l).build(); + + } + final ManagedChannel channel = ManagedChannelBuilder.forAddress("localhost",2021).usePlaintext().build(); + updateServiceBlockingStub stub = updateServiceGrpc.newBlockingStub(channel); + + //TODO: this to a function + System.out.println("grpcClient request: "+request.toString()); + + // channel.awaitTermination(20, TimeUnit.SECONDS); + // updateResponse response = stub.update(request); + // Espera hasta que el canal esté inactivo + updateResponse response = stub.update(request); + + System.out.println("\nRESPUESTA RECIBIDA"); + System.out.println(response); + } + // private void shutdownManagedChannel(ManagedChannel managedChannel) { + // managedChannel.shutdown(); + // try { + // managedChannel.awaitTermination(mChannelShutdownTimeoutMs, TimeUnit.MILLISECONDS); + // } catch (InterruptedException e) { + // Thread.currentThread().interrupt(); + // // Allow thread to exit. + // } finally { + // managedChannel.shutdownNow(); + // } + // Verify.verify(managedChannel.isShutdown()); + // } + // stub.update(request, new StreamObserver () { + + // public void onNext(updateResponse response) { + // System.out.println("respuesta del server: "+response); + // } + // public void onError(Throwable t) { + // System.out.println("error: "+t.getMessage()); + // latch.countDown(); + // } + // public void onCompleted() { + // // Typically you'll shutdown the channel somewhere else. + // // But for the purpose of the lab, we are only making a single + // // request. We'll shutdown as soon as this request is done. + // latch.countDown(); + // logger.info("gRPC call completed"); + // System.out.println("OnCompleted"); + // // channel.shutdownNow(); + // // try{ + // // channel.shutdown().awaitTermination(5, TimeUnit.SECONDS); + // // }catch (InterruptedException e){ + // // System.out.println("channel error"+e.toString()); + // // } + + // } + // }); + // latch.await(5, TimeUnit.SECONDS); + // channel.shutdown().awaitTermination(5, TimeUnit.SECONDS); + + public static void sendGrpc(UpdateMsgList update) { + //construir mensaje + //update get node,lin,path + //getname,ids,as + final ManagedChannel channel = ManagedChannelBuilder.forTarget("localhost:2021").usePlaintext().build(); + updateServiceStub stub = updateServiceGrpc.newStub(channel); + + + if(update.getNodeList().isEmpty()&&update.getLinkList().isEmpty()) { + return; + } + updateRequest request=null; + nodeInfo n=null; + linkInfo l=null; + if(!update.getNodeList().isEmpty()) { + + for(NodeNLRIMsg node: update.getNodeList()) { + + n = nodeInfo.newBuilder().setNodeName(node.getNodeName()).setIgpID(node.getLocalBgplsID()). + setBgplsID(node.getBgplsID().toString()).setAsID(InetAddresses.coerceToInteger(node.getAs_number())). + buildPartial(); + } + + + } + if(!update.getLinkList().isEmpty()) { + + String strIPlocal; + String strIPremote; + String strIgpR; + String strIgpL; + + for(LinkNLRIMsg link: update.getLinkList()) { + + if(link.getiPv4RouterIDLocalNodeLATLV()==null) + strIPlocal="-"; + else { + strIPlocal=link.getiPv4RouterIDLocalNodeLATLV(); + } + if(link.getiPv4RouterIDNeighborNodeLATLV()==null) + strIPremote="-"; + else { + strIPremote=link.getiPv4RouterIDNeighborNodeLATLV(); + } + + if(link.getRemoteNodeIGPId()==null) + strIgpR="-"; + else { + strIgpR=link.getRemoteNodeIGPId().toString(); + } + if(link.getLocalNodeIGPId()==null) + strIgpL="-"; + else { + strIgpL=link.getLocalNodeIGPId().toString(); + } + String ipv4R; + if(link.getiPv4RouterIDNeighborNodeLATLV()==null) + ipv4R="-"; + else { + ipv4R=link.getiPv4RouterIDNeighborNodeLATLV(); + } + String ipv4L; + if(link.getiPv4RouterIDLocalNodeLATLV()==null) + ipv4L="-"; + else { + ipv4L=link.getiPv4RouterIDLocalNodeLATLV(); + } + +// NodeDescriptors local= NodeDescriptors.newBuilder(). +// setAsNumber(link.getLocalDomainID().toString()). +// setBgplsID(link.getLocalBgplsID()).buildPartial(); + + + l = linkInfo.newBuilder().setLocalID(strIgpR). + setLocalIPv4ID(ipv4L). + setRemoteID(strIgpL). + setRemoteIPv4ID(ipv4R). + setLocal(NodeDescriptors.newBuilder(). + setAsNumber(link.getLocalDomainID().toString()). + setBgplsID(link.getLocalBgplsID())). + setRemote(NodeDescriptors.newBuilder(). + setAsNumber(link.getRemoteDomainID().toString()). + setBgplsID(link.getRemoteBgplsID())). + setAvailableBw(link.getAvailableBw()). + setResidualBw(link.getResidualBw()).setUtilized(link.getUtilizedBw()). + setMinLinkDelay(link.getMinDelay()).setMaxLinkDelay(link.getMaxDelay()). + setDelayVariation(link.getLinkDelayVar()).setDelay(link.getLinkDelay()). + setTEDefaultMetric(1).setAdjacencySid("0").buildPartial(); + } + + } + if(n==null) { + request = updateRequest.newBuilder().addLink(l).build(); + }else if(l==null) { + request = updateRequest.newBuilder().addNode(n).build(); + }else { + request = updateRequest.newBuilder().addNode(n).addLink(l).build(); + } + + + + + + stub.update(request, new StreamObserver () { + + public void onNext(updateResponse response) { + System.out.println("respuesta del server: "+response); + } + public void onError(Throwable t) { + System.out.println("error: "+t.getMessage()); + } + public void onCompleted() { + // Typically you'll shutdown the channel somewhere else. + // But for the purpose of the lab, we are only making a single + // request. We'll shutdown as soon as this request is done. + System.out.println("channel shutdown"); + channel.shutdownNow(); + } + }); + + + + + + } + public static void main( String[] args ) throws Exception + { + final ManagedChannel channel = ManagedChannelBuilder.forTarget("localhost:2021").usePlaintext().build(); + + // Replace the previous synchronous code with asynchronous code. + // This time use an async stub: + updateServiceStub stub = updateServiceGrpc.newStub(channel); + + // Construct a request + int a = 123; + nodeInfo n = nodeInfo.newBuilder().setNodeName("router 3").setIgpID("1341234").buildPartial(); + updateRequest request = + updateRequest.newBuilder().addNode(n).build(); + + // Make an Asynchronous call. Listen to responses w/ StreamObserver + stub.update(request, new StreamObserver () { + + public void onNext(updateResponse response) { + System.out.println("respuesta del server: "+response); + } + public void onError(Throwable t) { + System.out.println("error: "+t.getMessage()); + } + public void onCompleted() { + // Typically you'll shutdown the channel somewhere else. + // But for the purpose of the lab, we are only making a single + // request. We'll shutdown as soon as this request is done. + System.out.println("channel shutdown"); + channel.shutdownNow(); + } + }); + } +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/grpc/updateServiceImpl.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/grpc/updateServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..3010cbbfb9c29e7233adf3110db02192b2c6a1ff --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/grpc/updateServiceImpl.java @@ -0,0 +1,42 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.bgp4Peer.grpc; + +import io.grpc.stub.StreamObserver; +import src.main.proto.GrpcService.updateRequest; +import src.main.proto.GrpcService.updateResponse; +import src.main.proto.updateServiceGrpc.updateServiceImplBase; + + +public class updateServiceImpl extends updateServiceImplBase{ + +public void update(updateRequest request, StreamObserver responseObserver) { + + System.out.println(request); + + updateResponse response = updateResponse.newBuilder() + .setAck("Update procesado, " + request ) + .build(); + + // Use responseObserver to send a single response back + responseObserver.onNext(response); + + + // When you are done, you must call onCompleted. + responseObserver.onCompleted(); + + } + +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/json/bgpMarshal.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/json/bgpMarshal.java new file mode 100644 index 0000000000000000000000000000000000000000..87d141222e79c454a66d7002ae67bfe5767a998f --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/json/bgpMarshal.java @@ -0,0 +1,82 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.bgp4Peer.json; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.FileWriter; +import java.io.IOException; +import java.util.LinkedList; +import java.util.List; + +import org.codehaus.jackson.JsonEncoding; +import org.codehaus.jackson.JsonGenerationException; +import org.codehaus.jackson.JsonGenerator; +import org.codehaus.jackson.map.JsonMappingException; +import org.codehaus.jackson.map.ObjectMapper; +import org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonInclude.Include; + +import eu.teraflow.tid.bgp4Peer.models.LinkNLRIMsg; +import eu.teraflow.tid.bgp4Peer.models.NodeNLRIMsg; +import eu.teraflow.tid.bgp4Peer.models.PathAttributeMsg; +import eu.teraflow.tid.bgp4Peer.models.UpdateMsg; +import eu.teraflow.tid.bgp4Peer.models.UpdateMsgList; + +public class bgpMarshal { + + + ObjectMapper mapper = new ObjectMapper(); + JsonGenerator g; + FileWriter fWriter; + public void bgpMarshaller() throws IOException{ + + + mapper.setSerializationInclusion(Inclusion.NON_NULL); + mapper.setSerializationInclusion(Inclusion.NON_EMPTY); + + + +// String jsonStr = mapper.writeValueAsString(node); +// mapper.writeValue(new File("target/node.json"), nodeList); +// System.out.println(jsonStr); + + } + public void writeFile(UpdateMsgList update) throws JsonGenerationException, JsonMappingException, IOException { + + g = mapper.getJsonFactory().createJsonGenerator(new File("node.json"), JsonEncoding.UTF8); +// update=update.id2Name(); + mapper.writeValue(g, update); + String temp = mapper.writeValueAsString(update)+"\n"; +// FileOutputStream fos = new FileOutputStream("target/update.json", true); +// fos.write(temp.getBytes()); +// fos.close(); + fWriter = new FileWriter("updateWriter.json"); +// if(temp.length()>2) + fWriter.write(temp); + + + + } + public void closeFile() throws IOException { + g.close(); + fWriter.close(); + } + + + +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/management/BGP4ManagementServer.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/management/BGP4ManagementServer.java new file mode 100644 index 0000000000000000000000000000000000000000..f135a446d9f453cae51986fd5ee42666a80418a5 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/management/BGP4ManagementServer.java @@ -0,0 +1,85 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.bgp4Peer.management; + +import eu.teraflow.tid.bgp4Peer.bgp4session.BGP4SessionsInformation; +import eu.teraflow.tid.bgp4Peer.peer.SendTopology; +import eu.teraflow.tid.tedb.MultiDomainTEDB; +import eu.teraflow.tid.tedb.TEDB; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.net.ServerSocket; +import java.util.Hashtable; +/** + * To manage the server + * + * @author mcs + * + */ +public class BGP4ManagementServer extends Thread { + private Logger log; + private int BGP4ManagementPort = 8888; + private BGP4SessionsInformation bgp4SessionsInformation; + /** + * Topology database for interDomain Links. + */ + private MultiDomainTEDB multiTEDB; + /** + * Topology database for intradomain Links. It owns several domains. + */ + private Hashtable intraTEDBs; + + /** + * Class to send the topology. It is needes to set the parameters sendTopology to true or false. + */ + private SendTopology sendTopology; + + public BGP4ManagementServer(int BGP4ManagementPort, MultiDomainTEDB multiTEDB, Hashtable intraTEDBs, BGP4SessionsInformation bgp4SessionsInformation, SendTopology sendTopology){ + log =LoggerFactory.getLogger("BGP4Server"); + this.BGP4ManagementPort = BGP4ManagementPort; + this.multiTEDB=multiTEDB; + this.intraTEDBs=intraTEDBs; + this.bgp4SessionsInformation =bgp4SessionsInformation; + this.sendTopology=sendTopology; + + } + /** + * RUN + */ + public void run(){ + ServerSocket serverSocket = null; + boolean listening=true; + try { + log.debug("Listening management on port "+BGP4ManagementPort); + serverSocket = new ServerSocket(BGP4ManagementPort); + } + catch (Exception e){ + log.error("Could not listen management on port "+BGP4ManagementPort); + e.printStackTrace(); + return; + } + + try { + while (listening) { + new BGP4ManagementSession(serverSocket.accept(),multiTEDB,intraTEDBs,bgp4SessionsInformation, sendTopology).start(); + } + serverSocket.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/management/BGP4ManagementSession.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/management/BGP4ManagementSession.java new file mode 100644 index 0000000000000000000000000000000000000000..18a433e400e593cc66876c3ac264a6c668dd4f80 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/management/BGP4ManagementSession.java @@ -0,0 +1,199 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.bgp4Peer.management; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.PrintStream; +import java.net.Inet4Address; +import java.net.Socket; +import java.util.Enumeration; +import java.util.Hashtable; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import eu.teraflow.tid.bgp4Peer.bgp4session.BGP4SessionsInformation; +import eu.teraflow.tid.bgp4Peer.peer.SendTopology; +import eu.teraflow.tid.bgp4Peer.tedb.IntraTEDBS; +import eu.teraflow.tid.tedb.DomainTEDB; +import eu.teraflow.tid.tedb.MultiDomainTEDB; +import eu.teraflow.tid.tedb.SimpleTEDB; +import eu.teraflow.tid.tedb.TEDB; + +/** + * + * @author mcs + * + */ +public class BGP4ManagementSession extends Thread { + /** + * The socket of the management session + */ + private Socket socket; + + /** + * Logger + */ + private Logger log; + + /** + * Output Stream of the managament session, to write the answers. + */ + private PrintStream out; + /** + * Topology database for interDomain Links. + */ + private MultiDomainTEDB multiTEDB; + /** + * Topology database for intradomain Links. It owns several domains. + */ + private Hashtable intraTEDBs; + + /** + * The infomation of all the active sessions + */ + private BGP4SessionsInformation bgp4SessionsInformation; + /** + * Class to send the topology. It is needes to set the parameters sendTopology to true or false. + */ + private SendTopology sendTopology; + + public BGP4ManagementSession(Socket s,MultiDomainTEDB multiTEDB, Hashtable intraTEDBs,BGP4SessionsInformation bgp4SessionsInformation, SendTopology sendTopology){ + this.socket=s; + log=LoggerFactory.getLogger("BGP4Server"); + this.multiTEDB=multiTEDB; + this.intraTEDBs=intraTEDBs; + this.bgp4SessionsInformation= bgp4SessionsInformation; + this.sendTopology=sendTopology; + } + + public void run(){ + log.info("Starting Management session"); + boolean running=true; + try { + out=new PrintStream(socket.getOutputStream()); + } catch (IOException e) { + log.warn("Management session cancelled: "+e.getMessage()); + return; + } + try { + BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream())); + while (running) { + //out.print("BGP4:>"); + + + + out.print("Available commands:\r\n"); + out.print(" > show topology\r\n"); + out.print(" > show sessions\r\n"); + out.print(" > set traces on\r\n"); + out.print(" > set traces off\r\n"); + out.print(" > send topology on\r\n"); + out.print(" > send topology off\r\n"); + out.print(" > quit\r\n"); + + + String command = null; + try { + command = br.readLine(); + } catch (IOException ioe) { + log.warn("IO error trying to read your command"); + return; + } + if (command.equals("quit")) { + log.info("Ending Management Session"); + out.println("bye!"); + try { + out.close(); + } catch (Exception e){ + e.printStackTrace(); + } + try { + br.close(); + } catch (Exception e){ + e.printStackTrace(); + } + return; + } + +// else if (command.equals("help")){ +// out.print("Available commands:\r\n"); +// out.print(" > show topology\r\n"); +// out.print(" > show sessions\r\n"); +// out.print(" > set traces on\r\n"); +// out.print(" > set traces off\r\n"); +// out.print(" > send topology on\r\n"); +// out.print(" > send topology off\r\n"); +// out.print(" > quit\r\n"); +// +// } + else if (command.equals("show sessions")){ + //Print intradomain and interDomain links + out.print(bgp4SessionsInformation.toString()); + } + else if (command.equals("show topology")){ + //Print intradomain and interDomain links + if (multiTEDB != null) + out.println(multiTEDB.printTopology()); + Enumeration domainTedbs=intraTEDBs.keys(); + while (domainTedbs.hasMoreElements()){ + String domainID=domainTedbs.nextElement(); + TEDB ted=intraTEDBs.get(domainID); + if (ted instanceof DomainTEDB) { + out.println("Intradomain TEDB with ID "+domainID); + out.println(ted.printTopology()); + } + + } + + } + else if (command.equals("set traces on")) { + //log.setLevel(Level.ALL); + Logger log2=LoggerFactory.getLogger("BGP4Parser"); + //log2.setLevel(Level.ALL); + Logger log3=LoggerFactory.getLogger("BGP4Client"); + //log3.setLevel(Level.ALL); + out.print("traces on!\r\n"); + } + else if (command.equals("set traces off")) { + //log.setLevel(Level.SEVERE); + Logger log2=LoggerFactory.getLogger("BGP4Parser"); + //log2.setLevel(Level.SEVERE); + Logger log3=LoggerFactory.getLogger("BGP4Client"); + //log3.setLevel(Level.SEVERE); + out.print("traces off!\r\n"); + } + else if (command.equals("send topology on")) { + sendTopology.setSendTopology(true); + } + else if (command.equals("send topology off")) { + sendTopology.setSendTopology(false); + } + else{ + out.print("invalid command\n"); + out.print("\n"); + } + + } + } catch (Exception e) { + e.printStackTrace(); + return; + } + } +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/models/LinkNLRIMsg.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/models/LinkNLRIMsg.java new file mode 100644 index 0000000000000000000000000000000000000000..9455ccd1cb9e55ecb85925db19bf62f97cf12703 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/models/LinkNLRIMsg.java @@ -0,0 +1,298 @@ + +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.bgp4Peer.models; + +import java.net.Inet4Address; +import java.util.ArrayList; + +import org.slf4j.Logger; + +import es.tid.bgp.bgp4.update.fields.LinkNLRI; +import es.tid.bgp.bgp4.update.tlv.node_link_prefix_descriptor_subTLVs.NodeDescriptorsSubTLV; + +public class LinkNLRIMsg { + + private ArrayList nodeDescriptorsSubTLV; + // Dominios + private Inet4Address localDomainID; + private Inet4Address remoteDomainID; + + private Inet4Address areaID; + private Inet4Address bgplsID; + + private Inet4Address LocalNodeIGPId; + private Inet4Address RemoteNodeIGPId; + + private int linkDelay; + private int linkDelayVar; + private int minDelay; + private int maxDelay; + private int linkLoss; + private int residualBw; + private int availableBw; + private int utilizedBw; + + private Inet4Address iPv4RouterIDLocalNodeLATLV; + private Inet4Address iPv4RouterIDNeighborNodeLATLV; + + private int IGP_type; + private String localIGPID = null; + private String remoteIGPID = null; + private String localBgplsID; + private String remoteBgplsID; + private Logger log; + private String learntFrom; + + public LinkNLRIMsg(LinkNLRI linkNLRI, String learntFrom) { + + // LinkState vs Link?? + this.learntFrom = learntFrom; + + if (linkNLRI.getLocalNodeDescriptors().getAutonomousSystemSubTLV() != null) { + localDomainID = linkNLRI.getLocalNodeDescriptors().getAutonomousSystemSubTLV().getAS_ID(); + } + if (linkNLRI.getLocalNodeDescriptors().getAreaID() != null) { + areaID = linkNLRI.getLocalNodeDescriptors().getAreaID().getAREA_ID(); + } + if (linkNLRI.getLocalNodeDescriptors().getBGPLSIDSubTLV() != null) { + bgplsID = linkNLRI.getLocalNodeDescriptors().getBGPLSIDSubTLV().getBGPLS_ID(); + } + if (linkNLRI.getLocalNodeDescriptors().getIGPRouterID() != null) { + LocalNodeIGPId = linkNLRI.getLocalNodeDescriptors().getIGPRouterID().getIpv4AddressOSPF(); + } + + if (linkNLRI.getRemoteNodeDescriptorsTLV().getAutonomousSystemSubTLV() != null) { + remoteDomainID = linkNLRI.getRemoteNodeDescriptorsTLV().getAutonomousSystemSubTLV().getAS_ID(); + } + if (linkNLRI.getRemoteNodeDescriptorsTLV().getAreaID() != null) { + areaID = linkNLRI.getRemoteNodeDescriptorsTLV().getAreaID().getAREA_ID(); + } + if (linkNLRI.getRemoteNodeDescriptorsTLV().getBGPLSIDSubTLV() != null) { + bgplsID = linkNLRI.getRemoteNodeDescriptorsTLV().getBGPLSIDSubTLV().getBGPLS_ID(); + } + if (linkNLRI.getRemoteNodeDescriptorsTLV().getIGPRouterID() != null) { + RemoteNodeIGPId = linkNLRI.getRemoteNodeDescriptorsTLV().getIGPRouterID().getIpv4AddressOSPF(); + } + if (linkNLRI.getUndirectionalLinkDelayTLV() != null) { + linkDelay = linkNLRI.getUndirectionalLinkDelayTLV().getDelay(); + } + if (linkNLRI.getUndirectionalDelayVariationTLV() != null) { + linkDelayVar = linkNLRI.getUndirectionalDelayVariationTLV().getDelayVar(); + } + if (linkNLRI.getMinMaxUndirectionalLinkDelayTLV() != null) { + maxDelay = linkNLRI.getMinMaxUndirectionalLinkDelayTLV().getHighDelay(); + minDelay = linkNLRI.getMinMaxUndirectionalLinkDelayTLV().getLowDelay(); + } + if (linkNLRI.getUndirectionalLinkLossTLV() != null) { + linkLoss = linkNLRI.getUndirectionalLinkLossTLV().getLinkLoss(); + } + if (linkNLRI.getUndirectionalResidualBwTLV() != null) { + residualBw = linkNLRI.getUndirectionalResidualBwTLV().getResidualBw(); + } + if (linkNLRI.getUndirectionalAvailableBwTLV() != null) { + availableBw = linkNLRI.getUndirectionalAvailableBwTLV().getAvailableBw(); + } + if (linkNLRI.getUndirectionalUtilizedBwTLV() != null) { + utilizedBw = linkNLRI.getUndirectionalUtilizedBwTLV().getUtilizedBw(); + } + if (linkNLRI.getIpv4InterfaceAddressTLV() != null) { + iPv4RouterIDLocalNodeLATLV = linkNLRI.getIpv4InterfaceAddressTLV().getIpv4Address(); + } + if (linkNLRI.getIpv4NeighborAddressTLV() != null) { + iPv4RouterIDNeighborNodeLATLV = linkNLRI.getIpv4NeighborAddressTLV().getIpv4Address(); + } + if (linkNLRI.getLocalNodeDescriptors().getBGPLSIDSubTLV().getBGPLS_ID() != null) {// alguna condicion? + localBgplsID = linkNLRI.getLocalNodeDescriptors().getBGPLSIDSubTLV().getBGPLS_ID().toString(); + } + if (linkNLRI.getRemoteNodeDescriptorsTLV().getBGPLSIDSubTLV().getBGPLS_ID() != null) {// alguna condicion? + remoteBgplsID = linkNLRI.getRemoteNodeDescriptorsTLV().getBGPLSIDSubTLV().getBGPLS_ID().toString(); + } + if (linkNLRI.getLocalNodeDescriptors().getIGPRouterID() != null) { + IGP_type = linkNLRI.getLocalNodeDescriptors().getIGPRouterID().getIGP_router_id_type(); + switch (IGP_type) { + case 1: + localIGPID = Integer.toString(linkNLRI.getLocalNodeDescriptors().getIGPRouterID().getISIS_ISO_NODE_ID()); + break; + case 2: + localIGPID = Integer.toString(linkNLRI.getLocalNodeDescriptors().getIGPRouterID().getISIS_ISO_NODE_ID()); + break; + case 3: + localIGPID = linkNLRI.getLocalNodeDescriptors().getIGPRouterID().getIpv4AddressOSPF().toString(); + + break; + default: + log.info("añadir este tipo de IGP Identifier por implementar "); + } + } + if (linkNLRI.getRemoteNodeDescriptorsTLV().getIGPRouterID() != null) { + IGP_type = linkNLRI.getRemoteNodeDescriptorsTLV().getIGPRouterID().getIGP_router_id_type(); + switch (IGP_type) { + case 1: + remoteBgplsID = Integer.toString(linkNLRI.getRemoteNodeDescriptorsTLV().getIGPRouterID().getISIS_ISO_NODE_ID()); + break; + case 2: + remoteBgplsID = Integer.toString(linkNLRI.getRemoteNodeDescriptorsTLV().getIGPRouterID().getISIS_ISO_NODE_ID()); + case 3: + remoteIGPID = linkNLRI.getRemoteNodeDescriptorsTLV().getIGPRouterID().getIpv4AddressOSPF().toString(); + break; + default: + log.info("añadir este tipo de IGP Identifier por implementar "); + } + } + + } + + @Override + public int hashCode() { + int result = 17; + result = 31 * result + localBgplsID.hashCode(); + result = 31 * result + iPv4RouterIDLocalNodeLATLV.hashCode(); + result = 31 * result + iPv4RouterIDNeighborNodeLATLV.hashCode(); + return result; + } + + @Override + public boolean equals(Object o) { + if (o == this) + return true; + if (!(o instanceof LinkNLRIMsg)) { + return false; + } + LinkNLRIMsg linkCk = (LinkNLRIMsg) o; + return linkCk.localBgplsID == localBgplsID && linkCk.iPv4RouterIDLocalNodeLATLV == iPv4RouterIDLocalNodeLATLV + && linkCk.localBgplsID == localBgplsID + && linkCk.iPv4RouterIDLocalNodeLATLV == iPv4RouterIDLocalNodeLATLV; + } + + public String toString() {// check type + String out = ""; + if (this.localBgplsID != null) + out = out + "ID: " + this.localBgplsID + " ";// esto es id router?? + if (this.iPv4RouterIDLocalNodeLATLV != null) + out = out + this.iPv4RouterIDLocalNodeLATLV.toString(); + if(this.localIGPID!=null) + out = out + " localIGPID: "+ this.localIGPID; + if (this.iPv4RouterIDNeighborNodeLATLV != null) + out = out + "---->" + this.iPv4RouterIDNeighborNodeLATLV.toString(); + if(this.remoteIGPID!=null) + out = out + " remoteIGPID: "+ this.remoteIGPID; + if (this.remoteBgplsID != null) + out = out + "ID: " + this.remoteBgplsID + " "; + if (this.localDomainID != null) + out = out + "\n AS_ID local: " + this.localDomainID.toString() + " "; + if (this.remoteDomainID != null) + out = out + "\n AS_ID remote: " + this.remoteDomainID.toString() + " "; + if (this.availableBw != 0) + out = out + "\n availableBW: " + this.availableBw + " "; + if (this.residualBw != 0) + out = out + "\n residualBw: " + this.residualBw + " "; + if (this.linkDelay != 0) + out = out + "\n linkDelay: " + this.linkDelay + " "; + return out; + + } + + public String getLearntFrom() { + return learntFrom; + } + + public void setLearntFrom(String learntFrom) { + this.learntFrom = learntFrom; + } + + public String getiPv4RouterIDLocalNodeLATLV() { + if (iPv4RouterIDLocalNodeLATLV != null) + return iPv4RouterIDLocalNodeLATLV.toString(); + else + return null;// NO DEBERIA SER NULL + } + + public void setiPv4RouterIDLocalNodeLATLV(Inet4Address iPv4RouterIDLocalNodeLATLV) { + this.iPv4RouterIDLocalNodeLATLV = iPv4RouterIDLocalNodeLATLV; + } + + public String getiPv4RouterIDNeighborNodeLATLV() { + if (iPv4RouterIDNeighborNodeLATLV != null) + return iPv4RouterIDNeighborNodeLATLV.toString(); + else + return null;// NO DEBERIA SER NULL + } + + public void setiPv4RouterIDNeighborNodeLATLV(Inet4Address iPv4RouterIDNeighborNodeLATLV) { + this.iPv4RouterIDNeighborNodeLATLV = iPv4RouterIDNeighborNodeLATLV; + } + + public Inet4Address getLocalDomainID() { + return localDomainID; + } + + public Inet4Address getRemoteDomainID() { + return remoteDomainID; + } + + public String getLocalBgplsID() { + return this.localBgplsID; + } + + public void setLocalBgplsID(String localBgplsID) { + this.localBgplsID = localBgplsID; + } + + public String getRemoteBgplsID() { + return this.remoteBgplsID; + } + + public void setRemoteBgplsID(String remoteBgplsID) { + this.remoteBgplsID = remoteBgplsID; + } + + public Inet4Address getLocalNodeIGPId() { + return LocalNodeIGPId; + } + + public Inet4Address getRemoteNodeIGPId() { + return RemoteNodeIGPId; + } + + public int getLinkDelay() { + return linkDelay; + } + + public int getLinkDelayVar() { + return linkDelayVar; + } + + public int getMinDelay() { + return minDelay; + } + + public int getMaxDelay() { + return maxDelay; + } + + public int getResidualBw() { + return residualBw; + } + + public int getAvailableBw() { + return availableBw; + } + + public int getUtilizedBw() { + return utilizedBw; + } + +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/models/NodeNLRIMsg.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/models/NodeNLRIMsg.java new file mode 100644 index 0000000000000000000000000000000000000000..958544f63b30a81480e25e78ae3ea3e578a9a7cd --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/models/NodeNLRIMsg.java @@ -0,0 +1,197 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.bgp4Peer.models; + +import java.net.Inet4Address; +import java.net.InetAddress; +import java.util.ArrayList; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.google.common.net.InetAddresses; + +import es.tid.bgp.bgp4.update.fields.LinkNLRI; +import es.tid.bgp.bgp4.update.fields.NodeNLRI; +import es.tid.bgp.bgp4.update.tlv.node_link_prefix_descriptor_subTLVs.NodeDescriptorsSubTLV; + +public class NodeNLRIMsg { + + private ArrayList nodeDescriptorsSubTLV; + // Dominios + private Inet4Address localDomainID; + private Inet4Address remoteDomainID; + private Inet4Address areaID; + private Inet4Address bgplsID; + + private Inet4Address LocalNodeBGPId; + + private Inet4Address iPv4RouterIDLocalNodeLATLV; + private Inet4Address iPv4RouterIDNeighborNodeLATLV; + + private String localBgplsID; + private int remoteBgplsID; + + private Inet4Address as_number; + + private int IGP_type; + private Inet4Address IGPID = null; + private Logger log; + private String nodeName; + private String ISIS_ID_str; + private String router_id="-"; + + private String learntFrom; + + public NodeNLRIMsg(NodeNLRI nodeNLRI, String learntFrom, String nodeName) { + + log = LoggerFactory.getLogger("BGP4Server");// prueba logger + + this.learntFrom = learntFrom; + + if (nodeNLRI.getLocalNodeDescriptors().getAutonomousSystemSubTLV() != null) { + // inetAddr??? + as_number = nodeNLRI.getLocalNodeDescriptors().getAutonomousSystemSubTLV().getAS_ID(); + } + if (nodeNLRI.getLocalNodeDescriptors().getAreaID() != null) { + areaID = nodeNLRI.getLocalNodeDescriptors().getAreaID().getAREA_ID(); + } + if (nodeNLRI.getLocalNodeDescriptors().getBGPLSIDSubTLV() != null) { + localBgplsID=nodeNLRI.getLocalNodeDescriptors().getBGPLSIDSubTLV().getBGPLS_ID().toString(); + } + + if (nodeNLRI.getLocalNodeDescriptors().getIGPRouterID() != null) { + IGP_type = nodeNLRI.getLocalNodeDescriptors().getIGPRouterID().getIGP_router_id_type(); + switch (IGP_type) { + case 1: + ISIS_ID_str = Integer.toString(nodeNLRI.getLocalNodeDescriptors().getIGPRouterID().getISIS_ISO_NODE_ID()); + router_id=ISIS_ID_str; + case 2: + ISIS_ID_str = Integer.toString(nodeNLRI.getLocalNodeDescriptors().getIGPRouterID().getISIS_ISO_NODE_ID()); + router_id=ISIS_ID_str; + case 3: + IGPID = nodeNLRI.getLocalNodeDescriptors().getIGPRouterID().getIpv4AddressOSPF(); + if(IGPID!=null){ + router_id=IGPID.toString(); + }else{ + System.out.println("Null IGPID (type OSPF)"); + } + break; + default: + log.info("añadir este tipo de IGP Identifier por implementar "); + } + } + + if (nodeNLRI.getLocalNodeDescriptors().getBGPLSIDSubTLV() != null) { + if (nodeNLRI.getLocalNodeDescriptors().getBGPLSIDSubTLV().getBGPLS_ID() != null) { + LocalNodeBGPId = nodeNLRI.getLocalNodeDescriptors().getBGPLSIDSubTLV().getBGPLS_ID(); + } + } + + if (nodeName != null) { + this.nodeName = nodeName; + }else{ + this.nodeName= this.router_id; + } + log.info("End node processing"); + } + + public String toString() {// check type + // TODO: concatenate with stringBuffer + + String out = ""; + if (this.router_id != null) + out = out + "ID: " + this.router_id + " ";// esto es id router?? + if (this.iPv4RouterIDLocalNodeLATLV != null) + out = out + this.iPv4RouterIDLocalNodeLATLV.toString(); + if (this.iPv4RouterIDNeighborNodeLATLV != null) + out = out + "---->" + this.iPv4RouterIDNeighborNodeLATLV.toString(); + if(this.LocalNodeBGPId!=null) + out=out+"BGP_ID: "+this.LocalNodeBGPId+" "; + if(this.as_number!=null) + out=out+"AS_number: "+InetAddresses.coerceToInteger(this.as_number)+" "; + if (this.nodeName != null) + out = out + "Name node attribute: " + nodeName + " "; + if (this.ISIS_ID_str != null) + out = out + "ID node: " + this.ISIS_ID_str + " "; + if (this.as_number != null) + out = out + "AS number: " + this.as_number.toString() + " "; + return out; + + } + + public String getLearntFrom() { + return learntFrom; + } + + public void setLearntFrom(String learntFrom) { + this.learntFrom = learntFrom; + } + + public String getLocalBgplsID() { + return this.localBgplsID; + } + + public void setLocalBgplsID(String localBgplsID) { + this.localBgplsID = localBgplsID; + } + + public String getNodeName() { + return nodeName; + } + + public Inet4Address getIGPID() { + return IGPID; + } + + public Inet4Address getBgplsID() { + return bgplsID; + } + + public String getRouterID(){ + return router_id; + } + + public void setBgplsID(Inet4Address bgplsID) { + this.bgplsID = bgplsID; + } + + public Inet4Address getAs_number() { + return as_number; + } + + @Override + public int hashCode() { + int result = 17; + result = 31 * result + localBgplsID.hashCode(); + result = 31 * result + iPv4RouterIDLocalNodeLATLV.hashCode(); + result = 31 * result + iPv4RouterIDNeighborNodeLATLV.hashCode(); + return result; + } + + @Override + public boolean equals(Object o) { + if (o == this) + return true; + if (!(o instanceof NodeNLRIMsg)) { + return false; + } + NodeNLRIMsg nodeCk = (NodeNLRIMsg) o; + return nodeCk.localBgplsID == localBgplsID && nodeCk.iPv4RouterIDLocalNodeLATLV == iPv4RouterIDLocalNodeLATLV + && nodeCk.localBgplsID == localBgplsID + && nodeCk.iPv4RouterIDLocalNodeLATLV == iPv4RouterIDLocalNodeLATLV; + } + +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/models/PathAttributeMsg.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/models/PathAttributeMsg.java new file mode 100644 index 0000000000000000000000000000000000000000..11bf355d06af41b76eac9fc63f1df7c63628c5df --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/models/PathAttributeMsg.java @@ -0,0 +1,89 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.bgp4Peer.models; + +import java.net.Inet4Address; +import java.nio.charset.StandardCharsets; +import java.util.Arrays; + +import es.tid.bgp.bgp4.update.fields.pathAttributes.LinkStateAttribute; +import es.tid.bgp.bgp4.update.tlv.BGP4TLVFormat; +import es.tid.bgp.bgp4.update.tlv.linkstate_attribute_tlvs.IPv4RouterIDLocalNodeLinkAttribTLV; +import es.tid.bgp.bgp4.update.tlv.linkstate_attribute_tlvs.NodeNameNodeAttribTLV; + +public class PathAttributeMsg { + + + private NodeNameNodeAttribTLV nodeNameTLV; + private byte[] data; + private String nodeName; + private Inet4Address addrLocal; + + + public PathAttributeMsg(LinkStateAttribute att) { + + + if(att.getNodeNameTLV()!=null) { + + nodeNameTLV=att.getNodeNameTLV(); + data=nodeNameTLV.getTlv_bytes(); + int b = nodeNameTLV.getTotalTLVLength(); + int c = nodeNameTLV.getTLVValueLength(); + byte [] fin= Arrays.copyOfRange(data, b - c, b); + nodeName = new String(fin , StandardCharsets.UTF_8); + } + if(att.getIPv4RouterIDLocalNodeLATLV()!=null) { + addrLocal=att.getIPv4RouterIDLocalNodeLATLV().getIpv4Address(); + } + + } + public String toString() { + String out=""; + if(this.nodeName!=null) + out=out+"NODE name "+nodeName; + if(this.addrLocal!=null) + out=out+"NODE IP "+addrLocal.toString(); + + return out; + } + + public String getNodeName() { + return nodeName; + } + public void setNodeName(String nodeName) { + this.nodeName = nodeName; + } + + @Override + public int hashCode() { + int result = 17; + result = 31 * result + nodeName.hashCode(); + return result; + } + @Override + public boolean equals(Object o) { + if (o == this) return true; + if (!(o instanceof PathAttributeMsg)) { + return false; + } + PathAttributeMsg pathCk = (PathAttributeMsg) o; + return pathCk.nodeName == nodeName; + } + public Inet4Address getAddrLocal() { + return addrLocal; + } + + +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/models/UpdateMsg.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/models/UpdateMsg.java new file mode 100644 index 0000000000000000000000000000000000000000..37d87e6836734989ec38d08741f51495262c7d3b --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/models/UpdateMsg.java @@ -0,0 +1,99 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.bgp4Peer.models; + +import java.net.InetAddress; +import java.util.ArrayList; +import java.util.List; + +public class UpdateMsg { + + private int AFI; + private int asPathSegment; + private InetAddress nextHop; + private String learntFrom; + + private NodeNLRIMsg node; + private LinkNLRIMsg link; + private PathAttributeMsg path; + private List linkList = new ArrayList<>(); + private List nodeList = new ArrayList<>(); + + public List getLinkList(){ + return this.linkList; + } + public List getNodeList(){ + return this.nodeList; + } + public void addNode(NodeNLRIMsg node) { + this.nodeList.add(node); + } + public int getAFI() { + return AFI; + } + public String getLearntFrom() { + return learntFrom; + } + public void setLearntFrom(String learntFrom) { + this.learntFrom = learntFrom; + } + public void setAFI(int aFI) { + AFI = aFI; + } + public int getAsPathSegment() { + return asPathSegment; + } + public void setAsPathSegment(int asPathSegment) { + this.asPathSegment = asPathSegment; + } + public InetAddress getNextHop() { + return nextHop; + } + public void setNextHop(InetAddress nextHop) { + this.nextHop = nextHop; + } + public NodeNLRIMsg getNode() { + return node; + } + public void setNode(NodeNLRIMsg node) { + this.node = node; + } + // public LinkNLRIMsg getLink() { + // return link; + // } + public boolean linkCheck(){ + return linkList.size()>0; + } + public boolean nodeCheck(){ + return nodeList.size()>0; + } + public void setLink(LinkNLRIMsg link) { + this.link = link; + } + public void addLink(LinkNLRIMsg link) { + this.linkList.add(link); + } + public PathAttributeMsg getPath() { + return path; + } + public void setPath(PathAttributeMsg path) { + this.path = path; + } + + + + + +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/models/UpdateMsgList.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/models/UpdateMsgList.java new file mode 100644 index 0000000000000000000000000000000000000000..6fd30c6cbf5f080676cc43eceaf267e6d2faedff --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/models/UpdateMsgList.java @@ -0,0 +1,151 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.bgp4Peer.models; + +import java.net.InetAddress; +import java.util.LinkedList; +import java.util.List; + +public class UpdateMsgList { + + + /* Print purposes and debug*/ + List nodeList = new LinkedList<>(); + List linkList = new LinkedList<>(); + List pathList = new LinkedList<>(); + /**/ + public UpdateMsgList() { + } + + + public String toString() { + + String out ="Update Message: "; + if(nodeList!=null) { + out=out+nodeList.toString()+"\n"; + } + if(linkList!=null) { + out=out+linkList.toString()+"\n"; + } + if(pathList!=null) { + out=out+pathList.toString()+"\n"; + } + + return out; + + } + public void addLinkToJson(LinkNLRIMsg link) { + + if(link==null) + return; + boolean exists = false; + for (LinkNLRIMsg linkInList : linkList) { // list being the LinkedList + if (link.equals(linkInList)) { + exists = true; + break; + } + } + if (!exists) { + linkList.add(link); + } + } + public void addNodeToJson(NodeNLRIMsg node, String currentName) {//comprobar que existe? + + if(node==null) + return; + boolean exists = false; + for (NodeNLRIMsg nodeInList : nodeList) { // list being the LinkedList + if (node.equals(nodeInList)) { + exists = true; + break; + } + } + if (!exists) { + nodeList.add(node); + } + + } + public void addpathToJson(PathAttributeMsg path) { + + boolean exists = false; + if(path.getNodeName()==null) { + return; + } + for (PathAttributeMsg pathInList : pathList) { // list being the LinkedList + if (path.equals(pathInList) ) { + exists = true; + break; + } + } + if (!exists) { + pathList.add(path); + } + + } + + public List getNodeList() { + return nodeList; + } + + public List getLinkList() { + return linkList; + } + + public List getPathList() { + return pathList; + } + + public void addNodeToList(NodeNLRIMsg node) { + nodeList.add(node); + } + public void addLinkToList(LinkNLRIMsg link) { + linkList.add(link); + } + public void addPathToList(PathAttributeMsg path) { + pathList.add(path); + } + + public UpdateMsgList id2Name() { + + UpdateMsgList update=new UpdateMsgList(); + update.nodeList=this.nodeList; + update.pathList=this.pathList; + List newLinkList = new LinkedList<>(); + + for (LinkNLRIMsg linkInList : linkList) { + LinkNLRIMsg link=linkInList; + + for(NodeNLRIMsg nodeInList: update.nodeList) { + if((linkInList.getLocalBgplsID().equals(nodeInList.getLocalBgplsID()))) { + link.setLocalBgplsID(nodeInList.getNodeName()); + } + } + + for(NodeNLRIMsg nodeInList: update.nodeList) { + if((linkInList.getRemoteBgplsID().equals(nodeInList.getLocalBgplsID()))) { + link.setRemoteBgplsID(nodeInList.getNodeName()); + } + } + + + newLinkList.add(link); + } + update.linkList=newLinkList; + + return update; + + } + +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/BGP4Exception.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/BGP4Exception.java new file mode 100644 index 0000000000000000000000000000000000000000..736f6cd3eee8e9ebac12875dcc30407a0e63e8de --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/BGP4Exception.java @@ -0,0 +1,20 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.bgp4Peer.peer; + +public class BGP4Exception extends Exception { + + private static final long serialVersionUID = 1L; +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/BGP4LSPeerInfo.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/BGP4LSPeerInfo.java new file mode 100644 index 0000000000000000000000000000000000000000..768e4a87b4d85e7355d3359b78e140880f2792d0 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/BGP4LSPeerInfo.java @@ -0,0 +1,85 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.bgp4Peer.peer; + +import java.net.Inet4Address; + +public class BGP4LSPeerInfo { + /** + * IP Address of the remote Peer + */ + private Inet4Address peerIP; + + /** + * Experimental USE Only + * Default port is 179 + * For testing and development, alternative ports are allowed. + */ + private int peerPort; + + /** + * If the remote peer is a consumer and we need to send the topology + */ + private boolean sendToPeer; + + /** + * If the remote peer is a generator of topology and we are consumers + */ + private boolean updateFromPeer; + + + + public BGP4LSPeerInfo() { + this.peerPort=179; + } + + public Inet4Address getPeerIP() { + return peerIP; + } + + public void setPeerIP(Inet4Address peerIP) { + this.peerIP = peerIP; + } + + public int getPeerPort() { + return peerPort; + } + + public void setPeerPort(int peerPort) { + this.peerPort = peerPort; + } + + public boolean isSendToPeer() { + return sendToPeer; + } + + public void setSendToPeer(boolean sendToPeer) { + this.sendToPeer = sendToPeer; + } + + public boolean isUpdateFromPeer() { + return updateFromPeer; + } + + public void setUpdateFromPeer(boolean updateFromPeer) { + this.updateFromPeer = updateFromPeer; + } + + + + + + +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/BGP4Parameters.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/BGP4Parameters.java new file mode 100644 index 0000000000000000000000000000000000000000..e8958d306e3d11e7a3a569d59773ad4351770eea --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/BGP4Parameters.java @@ -0,0 +1,540 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.bgp4Peer.peer; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.xml.sax.Attributes; +import org.xml.sax.SAXException; +import org.xml.sax.helpers.DefaultHandler; + +import javax.xml.parsers.SAXParser; +import javax.xml.parsers.SAXParserFactory; +import java.net.Inet4Address; +import java.net.UnknownHostException; +import java.util.LinkedList; + +/** + * Parameters to configure the BGP4 session + * @author mcs + * + */ +public class BGP4Parameters { + + private Logger log = LoggerFactory.getLogger("BGP4Peer"); + /** + * TCP port where the BGP is listening for incoming bgp4 connections + * Experimental use only. Default and standard is 179 + */ + private int BGP4Port = 179; + + /** + * TCP port to connect to manage the BGP connection + */ + private int BGP4ManagementPort = 1112; + /** + * Local BGP4 address of this peer + */ + private String localBGPAddress = "127.0.0.1"; + /** + * Local port to connect with BGP Peer. + */ + private int localBGPPort = 0; + /** + * Log file + */ + private String BGP4LogFile="BGP4Parser.log"; + /** + * Log file Client + */ + private String BGP4LogFileClient="BGP4Client.log"; + + + /** + * Log file Client + */ + private String BGP4LogFileServer="BGP4Server.log"; + + + /** + * Name of the configuration file + */ + private String confFile; + + /** + * If the tcp no delay option is used or not. + */ + private boolean nodelay=false; + /** + * Waiting Time to connect to clients + */ + long delay = 6000; + /** + * List of peers to establish connection. + */ + private LinkedList peersToConnect; + + /** + * Parameter used to set traces meanwhile the execution. + */ + private boolean setTraces=true; + /** + * OPEN PARAMENTERS + */ + int holdTime=90; + /** + * OPEN PARAMENTERS + */ + + private boolean isTest=false; + + /** + * Time between sending keepalives + */ + int keepAliveTimer=30; + + /** + * Time between topology updates + */ + long sendTopoDelay=30000; + + private boolean saveTopologyDB=false; + + private Inet4Address topologyDBIP; + + private int topologyDBport; + + public int getKeepAliveTimer() { + return keepAliveTimer; + } + public void setKeepAliveTimer(int keepAliveTimer) { + this.keepAliveTimer = keepAliveTimer; + } + String BGPIdentifier = null; + int myAutonomousSystem=1; + int version=0x04; + + /** + * This parameter can have three options: fromXML, fromOSPF, fromBGP + * Explain the way the topology module learns the topology + */ + private String learnTopology="fromBGP"; + /** + * XML File to read and generate the topology + */ + private String topologyFile; + + + private int numberTriesToConnect=3; + /** + * True: This peer sends the interdomain links of the topology to other peers + * False: This peer does NOT send the topology to other peers + */ + private boolean sendTopology=false; + /** + * True: This peer sends the whole topology to other peers + * False: This peer does NOT send the intradomain linksto other peers + */ + private boolean sendIntradomainLinks=false; + + + + /** + * Instance identifier for NodeNLRI (Types defined in class InstanceIDTypes) + */ + private int instanceID=0; + /** + * Constructor + */ + BGP4Parameters(){ + confFile="BGP4Parameters.xml"; + peersToConnect =new LinkedList(); + } + /** + * Constructor + */ + BGP4Parameters(String confFile){ + peersToConnect =new LinkedList(); + + if (confFile!=null){ + this.confFile=confFile; + }else { + confFile="BGP4Parameters.xml"; + } + + } + + + + public void initialize(){ + + try { + + System.out.println("Parsing Config File::"+confFile); + + SAXParserFactory factory = SAXParserFactory.newInstance(); + SAXParser saxParser = factory.newSAXParser(); + + + DefaultHandler handler = new DefaultHandler() { + boolean peer = false; + boolean send = false; + boolean receive = false; + boolean peerPort = false; + BGP4LSPeerInfo peerInfo=null; + + String tempVal; + + public void startElement(String uri, String localName, + String qName, Attributes attributes) + throws SAXException { + + if (qName.equalsIgnoreCase("configPeer")){ + log.debug("Found peer configuration"); + } + else if (qName.equalsIgnoreCase("peer")){ + peer = true; + } + else if (qName.equalsIgnoreCase("export")){ + send = true; + } + else if (qName.equalsIgnoreCase("import")){ + receive = true; + }else if (qName.equalsIgnoreCase("peerPort")){ + peerPort = true; + } + + } + + public void endElement(String uri, String localName, + String qName) + throws SAXException { + if(qName.equalsIgnoreCase("BGP4Port")) { + BGP4Port=Integer.parseInt(tempVal.trim()); + + } + else if (qName.equalsIgnoreCase("BGP4ManagementPort")){ + BGP4ManagementPort = Integer.parseInt(tempVal.trim()); + } + + else if (qName.equalsIgnoreCase("BGP4LogFile")) { + BGP4LogFile=tempVal.trim(); + } + else if (qName.equalsIgnoreCase("BGP4LogFileClient")) { + BGP4LogFileClient=tempVal.trim(); + } + else if (qName.equalsIgnoreCase("BGP4LogFileServer")) { + BGP4LogFileServer=tempVal.trim(); + } + else if (qName.equalsIgnoreCase("nodelay")) { + nodelay=Boolean.parseBoolean(tempVal.trim()); + } + else if (qName.equalsIgnoreCase("isTest")) { + isTest=Boolean.parseBoolean(tempVal.trim()); + } + + else if (qName.equalsIgnoreCase("setTraces")) { + setTraces=Boolean.parseBoolean(tempVal.trim()); + } + else if (qName.equalsIgnoreCase("saveTopologyDB")) { + saveTopologyDB=Boolean.parseBoolean(tempVal.trim()); + } + else if (qName.equalsIgnoreCase("topologyDBIP")) { + try { + topologyDBIP =(Inet4Address)Inet4Address.getByName(tempVal.trim()); + } catch (UnknownHostException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + else if (qName.equalsIgnoreCase("topologyDBport")) { + topologyDBport=Integer.parseInt(tempVal.trim()); + } + else if (qName.equalsIgnoreCase("sendTopology")) { + sendTopology=Boolean.parseBoolean(tempVal.trim()); + } + else if (qName.equalsIgnoreCase("sendIntradomainLinks")) { + sendIntradomainLinks=Boolean.parseBoolean(tempVal.trim()); + sendTopology = true;//si se envian los intradomain entonces se enviara la topologia entera + } + + + else if(qName.equalsIgnoreCase("holdTime")) { + holdTime=Integer.parseInt(tempVal.trim()); + } + else if(qName.equalsIgnoreCase("keepAliveTimer")) { + keepAliveTimer=Integer.parseInt(tempVal.trim()); + } + else if (qName.equalsIgnoreCase("version")){ + version = Integer.parseInt(tempVal.trim()); + } + else if (qName.equalsIgnoreCase("myAutonomousSystem")){ + myAutonomousSystem = Integer.parseInt(tempVal.trim()); + } + else if (qName.equalsIgnoreCase("localBGPAddress")){//El BGP Identifier es la local BGP Address. + //BGPIdentifier = tempVal.trim(); + localBGPAddress=tempVal.trim(); + } + else if (qName.equalsIgnoreCase("BGPIdentifier")){//El BGP Identifier es la local BGP Address. + BGPIdentifier = tempVal.trim(); + } + else if (qName.equalsIgnoreCase("delay")){ + delay = Long.parseLong(tempVal.trim()); + } + else if (qName.equalsIgnoreCase("sendTopoDelay")){ + sendTopoDelay = Long.parseLong(tempVal.trim()); + } + /* + else if (qName.equalsIgnoreCase("peer")){ + String peerBGP_IPaddress = tempVal.trim(); + peersToConnect.add(peerBGP_IPaddress); + }*/ + else if (qName.equalsIgnoreCase("TopologyFile")) { + topologyFile=tempVal.trim(); + } + else if (qName.equalsIgnoreCase("learnTopology")) { + learnTopology=tempVal.trim(); + } + else if (qName.equalsIgnoreCase("numberTriesToConnect")){ + numberTriesToConnect = Integer.parseInt(tempVal.trim()); + } + else if (qName.equalsIgnoreCase("instanceID")){ + instanceID = Integer.parseInt(tempVal.trim()); + } + else if (qName.equalsIgnoreCase("localBGPPort")){ + localBGPPort = Integer.parseInt(tempVal.trim()); + } +// else if (qName.equalsIgnoreCase("configPeer")){ +// log.info("peers....." + peersToConnect.toString()); +// } + } + + + public void characters(char[] ch, int start, int length) throws SAXException { + tempVal = new String(ch,start,length); + + if(peer){ + peerInfo= new BGP4LSPeerInfo(); + + String peerBGP_IPaddress = new String(ch, start, length); + Inet4Address peerBGPIP; + try { + peerBGPIP=(Inet4Address)Inet4Address.getByName(peerBGP_IPaddress.trim()); + peerInfo.setPeerIP(peerBGPIP); + } catch (UnknownHostException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + peersToConnect.add(peerInfo); + peer = false; + } + else if(send){ + String sendInfo = new String(ch, start, length); + peerInfo.setSendToPeer(Boolean.parseBoolean(sendInfo.trim())); + send = false; + } + else if(receive){ + String update_from = new String(ch, start, length); + peerInfo.setUpdateFromPeer(Boolean.parseBoolean(update_from.trim())); + receive = false; + }else if (peerPort){ + String peer_port = new String(ch, start, length); + peerInfo.setPeerPort(Integer.parseInt(peer_port.trim())); + peerPort = false; + } + } + }; + saxParser.parse(confFile, handler); + + }catch (Exception e) { + log.error("Problems reading config"); + e.printStackTrace(); + System.exit(1); + } + + } + public int getBGP4Port() { + return BGP4Port; + } + public void setBGP4Port(int bGP4Port) { + BGP4Port = bGP4Port; + } + public int getBGP4ManagementPort() { + return BGP4ManagementPort; + } + public void setBGP4ManagementPort(int bGP4ManagementPort) { + BGP4ManagementPort = bGP4ManagementPort; + } + public String getBGP4LogFile() { + return BGP4LogFile; + } + public void setBGP4LogFile(String bGP4LogFile) { + BGP4LogFile = bGP4LogFile; + } + public boolean isSetTraces() { + return setTraces; + } + public void setSetTraces(boolean setTraces) { + this.setTraces = setTraces; + } + public boolean isTest() { + return isTest; + } + public void setisTest(boolean test) { + this.isTest = test; + } + + public String getConfFile() { + return confFile; + } + public void setConfFile(String confFile) { + this.confFile = confFile; + } + public boolean isNodelay() { + return nodelay; + } + public void setNodelay(boolean nodelay) { + this.nodelay = nodelay; + } + public int getHoldTime() { + return holdTime; + } + public void setHoldTime(int holdTime) { + this.holdTime = holdTime; + } + public String getBGPIdentifier() { + return BGPIdentifier; + } + public void setBGPIdentifier(String bGPIdentifier) { + BGPIdentifier = bGPIdentifier; + } + public int getMyAutonomousSystem() { + return myAutonomousSystem; + } + public void setMyAutonomousSystem(int myAutonomousSystem) { + this.myAutonomousSystem = myAutonomousSystem; + } + public int getVersion() { + return version; + } + public void setVersion(int version) { + this.version = version; + } + + public LinkedList getPeersToConnect() { + return peersToConnect; + } + public void setPeersToConnect(LinkedList peersToConnect) { + this.peersToConnect = peersToConnect; + } + + public String getLearnTopology() { + return learnTopology; + } + public void setLearnTopology(String learnTopology) { + this.learnTopology = learnTopology; + } + public String getTopologyFile() { + return topologyFile; + } + public void setTopologyFile(String topologyFile) { + this.topologyFile = topologyFile; + } + + public int getNumberTriesToConnect() { + return numberTriesToConnect; + } + public void setNumberTriesToConnect(int numberTriesToConnect) { + this.numberTriesToConnect = numberTriesToConnect; + } + public long getDelay() { + return delay; + } + public void setDelay(long delay) { + this.delay = delay; + } + public boolean isSendTopology() { + return sendTopology; + } + public void setSendTopology(boolean sendTopology) { + this.sendTopology = sendTopology; + } + public String getBGP4LogFileClient() { + return BGP4LogFileClient; + } + public void setBGP4LogFileClient(String bGP4LogFileClient) { + BGP4LogFileClient = bGP4LogFileClient; + } + public String getBGP4LogFileServer() { + return BGP4LogFileServer; + } + public void setBGP4LogFileServer(String bGP4LogFileServer) { + BGP4LogFileServer = bGP4LogFileServer; + } + public int getInstanceID() { + return instanceID; + } + public void setInstanceID(int instanceID) { + this.instanceID = instanceID; + } + public boolean isSendIntradomainLinks() { + return sendIntradomainLinks; + } + + public void setSendIntradomainLinks(boolean sendIntradomainLinks) { + this.sendIntradomainLinks = sendIntradomainLinks; + } + + + public String getLocalBGPAddress() { + return localBGPAddress; + } + public void setLocalBGPAddress(String localBGPAddress) { + this.localBGPAddress = localBGPAddress; + } + public int getLocalBGPPort() { + return localBGPPort; + } + + public long getSendTopoDelay() { + return sendTopoDelay; + } + public void setSendTopoDelay(long sendTopoDelay) { + this.sendTopoDelay = sendTopoDelay; + } + public boolean isSaveTopologyDB() { + return saveTopologyDB; + } + public void setSaveTopologyDB(boolean saveTopologyDB) { + this.saveTopologyDB = saveTopologyDB; + } + public Inet4Address getTopologyDBIP() { + return topologyDBIP; + } + public void setTopologyDBIP(Inet4Address topologyDBIP) { + this.topologyDBIP = topologyDBIP; + } + public int getTopologyDBport() { + return topologyDBport; + } + public void setTopologyDBport(int topologyDBport) { + this.topologyDBport = topologyDBport; + } + + + + + +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/BGP4SessionClientManager.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/BGP4SessionClientManager.java new file mode 100644 index 0000000000000000000000000000000000000000..75694e90c9ffac9f5760943975f4a437d5fb9863 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/BGP4SessionClientManager.java @@ -0,0 +1,160 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.bgp4Peer.peer; + +import eu.teraflow.tid.bgp4Peer.bgp4session.BGP4SessionClient; +import eu.teraflow.tid.bgp4Peer.bgp4session.BGP4SessionExistsException; +import eu.teraflow.tid.bgp4Peer.bgp4session.BGP4SessionsInformation; +import eu.teraflow.tid.bgp4Peer.updateTEDB.UpdateDispatcher; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.net.Inet4Address; + +/** + * Client session manager + * @author mcs + * + */ +public class BGP4SessionClientManager implements Runnable{ + + + + private BGP4SessionClient bgp4SessionClient; + private Logger log; + + BGP4SessionsInformation bgp4SessionInformation; + /** + * peer contains the IP address and port where the peer listens. + */ + private BGP4LSPeerInfo peer; + private Inet4Address peerIP; + private String localBGP4Address; + private int localBGP4Port; + private int holdTime; + private int keepAliveTimer; + private Inet4Address BGPIdentifier; + private int version = 4; + private int myAutonomousSystem; + private UpdateDispatcher ud; + private Boolean updateFrom; + private Boolean sendTo; + + public BGP4SessionClientManager(BGP4SessionsInformation bgp4SessionInformation,UpdateDispatcher ud, BGP4LSPeerInfo peer,int bgp4Port,String my_IPAddress,int my_bgp4Port , int holdTime,Inet4Address BGPIdentifier,int version,int myAutonomousSystem, int my_keepAliveTimer){ + log=LoggerFactory.getLogger("BGP4Peer"); + this.bgp4SessionInformation=bgp4SessionInformation; + this.holdTime=holdTime; + this.BGPIdentifier=BGPIdentifier; + this.version = version; + this.myAutonomousSystem=myAutonomousSystem; + this.peer = peer; + this.ud=ud; + this.localBGP4Address=my_IPAddress; + this.localBGP4Port=my_bgp4Port; + this.keepAliveTimer = my_keepAliveTimer; + this.peerIP=peer.getPeerIP(); + this.setSendTo(peer.isSendToPeer()); + this.setUpdateFrom(peer.isUpdateFromPeer()); + + } + + /** + * + * + * + */ + public void run(){ + if(bgp4SessionClient != null){ + if (bgp4SessionClient.isAlive()){ + if (bgp4SessionClient.isInterrupted()){ + log.debug("Thread alive... backup session dead"); + + } + log.debug("Session alive and not interrupted"); + return; + } + else{ + try{ + bgp4SessionInformation.notifySessionStart(peerIP); + log.debug("Session with BGP-LS peer"+peer +" dead, trying to establish new session"); + bgp4SessionClient= new BGP4SessionClient(bgp4SessionInformation,ud,peer.getPeerIP(),peer.getPeerPort(),holdTime,BGPIdentifier,version,myAutonomousSystem,localBGP4Address, localBGP4Port,keepAliveTimer); + bgp4SessionClient.setSendTo(sendTo); + bgp4SessionClient.setUpdateFrom(updateFrom); + bgp4SessionClient.start(); + } catch(BGP4SessionExistsException e){ + log.debug("Checked that there is already a peer initiated session with "+this.peerIP); + } + + return; + } + } else { + try{ + bgp4SessionInformation.notifySessionStart(peerIP); + log.info("Trying to establish new session with peer "+ peer.getPeerIP()+" on port "+peer.getPeerPort()); + bgp4SessionClient = new BGP4SessionClient(bgp4SessionInformation,ud, peer.getPeerIP(), peer.getPeerPort(), holdTime, BGPIdentifier, + version,myAutonomousSystem,localBGP4Address, localBGP4Port ,keepAliveTimer); + bgp4SessionClient.setSendTo(sendTo); + bgp4SessionClient.setUpdateFrom(updateFrom); + bgp4SessionClient.start(); + + } catch(BGP4SessionExistsException e){ + log.debug("No need to start new connection with "+this.peerIP); + } + + + return; + + } + + } + public BGP4SessionClient getBgp4SessionClient() { + return bgp4SessionClient; + } + + public void setBgp4SessionClient(BGP4SessionClient bgp4SessionClient) { + this.bgp4SessionClient = bgp4SessionClient; + } + + public void killBGP4Session(){ + bgp4SessionClient.killSession(); + } + + public void closeBGP4Session(){ + log.info("Closing BGP4Session"); + if (bgp4SessionClient.isAlive()){ + //FIXME reason for close???? + bgp4SessionClient.close(); + } + + } + + public Boolean getUpdateFrom() { + return updateFrom; + } + + public void setUpdateFrom(Boolean updateFrom) { + this.updateFrom = updateFrom; + } + + public Boolean getSendTo() { + return sendTo; + } + + public void setSendTo(Boolean sendTo) { + this.sendTo = sendTo; + } + +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/BGP4SessionServerManager.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/BGP4SessionServerManager.java new file mode 100644 index 0000000000000000000000000000000000000000..ccb59fa2e1ace06f3cf4586a3325bbec1f5f2794 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/BGP4SessionServerManager.java @@ -0,0 +1,160 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.bgp4Peer.peer; + +import eu.teraflow.tid.bgp4Peer.bgp4session.BGP4PeerInitiatedSession; +import eu.teraflow.tid.bgp4Peer.bgp4session.BGP4SessionsInformation; +import eu.teraflow.tid.bgp4Peer.updateTEDB.UpdateDispatcher; +import eu.teraflow.tid.tedb.TEDB; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.IOException; +import java.net.Inet4Address; +import java.net.ServerSocket; +import java.net.Socket; +import java.util.LinkedList; + +public class BGP4SessionServerManager implements Runnable { + private BGP4PeerInitiatedSession bgp4SessionServer; + private Logger log; + BGP4SessionsInformation bgp4SessionsInformation; + int bgp4Port; + private int holdTime; + private int keepAliveTimer; + private Inet4Address BGPIdentifier; + private int version = 4; + private int myAutonomousSystem; + private boolean noDelay; + private boolean isTest=false; + private TEDB tedb; + private UpdateDispatcher ud; + Inet4Address localBGP4Address; + private Boolean updateFrom; + private Boolean sendTo; + + private LinkedList peersToConnect; + + public BGP4SessionServerManager(BGP4SessionsInformation bgp4SessionInformation, TEDB tedb,UpdateDispatcher ud, int bgp4Port,int holdTime,Inet4Address BGPIdentifier,int version,int myAutonomousSystem,boolean noDelay,Inet4Address localAddress ,int mykeepAliveTimer, LinkedList peersToConnect ){ + log = LoggerFactory.getLogger("BGP4Peer"); + this.holdTime=holdTime; + this.BGPIdentifier=BGPIdentifier; + this.version = version; + this.myAutonomousSystem=myAutonomousSystem; + this.bgp4SessionsInformation=bgp4SessionInformation; + this.bgp4Port=bgp4Port; + this.noDelay=noDelay; + this.tedb=tedb; + this.ud=ud; + this.localBGP4Address=localAddress; + this.keepAliveTimer = mykeepAliveTimer; + this.peersToConnect=peersToConnect; + } + + public BGP4SessionServerManager(BGP4SessionsInformation bgp4SessionInformation, TEDB tedb,UpdateDispatcher ud, int bgp4Port,int holdTime,Inet4Address BGPIdentifier,int version,int myAutonomousSystem,boolean noDelay,Inet4Address localAddress ,int mykeepAliveTimer, LinkedList peersToConnect, boolean test){ + log = LoggerFactory.getLogger("BGP4Peer"); + this.holdTime=holdTime; + this.BGPIdentifier=BGPIdentifier; + this.version = version; + this.myAutonomousSystem=myAutonomousSystem; + this.bgp4SessionsInformation=bgp4SessionInformation; + this.bgp4Port=bgp4Port; + this.noDelay=noDelay; + this.tedb=tedb; + this.ud=ud; + this.localBGP4Address=localAddress; + this.keepAliveTimer = mykeepAliveTimer; + this.peersToConnect=peersToConnect; + this.isTest=test; + } + + + public Boolean getSendTo() { + return sendTo; + } + + public void setSendTo(Boolean sendTo) { + this.sendTo = sendTo; + } + + public Boolean getUpdateFrom() { + return updateFrom; + } + + public void setUpdateFrom(Boolean updateFrom) { + this.updateFrom = updateFrom; + } + + @Override + public void run() { + + + + ServerSocket serverSocket = null; + boolean listening = true; + try { + log.debug("SERVER Listening on port: "+ bgp4Port); + log.debug("SERVER Listening on address: "+ localBGP4Address); + serverSocket = new ServerSocket( bgp4Port,0,localBGP4Address); + } catch (IOException e) { + log.error("Could not listen on port: "+ bgp4Port); + System.exit(-1); + } + while (listening) { + try { + Socket sock=serverSocket.accept(); + bgp4SessionServer = new BGP4PeerInitiatedSession(sock,bgp4SessionsInformation,ud,holdTime,BGPIdentifier,version,myAutonomousSystem,noDelay,keepAliveTimer); + if (isTest){ + log.info("isTest"); + bgp4SessionServer.setSendTo(true); + bgp4SessionServer.start(); + } + else { + log.info("Not Test"); + for (int i = 0; i < this.peersToConnect.size(); i++) { + try { + Inet4Address add = peersToConnect.get(i).getPeerIP(); + if (add == null) { + log.warn("peer IP address shouldn't be null"); + } else { + if (add.equals(sock.getInetAddress())) { + log.debug("FOUND " + add); + bgp4SessionServer.setSendTo(this.peersToConnect.get(i).isSendToPeer()); + } + } + + } catch (Exception e) { + e.printStackTrace(); + } + + } + bgp4SessionServer.start(); + } + }catch (Exception e) { + e.printStackTrace(); + } + } + try { + log.info("Closing the socket"); + serverSocket.close(); + + }catch (Exception e) { + e.printStackTrace(); + } + + } + +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/BGPPeer.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/BGPPeer.java new file mode 100644 index 0000000000000000000000000000000000000000..bdddd4379af58b998b0236e701ea17bcecc14997 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/BGPPeer.java @@ -0,0 +1,407 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.bgp4Peer.peer; + +import eu.teraflow.tid.bgp4Peer.bgp4session.BGP4SessionsInformation; +import eu.teraflow.tid.bgp4Peer.management.BGP4ManagementServer; +import eu.teraflow.tid.bgp4Peer.updateTEDB.UpdateDispatcher; +import eu.teraflow.tid.tedb.*; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.net.Inet4Address; +import java.net.InetAddress; +import java.net.UnknownHostException; +import java.util.Hashtable; +import java.util.LinkedList; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + + +/** + * BGP-LS Speaker. + * This class is a BGP-LS peer which has two modes: + * - Listens to incoming connections + * - Launches new BGP session with a list of peers. + * It can send periodically its learnt topology to other peers. + * TEDB can be initialized from: + * - XML file with the topolgoy + * - Other BGP-LS Sessions + * + * @author pac ogondio + * + */ +public class BGPPeer { + /** + * Session server. It opens a socket to listen to new connections. + */ + private BGP4SessionServerManager bgp4SessionServer; + /** + * Session client. It connects to peers. + */ + private BGP4SessionClientManager bgp4SessionClientManager; + /** + * BGP4 parameters. Needed to configure the connections. + */ + private BGP4Parameters params; + + /** + * List of opened BGP4 sessions. + */ + private BGP4SessionsInformation bgp4SessionsInformation; + + /** + * Topology database only for interDomain Links. + */ + private MultiDomainTEDB multiDomainTEDB; + + /** + * Table with domainID - TEDB. + * The BGP-LS Peer can have several domains + */ + private Hashtable intraTEDBs; + + /** + * Full TEDB with all Links + */ + + private SimpleTEDB fullTEDB; + + + /** + * Class to send periodically the topology + */ + //private DomainTEDB readDomainTEDB; + + /** + * True: This peer sends the topology to other peers + * False: This peer does NOT send the topology to other peers + */ + private boolean sendTopology; + /** + * + */ + private SendTopology sendTopologyTask; + /** + * + */ + private boolean saveTopology; + + private SaveTopologyinDB saveTopologyDB; + + /** + * + */ + /** + * List of peers to establish connections. + */ + private LinkedList peersToConnect; + + //Whitelist and blacklist not yet implemented + + /** + * Loggers + */ + private Logger logParser; + private Logger logClient; + private Logger logServer; + /** + * Class to read and process the BGP4 update messages + */ + private UpdateDispatcher ud; + /** + * Executor. To execute the session server, to execute periodically the session client. + */ + private ScheduledThreadPoolExecutor executor; + + /** + * Function to configure the BGP4 Peer without specifying the file. It will read a file with name: BGP4Parameters.xml + */ + public void configure (){ + this.configure (null); + } + + /** + * Function to configure the BGP4 peer. + * It created the loggers, the executor, + * @param nameParametersFile Name of the Parameters File + */ + public void configure(String nameParametersFile){ + configure(nameParametersFile, null, null); + } + + /** + * Function to configure the BGP4 peer. + * It created the loggers, the executor, + * @param nameParametersFile Name of the Parameters File + * @param multiTEDB multidomain database + * @param iTEDBs internal domains database + */ + public void configure(String nameParametersFile, MultiDomainTEDB multiTEDB, Hashtable iTEDBs){ + //First of all, read the parameters + if (nameParametersFile != null){ + params=new BGP4Parameters(nameParametersFile); + }else{ + params=new BGP4Parameters(); + } + params.initialize(); + peersToConnect = params.getPeersToConnect(); + sendTopology = params.isSendTopology(); + saveTopology = params.isSaveTopologyDB(); + + //Initialize loggers +// FileHandler fh; +// FileHandler fh1; +// FileHandler fh2; +// try { +// fh=new FileHandler(params.getBGP4LogFile()); + logParser=LoggerFactory.getLogger("BGP4Parser"); +// logParser.addHandler(fh); +// logParser.setLevel(Level.ALL); +// fh1=new FileHandler(params.getBGP4LogFileClient()); + logClient=LoggerFactory.getLogger("BGP4Client"); +// logClient.addHandler(fh1); +// logClient.setLevel(Level.ALL); +// fh2=new FileHandler(params.getBGP4LogFileServer()); + logServer=LoggerFactory.getLogger("BGP4Peer"); +// logServer.addHandler(fh2); +// logServer.setLevel(Level.ALL); +// +// } catch (Exception e1) { +// e1.printStackTrace(); +// System.exit(1); +// } + logServer.info("Inizializing BGP4 Peer"); + if (iTEDBs!= null) intraTEDBs=iTEDBs; + else intraTEDBs=new Hashtable(); + + if (multiTEDB!= null) multiDomainTEDB = multiTEDB; + else multiDomainTEDB = new MDTEDB(); + + if (params.getLearnTopology().equals("fromXML")){ + //intraTEDBs=new Hashtable(); + //multiDomainTEDB = new MDTEDB(); + //intraTEDBs = FileTEDBUpdater.readMultipleDomainSimpleNetworks(params.getTopologyFile(), null, false,0,Integer.MAX_VALUE, false); + logParser.info("BGPIdentifier: "+params.getBGPIdentifier()); + intraTEDBs = FileTEDBUpdater.readMultipleDomainSimpleNetworks(params.getTopologyFile(), null, false,0,Integer.MAX_VALUE, false, params.getBGPIdentifier()); + + //multiDomainTEDB.initializeFromFile(params.getTopologyFile()); + multiDomainTEDB.initializeFromFile(params.getTopologyFile(), params.getBGPIdentifier()); + + } + // Create Thread executor + //FIXME: Actualizar n�mero de threads que se crean + executor = new ScheduledThreadPoolExecutor(20);//1 para el servidor, 1 para el que lanza y vigila los clientes + // Information about all the sessions of the PCE + if (params.isTest()) { + bgp4SessionsInformation = new BGP4SessionsInformation(params.isTest()); + } + else{ + bgp4SessionsInformation = new BGP4SessionsInformation(); + } + //Create the task to send the topology. It has to be created because you can start sending the topology in the management (wirting): send topology on. + sendTopologyTask = new SendTopology(); + saveTopologyDB= new SaveTopologyinDB(); + if (params.isSaveTopologyDB() == true){ + saveTopologyDB.configure(intraTEDBs, multiDomainTEDB, params.isSaveTopologyDB(), params.getTopologyDBIP().getHostAddress(), params.getTopologyDBport()); + } + + } + + public void setWriteMultiTEDB(MultiDomainTEDB multiTEDB) { + + this.multiDomainTEDB = multiTEDB; + saveTopologyDB.setMultiDomainTEDB(multiTEDB); + } + + /* + //new function from Andrea + public void setWriteMultiAndIntraTEDB(MultiDomainTEDB multiTEDB, Hashtable intraTEDBs) { + + this.multiDomainTEDB = multiTEDB; + this.intraTEDBs = intraTEDBs; + saveTopologyDB.setMultiDomainTEDB(multiTEDB); + saveTopologyDB.setIntraTEDBs(intraTEDBs); + } + */ + + + public void setReadDomainTEDB(DomainTEDB readDomainTEDB) { + //this.readDomainTEDB = readDomainTEDB; + //System.out.println("setReadDomain: readFomainTEDB().getDomainID()="+readDomainTEDB.getDomainID()); + //System.out.println("setReadDomain: readFomainTEDB="+readDomainTEDB.printTopology()); + if(readDomainTEDB.getDomainID() == null) + this.intraTEDBs.put("default", readDomainTEDB); + else + this.intraTEDBs.put(readDomainTEDB.getDomainID().toString(), readDomainTEDB); + } + public void createUpdateDispatcher(){ + //Updater dispatcher + ud = new UpdateDispatcher(multiDomainTEDB,intraTEDBs); + } + + /** + * Function to create the TEDBs of the peer. + * @param nameParametersFile Name of the Parameters File + */ + + + /** + * Start the session for the management of the BGP4. + */ + public void startManagementServer(){ + logServer.debug("Initializing Management Server"); + BGP4ManagementServer bms=new BGP4ManagementServer(params.getBGP4ManagementPort(),multiDomainTEDB,intraTEDBs,bgp4SessionsInformation,sendTopologyTask); + bms.start(); + } + /** + * Function which start the peer as a client which try to establish new sessions with peers. + * It starts a new process for each peer. + */ + public void startClient(){ + logClient.debug("Initializing Session Manager to connect as client"); + if (params.getBGPIdentifier() != null){ + Inet4Address BGPIdentifier=null; + try { + BGPIdentifier = (Inet4Address) InetAddress.getByName(params.getBGPIdentifier()); + } catch (UnknownHostException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + return; + } + for (int i =0;i."); + System.exit(1); + } + + } + /** + * Function which starts the peer (listening BGP4 protocol) as a server. + * It starts once the session server manager. + */ + public void startServer(){ + logServer.info("Initializing Session Manager to connect as server"); + Inet4Address localAddress=null; + Inet4Address BGPIdentifier=null; + if (params.getBGPIdentifier() != null){ + try { + localAddress = (Inet4Address) InetAddress.getByName(params.getLocalBGPAddress()); + BGPIdentifier = (Inet4Address) InetAddress.getByName(params.getBGPIdentifier()); + } catch (UnknownHostException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + return; + } + if (params.isTest()) { + bgp4SessionServer = new BGP4SessionServerManager(bgp4SessionsInformation, multiDomainTEDB, ud, params.getBGP4Port(), params.getHoldTime(), BGPIdentifier, params.getVersion(), params.getMyAutonomousSystem(), params.isNodelay(), localAddress, params.getKeepAliveTimer(), peersToConnect, params.isTest()); + executor.execute(bgp4SessionServer); + } + else { + bgp4SessionServer = new BGP4SessionServerManager(bgp4SessionsInformation, multiDomainTEDB, ud, params.getBGP4Port(), params.getHoldTime(), BGPIdentifier, params.getVersion(), params.getMyAutonomousSystem(), params.isNodelay(), localAddress, params.getKeepAliveTimer(), peersToConnect); + executor.execute(bgp4SessionServer); + } + + }else{ + logServer.error("ERROR: BGPIdentifier is not configured. To configure: XML file (BGP4Parameters.xml) ."); + System.exit(1); + } + } + + public void startSendTopology(){ + if (params.isTest()) { + sendTopologyTask.configure(intraTEDBs, bgp4SessionsInformation, sendTopology, params.getInstanceID(),params.isSendIntradomainLinks(),this.multiDomainTEDB, params.isTest()); + } + else{ + sendTopologyTask.configure(intraTEDBs, bgp4SessionsInformation, sendTopology, params.getInstanceID(),params.isSendIntradomainLinks(),this.multiDomainTEDB); + } + executor.scheduleWithFixedDelay(sendTopologyTask, 0,params.getSendTopoDelay(), TimeUnit.MILLISECONDS); + } + + + + public void startSaveTopology(){ + //FIXME: ADD param to configure the delay + executor.scheduleWithFixedDelay(saveTopologyDB, 0,5000, TimeUnit.MILLISECONDS); + } + + + public SaveTopologyinDB getSaveTopologyDB() { + return saveTopologyDB; + } + + public void setSaveTopologyDB(SaveTopologyinDB saveTopologyDB) { + this.saveTopologyDB = saveTopologyDB; + } + + public boolean isSaveTopology() { + return saveTopology; + } + + public void setSaveTopology(boolean saveTopology) { + this.saveTopology = saveTopology; + } + + public UpdateDispatcher getUd() { + return ud; + } + + public void setUd(UpdateDispatcher ud) { + this.ud = ud; + } + + public void addSimpleTEDB(SimpleTEDB simpleTEDB, String domainID) { + this.intraTEDBs.put(domainID, simpleTEDB); + } + + public void setSimpleTEDB(SimpleTEDB simpleTEDB) { + if(simpleTEDB.getDomainID() == null) + this.intraTEDBs.put("default", simpleTEDB); + else + this.intraTEDBs.put(simpleTEDB.getDomainID().toString(), simpleTEDB); + } + + + public void stopPeer(){ + executor.shutdown(); + } + public MultiDomainTEDB getMultiDomainTEDB() { + return multiDomainTEDB; + } + + + public Hashtable getIntraTEDBs() { + return intraTEDBs; + } + + public void setIntraTEDBs(Hashtable intraTEDBs) { + this.intraTEDBs = intraTEDBs; + } + + public void setMultiDomainTEDB(MultiDomainTEDB multiDomainTEDB) { + this.multiDomainTEDB = multiDomainTEDB; + } + + + + + +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/BGPPeerMain.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/BGPPeerMain.java new file mode 100644 index 0000000000000000000000000000000000000000..97e2702f5485ca848d383e5939a330137c49711b --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/BGPPeerMain.java @@ -0,0 +1,37 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.bgp4Peer.peer; + +public class BGPPeerMain { + + /** + * @param args Command line arguments. First argument, config file. + */ + public static void main(String[] args) { + BGPPeer bgpPeer = new BGPPeer(); + if (args.length != 0) + bgpPeer.configure(args[0]); + else + bgpPeer.configure(); + + //bgpPeer.createTEDB("hola"); //did it in configure + bgpPeer.createUpdateDispatcher(); + bgpPeer.startClient(); + bgpPeer.startServer(); + bgpPeer.startSaveTopology(); + bgpPeer.startManagementServer(); + bgpPeer.startSendTopology(); + } +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/SaveTopologyinDB.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/SaveTopologyinDB.java new file mode 100644 index 0000000000000000000000000000000000000000..bd27bb87ab0d193f4f7c7de0720aac1cdff1e61c --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/SaveTopologyinDB.java @@ -0,0 +1,300 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.bgp4Peer.peer; + +import java.net.Inet4Address; +import java.util.Enumeration; +import java.util.Hashtable; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.Set; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import eu.teraflow.tid.tedb.DatabaseControlSimplifiedLSA; +import eu.teraflow.tid.tedb.DomainTEDB; +import eu.teraflow.tid.tedb.InterDomainEdge; +import eu.teraflow.tid.tedb.IntraDomainEdge; +import eu.teraflow.tid.tedb.MultiDomainTEDB; +import eu.teraflow.tid.tedb.TEDB; +import eu.teraflow.tid.tedb.TE_Information; +import redis.clients.jedis.Jedis; + +/** + * Class to save periodically the topology. It sends the topology to the active BGP4 sessions. + * @author pac + * + */ +public class SaveTopologyinDB implements Runnable { + + //FIXME: Configure from file + private Jedis jedis; + private String host="localhost"; + private int port=6379; + + //TEDBs + private Hashtable intraTEDBs; + + // Multi-domain TEDB to redistribute Multi-domain Topology + private MultiDomainTEDB multiDomainTEDB; + + private boolean writeTopology; + + private Logger log; + + + public SaveTopologyinDB(){ + log = LoggerFactory.getLogger("BGP4Peer"); + jedis = new Jedis(host,port); + } + + public void configure( Hashtable intraTEDBs,MultiDomainTEDB multiTED, boolean writeTopology, String host, int port){ + this.intraTEDBs=intraTEDBs; + this.writeTopology=writeTopology; + this.multiDomainTEDB=multiTED; + //rdh.setHost(host); + //rdh.setPort(port); + + + if (writeTopology){ + jedis = new Jedis(host,port); + jedis.connect(); + } + } + + /** + * Function to send the topology database. + */ + + + public void run(){ + try { + if (writeTopology){ + log.info("Going to save Topology in Redis DB"); + if (jedis==null){ + jedis = new Jedis(host,port); + jedis.connect(); + }else if (jedis.isConnected()==false){ + jedis.connect(); + } + if (multiDomainTEDB!=null){ + log.info("save Multi-Domain TEDB"); + writeLinkDBInter( multiDomainTEDB.getInterDomainLinks()); + } + else { + log.info("save form TEDB"); + Enumeration iter = intraTEDBs.elements(); + while (iter.hasMoreElements()){ + writeLinkDBInter( iter.nextElement().getInterDomainLinks()); + } + } + + log.info("sendIntraDomainLinks activated"); + Enumeration iter = intraTEDBs.keys(); + while (iter.hasMoreElements()){ + String domainID = iter.nextElement(); + log.info("Sending TED from domain "+domainID); + DomainTEDB ted=(DomainTEDB)intraTEDBs.get(domainID); + //writeLinkDB( ted.getNetworkGraph().edgeSet(),domainID); + writeLinkDB(ted.getIntraDomainLinks(),domainID); + } + + + } + }catch (Exception e) { + e.printStackTrace(); + log.error("PROBLEM Writing TOPOLOGY: "+e.toString()); + } + + } + + /** + * This function write a BGP4 update message in Data Base for each link in the list + * @param intradomainLinks + */ + private void writeLinkDB(Set intradomainLinks, String domainID){ + + Iterator edgeIt = intradomainLinks.iterator(); + + while (edgeIt.hasNext()){ + + IntraDomainEdge edge = edgeIt.next(); + + DatabaseControlSimplifiedLSA dcsl =createSimplifiedLSA(edge); + String jsonLSA = dcsl.logJsonSimplifiedLSA(); + + if (jedis == null) + log.info("JEDIS IS NULL"); + + String ret = jedis.set("LSA:"+dcsl.getAdvertisingRouter().getHostAddress()+":"+dcsl.getLinkId().getHostAddress(), jsonLSA); + } + + } + + private DatabaseControlSimplifiedLSA createSimplifiedLSA(IntraDomainEdge edge){ + DatabaseControlSimplifiedLSA dcsl = new DatabaseControlSimplifiedLSA(); + + //Inet4Address source = (Inet4Address)edge.getSrc_router_id(); + //Inet4Address dst = (Inet4Address)edge.getDst_router_id(); + + Inet4Address source = (Inet4Address)edge.getSource(); + dcsl.setAdvertisingRouter(source); + Inet4Address dst = (Inet4Address)edge.getTarget(); + dcsl.setLinkId(dst); + + TE_Information te_info = ((IntraDomainEdge) edge).getTE_info(); + + if (te_info != null){ + + if (te_info.getLinkLocalRemoteIdentifiers() != null){ + dcsl.linkLocalIdentifier = te_info.getLinkLocalRemoteIdentifiers().getLinkLocalIdentifier(); + } + + if (te_info.getLinkLocalRemoteIdentifiers() != null){ + dcsl.linkRemoteIdentifier = te_info.getLinkLocalRemoteIdentifiers().getLinkRemoteIdentifier(); + } + + if (te_info.getMaximumBandwidth() != null) { + dcsl.maximumBandwidth = te_info.getMaximumBandwidth().getMaximumBandwidth(); + } + + if (te_info.getUnreservedBandwidth() != null) { + dcsl.unreservedBandwidth = te_info.getUnreservedBandwidth().getUnreservedBandwidth()[0]; + } + + if (te_info.getMaximumReservableBandwidth() != null) + dcsl.maximumReservableBandwidth = te_info.getMaximumReservableBandwidth().getMaximumReservableBandwidth(); + + String ret = ""; + + if (te_info.getAvailableLabels() != null){ + + if (te_info.getAvailableLabels().getLabelSet() != null){ + + ret=ret+" Bitmap: {"; + + for (int i=0;i interdomainLinks){ + + Iterator edgeIt = interdomainLinks.iterator(); + + while (edgeIt.hasNext()){ + + InterDomainEdge edge = edgeIt.next(); + + DatabaseControlSimplifiedLSA dcsl =createSimplifiedLSAInter(edge); + String jsonLSA = dcsl.logJsonSimplifiedLSA(); + //rdh.write("LSA:"+dcsl.getAdvertisingRouter().getHostAddress()+":"+dcsl.getLinkId().getHostAddress(),jsonLSA); + String ret = jedis.set("LSA:"+dcsl.getAdvertisingRouter().getHostAddress()+":"+dcsl.getLinkId().getHostAddress(), jsonLSA); + } + + } + + private DatabaseControlSimplifiedLSA createSimplifiedLSAInter(InterDomainEdge edge){ + DatabaseControlSimplifiedLSA dcsl = new DatabaseControlSimplifiedLSA(); + + //Inet4Address source = (Inet4Address)edge.getSrc_router_id(); + //Inet4Address dst = (Inet4Address)edge.getDst_router_id(); + + Inet4Address source = (Inet4Address)edge.getSource(); + dcsl.setAdvertisingRouter(source); + Inet4Address dst = (Inet4Address)edge.getTarget(); + dcsl.setLinkId(dst); + + TE_Information te_info = ((InterDomainEdge) edge).getTE_info(); + + if (te_info != null){ + + if (te_info.getLinkLocalRemoteIdentifiers() != null){ + dcsl.linkLocalIdentifier = te_info.getLinkLocalRemoteIdentifiers().getLinkLocalIdentifier(); + } + + if (te_info.getLinkLocalRemoteIdentifiers() != null){ + dcsl.linkRemoteIdentifier = te_info.getLinkLocalRemoteIdentifiers().getLinkRemoteIdentifier(); + } + + if (te_info.getMaximumBandwidth() != null) { + dcsl.maximumBandwidth = te_info.getMaximumBandwidth().getMaximumBandwidth(); + } + + if (te_info.getUnreservedBandwidth() != null) { + dcsl.unreservedBandwidth = te_info.getUnreservedBandwidth().getUnreservedBandwidth()[0]; + } + + if (te_info.getMaximumReservableBandwidth() != null) + dcsl.maximumReservableBandwidth = te_info.getMaximumReservableBandwidth().getMaximumReservableBandwidth(); + + String ret = ""; + + if (te_info.getAvailableLabels() != null){ + + if (te_info.getAvailableLabels().getLabelSet() != null){ + + ret=ret+" Bitmap: {"; + + for (int i=0;i intraTEDBs; + + // Multi-domain TEDB to redistribute Multi-domain Topology + private MultiDomainTEDB multiDomainTEDB; + + private boolean sendTopology; + private boolean isTest=false; + private BGP4SessionsInformation bgp4SessionsInformation; + private Logger log; + private int instanceId=1; + private boolean sendIntraDomainLinks=false; + + private boolean send4AS=false; + + + + + private Inet4Address localBGPLSIdentifer; + private Inet4Address localAreaID; + + public SendTopology(){ + log = LoggerFactory.getLogger("BGP4Peer"); + } + + public void configure( Hashtable intraTEDBs,BGP4SessionsInformation bgp4SessionsInformation,boolean sendTopology,int instanceId,boolean sendIntraDomainLinks, MultiDomainTEDB multiTED){ + this.intraTEDBs=intraTEDBs; + this.bgp4SessionsInformation=bgp4SessionsInformation; + this.sendTopology= sendTopology; + this.instanceId = instanceId; + this.sendIntraDomainLinks=sendIntraDomainLinks; + this.multiDomainTEDB=multiTED; + try { + this.localAreaID=(Inet4Address)Inet4Address.getByName("0.0.0.0"); + this.localBGPLSIdentifer=(Inet4Address)Inet4Address.getByName("1.1.1.1"); + } catch (UnknownHostException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + } + + + public void configure( Hashtable intraTEDBs,BGP4SessionsInformation bgp4SessionsInformation,boolean sendTopology,int instanceId,boolean sendIntraDomainLinks, MultiDomainTEDB multiTED, boolean test){ + this.intraTEDBs=intraTEDBs; + this.bgp4SessionsInformation=bgp4SessionsInformation; + this.sendTopology= sendTopology; + this.instanceId = instanceId; + this.sendIntraDomainLinks=sendIntraDomainLinks; + this.multiDomainTEDB=multiTED; + this.isTest=test; + try { + this.localAreaID=(Inet4Address)Inet4Address.getByName("0.0.0.0"); + this.localBGPLSIdentifer=(Inet4Address)Inet4Address.getByName("1.1.1.1"); + } catch (UnknownHostException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + } + + /** + * Function to send the topology database. + */ + + + public void run(){ + try { + if (sendTopology){ + if (!(bgp4SessionsInformation.getSessionList().isEmpty())){ + if (multiDomainTEDB!=null){ + log.debug("Sending Multi-Domain TEDB"); + sendLinkNLRI( multiDomainTEDB.getInterDomainLinks()); + } + else { + log.debug("Sending from TEDB"); + Enumeration iter = intraTEDBs.elements(); + while (iter.hasMoreElements()){ + sendLinkNLRI( iter.nextElement().getInterDomainLinks()); + } + } + + if (sendIntraDomainLinks){//Intradomain Links + log.debug("sendIntraDomainLinks activated"); + Enumeration iter = intraTEDBs.keys(); + while (iter.hasMoreElements()){ + String domainID = iter.nextElement(); + //Andrea + log.debug("Sending TED from domain "+domainID); + + TEDB ted=intraTEDBs.get(domainID); + if (ted instanceof DomainTEDB) { + sendLinkNLRI( ((DomainTEDB)ted).getIntraDomainLinks(),domainID); + //log.info(" XXXX ted.getNodeTable():"+ted.getNodeTable()); + sendNodeNLRI( ((DomainTEDB)ted).getIntraDomainLinksvertexSet(), ((DomainTEDB)ted).getNodeTable()); + if (((DomainTEDB)ted).getItResources()!=null){ + sendITNodeNLRI( domainID, ((DomainTEDB)ted).getItResources()); + } + + } + + + + } + + } + + } + } + }catch (Exception e) { + e.printStackTrace(); + log.error("PROBLEM SENDING TOPOLOGY: "+e.toString()); + } + + } + /** + * This function sends a BGP4 update message (encoded in a NodeNLRI) for each node in the set + * @param vertexIt + */ + private void sendNodeNLRI(Set vertexSet, Hashtable NodeTable){ + Iterator vertexIt = vertexSet.iterator(); + //Enviamos primero los nodos. Un Node NLRI por cada nodo. + while (vertexIt.hasNext()){ + Inet4Address node=null; + Object v = vertexIt.next(); + if( v instanceof eu.teraflow.tid.tedb.elements.Node){ + try { + node = (Inet4Address)Inet4Address.getByName(((eu.teraflow.tid.tedb.elements.Node)v).getAddress().get(0)); + } catch (UnknownHostException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + }else{ + node = (Inet4Address)v; + } + + + //log.info(" XXXX node: "+ node); + Node_Info node_info = NodeTable.get(node); + //log.info(" XXXX node_info: "+ node_info); + if (node_info!=null){ + log.debug("Sending node: ("+node+")"); + //Mandamos NodeNLRI + BGP4Update update = createMsgUpdateNodeNLRI(node_info); + sendMessage(update); + }else { + log.debug("Node "+node+ " HAS NO node_info in NodeTable"); + } + + + } + } + + /** + * This function sends a BGP4 update message (encoded in a ITNodeNLRI) for each node in the set + * @param vertexIt + */ + + + private void sendITNodeNLRI(String domainID, IT_Resources itResources){ + //Andrea + log.debug("Sending IT REsources"); + BGP4Update update = createMsgUpdateITNodeNLRI(domainID, itResources); + sendMessage(update); +// Iterator vertexIt = vertexSet.iterator(); +// //Enviamos primero los nodos. Un Node NLRI por cada nodo. +// while (vertexIt.hasNext()){ +// Inet4Address node = (Inet4Address)vertexIt.next(); +// //log.info(" XXXX node: "+ node); +// Node_Info node_info = NodeTable.get(node); +// //log.info(" XXXX node_info: "+ node_info); +// if (node_info!=null){ +// log.debug("Sending node: ("+node+")"); +// //Mandamos NodeNLRI +// BGP4Update update = createMsgUpdateNodeNLRI(node_info); +// sendMessage(update); +// }else { +// log.error("Node "+node+ " HAS NO node_info in NodeTable"); +// } +// +// +// } + } + + /** + * This function sends a BGP4 update message (encoded in a LinkNLRI) for each link in the list + * @param interdomainLinks + */ + private void sendLinkNLRI(LinkedList interdomainLinks){ + if (true){ + int lanID = 1; ///INVENTADOO + ArrayList addressList = new ArrayList(); + Iterator edgeIt = interdomainLinks.iterator(); + while (edgeIt.hasNext()){ + + InterDomainEdge edge = edgeIt.next(); + Inet4Address source = (Inet4Address)edge.getSrc_router_id(); + Inet4Address dst = (Inet4Address)edge.getDst_router_id(); + log.debug("Sending ID edge: ("+source.toString() +":"+((InterDomainEdge) edge).getSrc_if_id()+","+dst.toString()+")"); + addressList = new ArrayList(); + addressList.add(0,source); + addressList.add(1,dst); + + + + //Link Local Remote Identifiers + ArrayList localRemoteIfList =null; + localRemoteIfList= new ArrayList (); + localRemoteIfList.add(0,((InterDomainEdge) edge).getSrc_if_id());//te_info.getLinkLocalRemoteIdentifiers().getLinkLocalIdentifier()); + localRemoteIfList.add(1,((InterDomainEdge) edge).getDst_if_id());//te_info.getLinkLocalRemoteIdentifiers().getLinkRemoteIdentifier()); + + + ArrayList domainList = new ArrayList(2); + //FIXME: chequear + TE_Information te_info = ((InterDomainEdge) edge).getTE_info(); + + domainList.add(((Inet4Address)edge.getDomain_src_router()).getHostAddress().toString()); + //System.out.println("SRC Domain is "+((Inet4Address)edge.getDomain_src_router()).getHostAddress().toString() ); + domainList.add( ((Inet4Address)edge.getDomain_dst_router()).getHostAddress().toString()); + log.debug("SRC Domain is "+(Inet4Address)edge.getDomain_dst_router()); + BGP4Update update = createMsgUpdateLinkNLRI(addressList,localRemoteIfList, lanID, domainList, false, te_info); + update.setLearntFrom(edge.getLearntFrom()); + log.debug("Update message Created"); + sendMessage(update); + } + } + + } + /** + * This function sends a BGP4 update message (encoded in a LinkNLRI) for each link in the set + * @param edgeIt + */ + private void sendLinkNLRI(Set edgeSet, String domainID){ + int lanID = 1; ///INVENTADOO + ArrayList addressList = new ArrayList(); + Iterator edgeIt = edgeSet.iterator(); + while (edgeIt.hasNext()){ + + IntraDomainEdge edge = edgeIt.next(); + Inet4Address source=null; + if(edge.getSource() instanceof eu.teraflow.tid.tedb.elements.Node){ + try { + source=(Inet4Address)Inet4Address.getByName(((eu.teraflow.tid.tedb.elements.Node)edge.getSource()).getAddress().get(0)); + } catch (UnknownHostException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + }else{ + source = (Inet4Address)edge.getSource(); + } + + Inet4Address dst=null; + if(edge.getTarget() instanceof eu.teraflow.tid.tedb.elements.Node){ + try { + dst=(Inet4Address)Inet4Address.getByName(((eu.teraflow.tid.tedb.elements.Node)edge.getTarget()).getAddress().get(0)); + } catch (UnknownHostException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + }else{ + dst = (Inet4Address)edge.getTarget(); + } + log.debug("Sending: ("+source.toString() +","+dst.toString()+")"); + addressList = new ArrayList(); + addressList.add(0,source); + addressList.add(1,dst); + //Link Local Remote Identifiers + ArrayList localRemoteIfList =null; + localRemoteIfList= new ArrayList (); + localRemoteIfList.add(0,((IntraDomainEdge) edge).getSrc_if_id());//te_info.getLinkLocalRemoteIdentifiers().getLinkLocalIdentifier()); + localRemoteIfList.add(1,((IntraDomainEdge) edge).getDst_if_id());//te_info.getLinkLocalRemoteIdentifiers().getLinkRemoteIdentifier()); + + //MPLS + float maximumBandwidth = 0; + float[] unreservedBandwidth = null; + float maximumReservableBandwidth = 0; + int undirLinkDelay = 0; + int metric = 0; + long te_metric =0; + + //GMPLS + AvailableLabels availableLabels = null; + MF_OTPAttribTLV mfOTP = null; + + + TE_Information te_info = ((IntraDomainEdge) edge).getTE_info(); + + ArrayList domainList = new ArrayList(2); + domainList.add(domainID); + domainList.add(domainID); + BGP4Update update = createMsgUpdateLinkNLRI(addressList,localRemoteIfList, lanID, domainList, true, te_info); + update.setLearntFrom(edge.getLearntFrom()); + sendMessage(update); + + } + + } + /** + * Function to send a BGP4 update message to the connected peers. + * @param update + */ + private void sendMessage (BGP4Update update){ + + Enumeration sessions = bgp4SessionsInformation.getSessionList().elements(); + + log.debug("Sending a BGP4 update message:"+update.toString()); + while (sessions.hasMoreElements()){ + GenericBGP4Session session = sessions.nextElement(); + if (session==null) { + log.error("SESSION NULL"); + }else { + if (session.getSendTo()) { + String destination = session.getRemotePeerIP().getHostAddress(); + log.debug("BGP4 Update learnt from:" + update.getLearntFrom()); + if (isTest){ + log.debug("Sending BGP4 update to:" + destination+" with no check on the ID since it is test"); + session.sendBGP4Message(update); + } + else{ + try { + if ((update.getLearntFrom() != null) && (update.getLearntFrom().contains("/"))) { + //log.info(update.getLearntFrom().substring(1)); + if (!destination.equals(update.getLearntFrom().substring(1))) { + //log.info("id da getLearnt "+ update.getLearntFrom()); + log.debug("Sending update to destination " + destination + " for info learnt from " + update.getLearntFrom().substring(1)); + log.debug("Sending BGP4 update to:" + destination); + session.sendBGP4Message(update); + + } else + log.debug("destination " + destination + " and source of information " + update.getLearntFrom().substring(1) + " are equal"); + + + } + else{ + if (!destination.equals(update.getLearntFrom())) { + //log.info("id da getLearnt "+ update.getLearntFrom()); + log.debug("Sending update to destination " + destination + " for info learnt from " + update.getLearntFrom()); + log.debug("Sending BGP4 update to:" + destination); + session.sendBGP4Message(update); + } else + log.debug("destination " + destination + " and source of information " + update.getLearntFrom() + " are equal"); + } + } + catch (Exception e){ + e.printStackTrace(); + } + } + } + } + + } + } + /** + * This function create a BGP4 Message with NodeNLRI field + + * @param node_info + */ + private BGP4Update createMsgUpdateNodeNLRI(Node_Info node_info){ + try{ + + + BGP4Update update= new BGP4Update(); + //Path Attributes + ArrayList pathAttributes = update.getPathAttributes(); + //Origin + OriginAttribute or = new OriginAttribute(); + or.setValue(PathAttributesTypeCode.PATH_ATTRIBUTE_ORIGIN_IGP); + pathAttributes.add(or); + //AS_PATH + if (send4AS==true) { + AS_Path_Attribute as_path = new AS_Path_Attribute(); + AS_Path_Segment as_path_seg = new AS_Path_Segment(); + long[] segs = new long[1]; + segs[0] = 65522; + as_path_seg.set4Segments(segs); + as_path.getAsPathSegments().add(as_path_seg); + pathAttributes.add(as_path); + } + else { + AS_Path_Attribute as_path = new AS_Path_Attribute(); + AS_Path_Segment as_path_seg = new AS_Path_Segment(); + int[] segs = new int[1]; + segs[0] = 65522; + as_path_seg.setSegments(segs); + as_path.getAsPathSegments().add(as_path_seg); + pathAttributes.add(as_path); + } + + //Node Attribute + + LinkStateAttribute linkStateAttribute = new LinkStateAttribute(); + boolean linkStateNeeded=false; + + if (node_info.getSid()!=0){ + int sid = node_info.getSid(); + SidLabelNodeAttribTLV sidLabelTLV = new SidLabelNodeAttribTLV(); + sidLabelTLV.setSid(sid); + linkStateAttribute.setSidLabelTLV(sidLabelTLV); + linkStateNeeded=true; + } + + if (linkStateNeeded){ + log.debug("Node Attribute added...."); + pathAttributes.add(linkStateAttribute); + } + + //NLRI + NodeNLRI nodeNLRI = new NodeNLRI(); + nodeNLRI.setProtocolID(ProtocolIDCodes.Unknown_Protocol_ID); + nodeNLRI.setRoutingUniverseIdentifier(identifier); + LocalNodeDescriptorsTLV localNodeDescriptors = new LocalNodeDescriptorsTLV(); + + //igp router id + if(node_info.getIpv4Address()!=null){ + IGPRouterIDNodeDescriptorSubTLV igpRouterIDLNSubTLV = new IGPRouterIDNodeDescriptorSubTLV(); + igpRouterIDLNSubTLV.setIpv4AddressOSPF(node_info.getIpv4Address()); + igpRouterIDLNSubTLV.setIGP_router_id_type(IGPRouterIDNodeDescriptorSubTLV.IGP_ROUTER_ID_TYPE_OSPF_NON_PSEUDO); + localNodeDescriptors.setIGPRouterID(igpRouterIDLNSubTLV); + + } + + //as number + if(node_info.getAs_number()!=null){ + AutonomousSystemNodeDescriptorSubTLV asNodeDescrSubTLV = new AutonomousSystemNodeDescriptorSubTLV(); + asNodeDescrSubTLV.setAS_ID(node_info.getAs_number()); + localNodeDescriptors.setAutonomousSystemSubTLV(asNodeDescrSubTLV); + } + //Complete Dummy TLVs + BGPLSIdentifierNodeDescriptorSubTLV bGPLSIDSubTLV =new BGPLSIdentifierNodeDescriptorSubTLV(); + bGPLSIDSubTLV.setBGPLS_ID(this.localBGPLSIdentifer); + localNodeDescriptors.setBGPLSIDSubTLV(bGPLSIDSubTLV); + AreaIDNodeDescriptorSubTLV areaID = new AreaIDNodeDescriptorSubTLV(); + areaID.setAREA_ID(this.localAreaID); + localNodeDescriptors.setAreaID(areaID); + + nodeNLRI.setLocalNodeDescriptors(localNodeDescriptors); + BGP_LS_MP_Reach_Attribute ra= new BGP_LS_MP_Reach_Attribute(); + ra.setLsNLRI(nodeNLRI); + pathAttributes.add(ra); + update.setLearntFrom(node_info.getLearntFrom()); + return update; + } catch (Exception e) { + e.printStackTrace(); + return null; + } + + } + + /** + * This function create a BGP4 Message with NodeNLRI field + * @param addressList + * @param node_info + */ + private BGP4Update createMsgUpdateITNodeNLRI(String domainID, IT_Resources itResources){ + try{ + + BGP4Update update= new BGP4Update(); + //Path Attributes + ArrayList pathAttributes = update.getPathAttributes(); + //Origin + OriginAttribute or = new OriginAttribute(); + or.setValue(PathAttributesTypeCode.PATH_ATTRIBUTE_ORIGIN_IGP); + pathAttributes.add(or); + + //AS_PATH + if (send4AS==true) { + AS_Path_Attribute as_path = new AS_Path_Attribute(); + AS_Path_Segment as_path_seg = new AS_Path_Segment(); + long[] segs = new long[1]; + segs[0] = 65522; + as_path_seg.set4Segments(segs); + as_path.getAsPathSegments().add(as_path_seg); + pathAttributes.add(as_path); + } + else { + AS_Path_Attribute as_path = new AS_Path_Attribute(); + AS_Path_Segment as_path_seg = new AS_Path_Segment(); + int[] segs = new int[1]; + segs[0] = 65522; + as_path_seg.setSegments(segs); + as_path.getAsPathSegments().add(as_path_seg); + pathAttributes.add(as_path); + } + + + + + //NLRI + ITNodeNLRI itNodeNLRI = new ITNodeNLRI(); + itNodeNLRI.setNodeId(domainID); + itNodeNLRI.setControllerIT(itResources.getControllerIT()); + itNodeNLRI.setCpu(itResources.getCpu()); + itNodeNLRI.setMem(itResources.getMem()); + itNodeNLRI.setStorage(itResources.getStorage()); + update.setLearntFrom(itResources.getLearntFrom()); + log.info("Creating IT Update related to domain "+domainID+" learnt from "+itResources.getLearntFrom()); + LocalNodeDescriptorsTLV localNodeDescriptors = new LocalNodeDescriptorsTLV(); + + //Complete Dummy TLVs + BGPLSIdentifierNodeDescriptorSubTLV bGPLSIDSubTLV =new BGPLSIdentifierNodeDescriptorSubTLV(); + bGPLSIDSubTLV.setBGPLS_ID(this.localBGPLSIdentifer); + localNodeDescriptors.setBGPLSIDSubTLV(bGPLSIDSubTLV); + AreaIDNodeDescriptorSubTLV areaID = new AreaIDNodeDescriptorSubTLV(); + areaID.setAREA_ID(this.localAreaID); + localNodeDescriptors.setAreaID(areaID); + + //itNodeNLRI.setLocalNodeDescriptors(localNodeDescriptors); + BGP_LS_MP_Reach_Attribute ra= new BGP_LS_MP_Reach_Attribute(); + ra.setLsNLRI(itNodeNLRI); + pathAttributes.add(ra); + return update; + + } catch (Exception e) { + e.printStackTrace(); + return null; + } + + } + + /** + * Function to create a BGP4 update message with a link NRLI field. To send the links. + * + * @param addressList + * @param addressInterfaceList + * @param localRemoteIfList + * @param lanID + * @param maximumBandwidth + * @param unreservedBandwidth + * @param maximumReservableBandwidth + * @param availableLabels + * @param metric + * @param domainList + * @param intradomain + * @param linkDelay + */ + private BGP4Update createMsgUpdateLinkNLRI(ArrayList addressList,ArrayList localRemoteIfList,int lanID, ArrayList domainList, boolean intradomain, TE_Information te_info ){ + BGP4Update update= new BGP4Update(); + //1. Path Attributes + ArrayList pathAttributes = update.getPathAttributes(); + //1.1. Origin + OriginAttribute or = new OriginAttribute(); + if (intradomain) + or.setValue(PathAttributesTypeCode.PATH_ATTRIBUTE_ORIGIN_IGP); + else + or.setValue(PathAttributesTypeCode.PATH_ATTRIBUTE_ORIGIN_EGP); + pathAttributes.add(or); + ///Andreaaaaa + //update.setLearntFrom("192.168.0.1"); + //1.2. AS-PATH + + if (send4AS==true) { + AS_Path_Attribute as_path = new AS_Path_Attribute(); + AS_Path_Segment as_path_seg = new AS_Path_Segment(); + long[] segs = new long[1]; + segs[0] = 65522; + as_path_seg.set4Segments(segs); + as_path.getAsPathSegments().add(as_path_seg); + pathAttributes.add(as_path); + } + else { + AS_Path_Attribute as_path = new AS_Path_Attribute(); + AS_Path_Segment as_path_seg = new AS_Path_Segment(); + int[] segs = new int[1]; + segs[0] = 65522; + as_path_seg.setSegments(segs); + as_path.getAsPathSegments().add(as_path_seg); + pathAttributes.add(as_path); + } + + + //1.2. LINK-STATE + //MPLS + float maximumBandwidth = 0; + float[] unreservedBandwidth = null; + float maximumReservableBandwidth = 0; + + //GMPLS + AvailableLabels availableLabels = null; + MF_OTPAttribTLV mfOTP = null; + + int metric = 0; + int te_metric = 0; + + + if (te_info != null){ + if (te_info.getLinkLocalRemoteIdentifiers() != null){ + + } + //MPLS + if (te_info.getMaximumBandwidth() != null) { + maximumBandwidth = te_info.getMaximumBandwidth().getMaximumBandwidth(); + } + if (te_info.getUnreservedBandwidth() != null) + unreservedBandwidth = te_info.getUnreservedBandwidth().getUnreservedBandwidth(); + if (te_info.getMaximumReservableBandwidth() != null) + maximumReservableBandwidth = te_info.getMaximumReservableBandwidth().getMaximumReservableBandwidth(); + //GMPLS + if (te_info.getAvailableLabels() != null) + availableLabels = te_info.getAvailableLabels(); + if(te_info.getDefaultTEMetric()!=null){ + metric = (int) te_info.getDefaultTEMetric().getLinkMetric(); + log.debug("Metric en el metodo sendLinkNLRI es: " + metric); + } + if(te_info.getTrafficEngineeringMetric()!=null){ + te_metric = (int) te_info.getTrafficEngineeringMetric().getLinkMetric() ; + log.debug("Metric en el metodo sendLinkNLRI es: " + metric); + } + if(te_info.getMfOTF()!=null){ + mfOTP = te_info.getMfOTF(); + } + + }else{ + log.debug("TE_Info es null"); + } + + + boolean linkStateNeeded = false; + LinkStateAttribute linkStateAttribute = new LinkStateAttribute(); + //1.2.1. MaxReservableBandwidth + if (maximumReservableBandwidth != 0){ + MaxReservableBandwidthLinkAttribTLV maxReservableBandwidthTLV = new MaxReservableBandwidthLinkAttribTLV(); + maxReservableBandwidthTLV.setMaximumReservableBandwidth(maximumReservableBandwidth); + linkStateAttribute.setMaxReservableBandwidthTLV(maxReservableBandwidthTLV); + linkStateNeeded=true; + } + //1.2.2. maxBandwidth + if (maximumBandwidth != 0){ + MaximumLinkBandwidthLinkAttribTLV maximumLinkBandwidthTLV = new MaximumLinkBandwidthLinkAttribTLV(); + maximumLinkBandwidthTLV.setMaximumBandwidth(maximumBandwidth); + linkStateAttribute.setMaximumLinkBandwidthTLV(maximumLinkBandwidthTLV); + linkStateNeeded=true; + } + //1.2.3. unreservedBandwidth + if (unreservedBandwidth != null){ + UnreservedBandwidthLinkAttribTLV unreservedBandwidthTLV = new UnreservedBandwidthLinkAttribTLV(); + unreservedBandwidthTLV.setUnreservedBandwidth(unreservedBandwidth); + linkStateAttribute.setUnreservedBandwidthTLV(unreservedBandwidthTLV); + linkStateNeeded=true; + } + //1.2.4. AvailableLabels + if (availableLabels != null){ + log.debug("Available labels fields: "+availableLabels.getLabelSet().getNumLabels()); + AvailableLabels al = new AvailableLabels(); + + BitmapLabelSet bl = new BitmapLabelSet(); + bl.setBytesBitmap(((BitmapLabelSet)availableLabels.getLabelSet()).getBytesBitMap()); + bl.setNumLabels(availableLabels.getLabelSet().getNumLabels()); + bl.setDwdmWavelengthLabel(((BitmapLabelSet)availableLabels.getLabelSet()).getDwdmWavelengthLabel()); + + bl.setBytesBitmapReserved(((BitmapLabelSet)availableLabels.getLabelSet()).getBytesBitmapReserved()); + + al.setLabelSet(bl); + + log.debug("Campo BytesBitmap: "+Integer.toHexString(((int)bl.getBytesBitMap()[0])&0xFF)); + log.debug("Campo DwdmWavelengthLabel: "+bl.getDwdmWavelengthLabel()); + if (bl.getBytesBitmapReserved()!=null){ + log.debug("Campo BytesBitmapReserved: "+bl.getBytesBitmapReserved()[0]); + } + linkStateAttribute.setAvailableLabels(al); + + linkStateNeeded=true; + } + //1.2.5 metric +// if (metric != 0){ +// DefaultTEMetricLinkAttribTLV defaultMetric = new DefaultTEMetricLinkAttribTLV(); +// defaultMetric.setLinkMetric(metric); +// log.info("Metric en el metodo createMsgUpdateLinkNLRI es: " + metric); +// linkStateAttribute.setTEMetricTLV(defaultMetric); +// linkStateNeeded=true; +// } + + if (te_metric != 0){ + DefaultTEMetricLinkAttribTLV defaultMetric = new DefaultTEMetricLinkAttribTLV(); + //defaultMetric.setLinkMetric(metric); + defaultMetric.setLinkMetric(te_metric); + log.debug("Metric en el metodo createMsgUpdateLinkNLRI es: " + te_metric); + linkStateAttribute.setTEMetricTLV(defaultMetric); + linkStateNeeded=true; + } + + //1.2.6 MF_OPT + if (mfOTP != null){ + MF_OTPAttribTLV mfOTPTLV = mfOTP.duplicate(); + log.debug("SENDING MFOTP OSCAR"); + linkStateAttribute.setMF_OTP_ATLV(mfOTPTLV); + linkStateNeeded=true; + } + + if (linkStateNeeded){ + pathAttributes.add(linkStateAttribute); + } + //2. NLRI + LinkNLRI linkNLRI = new LinkNLRI(); + linkNLRI.setProtocolID(ProtocolIDCodes.Unknown_Protocol_ID); + linkNLRI.setIdentifier(instanceId); + + //2.1. Local Y Remote Descriptors + LocalNodeDescriptorsTLV localNodeDescriptors = new LocalNodeDescriptorsTLV(); + RemoteNodeDescriptorsTLV remoteNodeDescriptors = new RemoteNodeDescriptorsTLV(); + + //2.1.1. IPv4 + IGPRouterIDNodeDescriptorSubTLV igpRouterIDLNSubTLV = new IGPRouterIDNodeDescriptorSubTLV(); + igpRouterIDLNSubTLV.setIpv4AddressOSPF(addressList.get(0)); + igpRouterIDLNSubTLV.setIGP_router_id_type(IGPRouterIDNodeDescriptorSubTLV.IGP_ROUTER_ID_TYPE_OSPF_NON_PSEUDO); + localNodeDescriptors.setIGPRouterID(igpRouterIDLNSubTLV); + //Complete Dummy TLVs + BGPLSIdentifierNodeDescriptorSubTLV bGPLSIDSubTLV =new BGPLSIdentifierNodeDescriptorSubTLV(); + bGPLSIDSubTLV.setBGPLS_ID(this.localBGPLSIdentifer); + localNodeDescriptors.setBGPLSIDSubTLV(bGPLSIDSubTLV); + AreaIDNodeDescriptorSubTLV areaID = new AreaIDNodeDescriptorSubTLV(); + areaID.setAREA_ID(this.localAreaID); + localNodeDescriptors.setAreaID(areaID); + + IGPRouterIDNodeDescriptorSubTLV igpRouterIDDNSubTLV = new IGPRouterIDNodeDescriptorSubTLV(); + igpRouterIDDNSubTLV.setIpv4AddressOSPF(addressList.get(1)); + igpRouterIDDNSubTLV.setIGP_router_id_type(IGPRouterIDNodeDescriptorSubTLV.IGP_ROUTER_ID_TYPE_OSPF_NON_PSEUDO); + remoteNodeDescriptors.setIGPRouterID(igpRouterIDDNSubTLV); + //2.1.2. AS + if (domainList != null){ + AutonomousSystemNodeDescriptorSubTLV as_local = new AutonomousSystemNodeDescriptorSubTLV(); + try { + as_local.setAS_ID((Inet4Address) Inet4Address.getByName(domainList.get(0))); + localNodeDescriptors.setAutonomousSystemSubTLV(as_local); + AutonomousSystemNodeDescriptorSubTLV as_remote = new AutonomousSystemNodeDescriptorSubTLV(); + as_remote.setAS_ID((Inet4Address) Inet4Address.getByName(domainList.get(1))); + remoteNodeDescriptors.setAutonomousSystemSubTLV(as_remote); + } catch (UnknownHostException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + } + //Complete Dummy TLVs + remoteNodeDescriptors.setBGPLSIDSubTLV(bGPLSIDSubTLV); + remoteNodeDescriptors.setAreaID(areaID); + + linkNLRI.setLocalNodeDescriptors(localNodeDescriptors); + linkNLRI.setRemoteNodeDescriptorsTLV(remoteNodeDescriptors); + + //2.2. Link NLRI TLVs + //2.2.1. Ipv4 interface and neighbour address + IPv4InterfaceAddressLinkDescriptorsSubTLV ipv4InterfaceAddressTLV = new IPv4InterfaceAddressLinkDescriptorsSubTLV(); + IPv4NeighborAddressLinkDescriptorSubTLV ipv4NeighborAddressTLV = new IPv4NeighborAddressLinkDescriptorSubTLV(); + ipv4InterfaceAddressTLV.setIpv4Address(addressList.get(0)); + ipv4NeighborAddressTLV.setIpv4Address(addressList.get(1)); + linkNLRI.setIpv4InterfaceAddressTLV(ipv4InterfaceAddressTLV); + linkNLRI.setIpv4NeighborAddressTLV(ipv4NeighborAddressTLV); + + //2.2.2. Link Local/Remote identifiers TLV + if (localRemoteIfList != null){ + LinkLocalRemoteIdentifiersLinkDescriptorSubTLV linkIdentifiersTLV = new LinkLocalRemoteIdentifiersLinkDescriptorSubTLV(); + linkIdentifiersTLV.setLinkLocalIdentifier(localRemoteIfList.get(0)); + linkIdentifiersTLV.setLinkRemoteIdentifier(localRemoteIfList.get(1)); + linkNLRI.setLinkIdentifiersTLV(linkIdentifiersTLV); + } + + //2.2.3 LinkDelay + if (te_info != null){ + if(te_info.getUndirLinkDelay() != null){ + int undirLinkDelay = te_info.getUndirLinkDelay().getDelay(); + UndirectionalLinkDelayDescriptorSubTLV uSTLV =new UndirectionalLinkDelayDescriptorSubTLV(); + uSTLV.setDelay(undirLinkDelay); + linkNLRI.setUndirectionalLinkDelayTLV(uSTLV); + } + if(te_info.getUndirDelayVar() != null){ + int undirDelayVar = te_info.getUndirDelayVar().getDelayVar(); + UndirectionalDelayVariationDescriptorSubTLV uSTLV =new UndirectionalDelayVariationDescriptorSubTLV(); + uSTLV.setDelayVar(undirDelayVar); + linkNLRI.setUndirectionalDelayVariationTLV(uSTLV); + } + if(te_info.getMinMaxUndirLinkDelay() != null){ + int minDelay = te_info.getMinMaxUndirLinkDelay().getLowDelay(); + int maxDelay = te_info.getMinMaxUndirLinkDelay().getHighDelay(); + MinMaxUndirectionalLinkDelayDescriptorSubTLV uSTLV =new MinMaxUndirectionalLinkDelayDescriptorSubTLV(); + uSTLV.setHighDelay(maxDelay); + uSTLV.setLowDelay(minDelay); + linkNLRI.setMinMaxUndirectionalLinkDelayTLV(uSTLV); + } + if(te_info.getUndirLinkLoss() != null){ + int linkLoss = te_info.getUndirLinkLoss().getLinkLoss(); + UndirectionalLinkLossDescriptorSubTLV uSTLV =new UndirectionalLinkLossDescriptorSubTLV(); + uSTLV.setLinkLoss(linkLoss); + linkNLRI.setUndirectionalLinkLossTLV(uSTLV); + } + if(te_info.getUndirResidualBw() != null){ + int resBw = te_info.getUndirResidualBw().getResidualBw(); + UndirectionalResidualBandwidthDescriptorSubTLV uSTLV =new UndirectionalResidualBandwidthDescriptorSubTLV(); + uSTLV.setResidualBw(resBw); + linkNLRI.setUndirectionalResidualBwTLV(uSTLV); + } + if(te_info.getUndirAvailableBw() != null){ + int availableBw = te_info.getUndirAvailableBw().getAvailableBw(); + UndirectionalAvailableBandwidthDescriptorSubTLV uSTLV =new UndirectionalAvailableBandwidthDescriptorSubTLV(); + uSTLV.setAvailableBw(availableBw); + linkNLRI.setUndirectionalAvailableBwTLV(uSTLV); + } + if(te_info.getUndirUtilizedBw() != null){ + int utilizedBw = te_info.getUndirUtilizedBw().getUtilizedBw(); + UndirectionalUtilizedBandwidthDescriptorSubTLV uSTLV =new UndirectionalUtilizedBandwidthDescriptorSubTLV(); + uSTLV.setUtilizedBw(utilizedBw); + linkNLRI.setUndirectionalUtilizedBwTLV(uSTLV); + } + + } + linkNLRI.setIdentifier(this.identifier); + BGP_LS_MP_Reach_Attribute ra= new BGP_LS_MP_Reach_Attribute(); + ra.setLsNLRI(linkNLRI); + + pathAttributes.add(ra); + return update; + } + /** + * Funcion que crea un mensaje OSPF inventado desde cero. + * Solo se meten en el mensaje los campos: + * - source + * - destino + * - maximun bandwithd + * @return OSPFv2 Link State Update Packet + */ + public static OSPFv2LinkStateUpdatePacket createMsgOSPF(){ + Inet4Address src = null; + Inet4Address dst = null; + MaximumBandwidth maximumBandwidth = new MaximumBandwidth(); + maximumBandwidth.setMaximumBandwidth(100); + UnreservedBandwidth unreservedBandwidth = new UnreservedBandwidth(); + float[] unReservedB = new float[8]; + unReservedB[0]=18309; + unReservedB[1]=130; + unreservedBandwidth.setUnreservedBandwidth(unReservedB); + try { + src = (Inet4Address) Inet4Address.getByName( "179.123.123.123"); + dst = (Inet4Address) Inet4Address.getByName( "179.123.123.111"); + } catch (UnknownHostException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + OSPFv2LinkStateUpdatePacket ospfv2Packet = new OSPFv2LinkStateUpdatePacket(); + ospfv2Packet.setRouterID(src); + LinkedList lsaList = new LinkedList(); + OSPFTEv2LSA lsa = new OSPFTEv2LSA(); + LinkTLV linkTLV=new LinkTLV(); + lsa.setLinkTLV(linkTLV); + + linkTLV.setMaximumBandwidth(maximumBandwidth); + linkTLV.setUnreservedBandwidth(unreservedBandwidth); + LocalInterfaceIPAddress localInterfaceIPAddress= new LocalInterfaceIPAddress(); + LinkedList lista =localInterfaceIPAddress.getLocalInterfaceIPAddressList(); + lista.add(src); + linkTLV.setLocalInterfaceIPAddress(localInterfaceIPAddress); + RemoteInterfaceIPAddress remoteInterfaceIPAddress= new RemoteInterfaceIPAddress(); + LinkedList listar = remoteInterfaceIPAddress.getRemoteInterfaceIPAddressList(); + listar.add(dst); + linkTLV.setRemoteInterfaceIPAddress(remoteInterfaceIPAddress); + LinkID linkID = new LinkID(); + linkID.setLinkID(dst); + linkTLV.setLinkID(linkID); + // if (edge.getTE_info().getAvailableLabels() != null){ + // linkTLV.setAvailableLabels(edge.getTE_info().getAvailableLabels()); + // } + lsaList.add(lsa); + + ospfv2Packet.setLSAlist(lsaList); + return ospfv2Packet; + } + + //* Funcion que decodifica un mensaje OSPFv2LinkStateUpdatePacket creando con los campos extraidos un mensaje BGP4 update. + public BGP4Update decodificarMsgOSPF(OSPFv2LinkStateUpdatePacket ospfv2Packet){ + boolean intradomain = true; + Inet4Address localIPAddress = ospfv2Packet.getRouterID(); + Inet4Address remoteIPAddress = null; + long localInterfaceIPAddress = -1; + long remoteInterfaceIPAddress = -1; + Inet4Address remoteASNumber = null; + LinkedList lsaList; + OSPFTEv2LSA lsa; + //GMPLS Parameter + AvailableLabels al = null; + //MPLS Parameter + float maxBandwidth = 0; + float[] unBandwidth = null; + float maximumReservableBandwidth=0; + + lsaList = ((OSPFv2LinkStateUpdatePacket)ospfv2Packet).getLSAlist(); + for (int i =0;i< lsaList.size();i++){ + if (lsaList.get(i).getLStype() == LSATypes.TYPE_10_OPAQUE_LSA){ + lsa=(OSPFTEv2LSA)lsaList.get(i); + log.debug("Starting to process LSA"); + + LinkTLV linkTLV = lsa.getLinkTLV(); + if (linkTLV!=null){ + //Local and Remote interface IP address + remoteIPAddress = linkTLV.getLinkID().getLinkID(); + log.debug("Remote IP Address: "+remoteIPAddress); + localInterfaceIPAddress = linkTLV.getLinkLocalRemoteIdentifiers().getLinkLocalIdentifier(); + log.debug("Local Interface: "+localInterfaceIPAddress); + remoteInterfaceIPAddress =linkTLV.getLinkLocalRemoteIdentifiers().getLinkRemoteIdentifier(); + log.debug("Remote Interface: "+remoteInterfaceIPAddress); + + //MPLS fields + if (linkTLV.getMaximumBandwidth() != null) + maxBandwidth = linkTLV.getMaximumBandwidth().getMaximumBandwidth(); + if (linkTLV.getUnreservedBandwidth() != null) + unBandwidth = linkTLV.getUnreservedBandwidth().getUnreservedBandwidth(); + if (linkTLV.getMaximumReservableBandwidth()!= null) + maximumReservableBandwidth = linkTLV.getMaximumReservableBandwidth().getMaximumReservableBandwidth(); + + //GMPLS + al = linkTLV.getAvailableLabels(); + //FIXME: Como ver si es inter o intra domain + if (linkTLV.getRemoteASNumber() != null) + remoteASNumber = linkTLV.getRemoteASNumber().getRemoteASNumber(); + + } + } + + } + //Create the address list + ArrayList addressList = new ArrayList(); + addressList.add(localIPAddress); + addressList.add(remoteIPAddress); + //Create the interface list + ArrayList localRemoteIfList = new ArrayList(); + localRemoteIfList.add(localInterfaceIPAddress); + localRemoteIfList.add(remoteInterfaceIPAddress); + + + //Create the domain List + ArrayList domainList = new ArrayList(2); + //FIXME CHECK IF THIS METHOD IS USED + //return createMsgUpdateLinkNLRI(addressList,localRemoteIfList,23,maxBandwidth,unBandwidth,maximumReservableBandwidth,al, 0,0, domainList, intradomain, null); + return null; + } + + public boolean isSendTopology() { + return sendTopology; + } + + + public void setSendTopology(boolean sendTopology) { + this.sendTopology = sendTopology; + } + + public void setisTest(boolean test) { + this.isTest = test; + } + + public boolean getisTest() { + return this.isTest; + } + + + public BGP4SessionsInformation getBgp4SessionsInformation() { + return bgp4SessionsInformation; + } + + + public void setBgp4SessionsInformation( + BGP4SessionsInformation bgp4SessionsInformation) { + this.bgp4SessionsInformation = bgp4SessionsInformation; + } + + + public void setInstanceId(int instanceId) { + this.instanceId = instanceId; + } + + +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/tedb/BGP4DomainTEDB.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/tedb/BGP4DomainTEDB.java new file mode 100644 index 0000000000000000000000000000000000000000..512467ccf097d7c178aca6083b0ee5c100367e06 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/tedb/BGP4DomainTEDB.java @@ -0,0 +1,51 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.bgp4Peer.tedb; + +import java.util.LinkedList; +import eu.teraflow.tid.tedb.InterDomainEdge; +import eu.teraflow.tid.tedb.TEDB; + +public class BGP4DomainTEDB implements TEDB { + + @Override + public void initializeFromFile(String file) { + // TODO Auto-generated method stub + + } + + @Override + public void initializeFromFile(String file, String learnFrom) { + + } + + @Override + public boolean isITtedb() { + // TODO Auto-generated method stub + return false; + } + + @Override + public String printTopology() { + // TODO Auto-generated method stub + return null; + } + + @Override + public LinkedList getInterDomainLinks() { + // TODO Auto-generated method stub + return null; + } +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/tedb/BGP4IntradomainTEDB.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/tedb/BGP4IntradomainTEDB.java new file mode 100644 index 0000000000000000000000000000000000000000..0f027c6938aa744911936224b7a053c0d69a793f --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/tedb/BGP4IntradomainTEDB.java @@ -0,0 +1,67 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.bgp4Peer.tedb; + +import java.net.Inet4Address; +import java.util.Hashtable; +import java.util.LinkedList; + +import eu.teraflow.tid.tedb.InterDomainEdge; + +public class BGP4IntradomainTEDB implements IntraTEDBS { + + Hashtable tedb; + @Override + public void initializeFromFile(String file) { + // TODO Auto-generated method stub + + } + + @Override + public void initializeFromFile(String file, String learnFrom) { + + } + + @Override + public boolean isITtedb() { + // TODO Auto-generated method stub + return false; + } + + @Override + public String printTopology() { + // TODO Auto-generated method stub + return null; + } + + @Override + public LinkedList getInterDomainLinks() { + // TODO Auto-generated method stub + return null; + } + + @Override + public void addIntradomainEdge() { + // TODO Auto-generated method stub + + } + + @Override + public void addIntradomainNode(Inet4Address domain, Inet4Address node) { + BGP4DomainTEDB bgp4TEDB = tedb.get(domain); + + } + +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/tedb/IntraTEDBS.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/tedb/IntraTEDBS.java new file mode 100644 index 0000000000000000000000000000000000000000..ae4946dd2927ebed32a71953c1023e24c364dac8 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/tedb/IntraTEDBS.java @@ -0,0 +1,29 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.bgp4Peer.tedb; + +import java.net.Inet4Address; +import eu.teraflow.tid.tedb.TEDB; + +public interface IntraTEDBS extends TEDB { + + + //Metodo (annadir enlace intradominio) que le pases un domain id, + cosas que necesites para el intradomain edge. + //Las clases que implemente para esta interface ya tengra que ver c�mo hacerlo. Tener una hashtable. + public void addIntradomainEdge(); + public void addIntradomainNode(Inet4Address domain, Inet4Address node); + + +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/updateTEDB/UpdateDispatcher.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/updateTEDB/UpdateDispatcher.java new file mode 100644 index 0000000000000000000000000000000000000000..e77612ea6a8c13012d8161367d3dfd7d6bc0e1da --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/updateTEDB/UpdateDispatcher.java @@ -0,0 +1,56 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.bgp4Peer.updateTEDB; + +import java.net.Inet4Address; +import java.util.Hashtable; +import java.util.concurrent.LinkedBlockingQueue; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import es.tid.bgp.bgp4.messages.BGP4Update; +import eu.teraflow.tid.bgp4Peer.tedb.IntraTEDBS; +import eu.teraflow.tid.tedb.DomainTEDB; +import eu.teraflow.tid.tedb.MultiDomainTEDB; +import eu.teraflow.tid.tedb.SimpleTEDB; +import eu.teraflow.tid.tedb.TEDB; + + +/** + * This class is in charge of storing the BGP4 update messages in a queue to be processing + * + * @author pac + * + */ +public class UpdateDispatcher { + + private Logger log; + private LinkedBlockingQueue updateList; + private UpdateProccesorThread upt; + + + public UpdateDispatcher(MultiDomainTEDB multiTedb,Hashtable intraTEDBs ){ + this.updateList=new LinkedBlockingQueue(); + this.upt=new UpdateProccesorThread(updateList, multiTedb,intraTEDBs ); + upt.start(); + log=LoggerFactory.getLogger("BGP4Server"); + } + public void dispatchRequests(BGP4Update updateMessage){ + updateList.add(updateMessage); + } + + + +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/updateTEDB/UpdateLink.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/updateTEDB/UpdateLink.java new file mode 100644 index 0000000000000000000000000000000000000000..df711c284d75dcc6a1398e6e32750610bce91939 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/updateTEDB/UpdateLink.java @@ -0,0 +1,94 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.bgp4Peer.updateTEDB; + +import java.net.Inet4Address; +import java.util.ArrayList; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import es.tid.bgp.bgp4.update.fields.LinkNLRI; +import es.tid.bgp.bgp4.update.tlv.linkstate_attribute_tlvs.MaxReservableBandwidthLinkAttribTLV; +import es.tid.bgp.bgp4.update.tlv.linkstate_attribute_tlvs.MaximumLinkBandwidthLinkAttribTLV; +import es.tid.bgp.bgp4.update.tlv.linkstate_attribute_tlvs.UnreservedBandwidthLinkAttribTLV; +import es.tid.bgp.bgp4.update.tlv.node_link_prefix_descriptor_subTLVs.AutonomousSystemNodeDescriptorSubTLV; +import es.tid.bgp.bgp4.update.tlv.node_link_prefix_descriptor_subTLVs.NodeDescriptorsSubTLV; +import es.tid.bgp.bgp4.update.tlv.node_link_prefix_descriptor_subTLVs.NodeDescriptorsSubTLVTypes; +import es.tid.ospf.ospfv2.lsa.LSA; +/** + * This class is used to control BGP updates (not changing database when is a 'refresh BGP message') + * + * WARNING: we only control when adding new link or when bitmap changes. + * @author baam + * + */ +public class UpdateLink { + + + private MaximumLinkBandwidthLinkAttribTLV maximumLinkBandwidthTLV; + private MaxReservableBandwidthLinkAttribTLV maxReservableBandwidthTLV; + private UnreservedBandwidthLinkAttribTLV unreservedBandwidthTLV; + private LinkNLRI linkNLRI; + private Inet4Address localDomainID; + private Inet4Address localRouterASBR; + private Inet4Address remoteDomainID; + private Inet4Address remoteRouterASBR; + private byte[] bitmap; + private byte[] bitmapReserved; + + public UpdateLink(Inet4Address remote, Inet4Address local, byte[] bitMap, byte[] bitmapRes) { + this.bitmap=new byte[bitMap.length]; + for(int i=0; i updateList; + + /** LINK ATTRIBUTE TLVs */ + MaximumLinkBandwidthLinkAttribTLV maximumLinkBandwidthTLV; + MaxReservableBandwidthLinkAttribTLV maxReservableBandwidthTLV; + UnreservedBandwidthLinkAttribTLV unreservedBandwidthTLV; + AdministrativeGroupLinkAttribTLV administrativeGroupTLV; + LinkProtectionTypeLinkAttribTLV linkProtectionTLV; + MetricLinkAttribTLV metricTLV; + IPv4RouterIDLocalNodeLinkAttribTLV iPv4RouterIDLocalNodeLATLV; + IPv4RouterIDRemoteNodeLinkAttribTLV iPv4RouterIDRemoteNodeLATLV; + DefaultTEMetricLinkAttribTLV TEMetricTLV; + TransceiverClassAndAppAttribTLV transceiverClassAndAppATLV; + MF_OTPAttribTLV mF_OTP_ATLV; + int linkDelay; + int linkDelayVar; + int minDelay; + int maxDelay; + int linkLoss; + int residualBw; + int availableBw; + int utilizedBw; + /** NODE ATTRIBUTE TLVs + * Ipv4 of local node link attribute TLV also used + * + * */ + NodeFlagBitsNodeAttribTLV nodeFlagBitsTLV = new NodeFlagBitsNodeAttribTLV(); + NodeNameNodeAttribTLV nodeNameTLV = new NodeNameNodeAttribTLV(); + IS_IS_AreaIdentifierNodeAttribTLV areaIDTLV = new IS_IS_AreaIdentifierNodeAttribTLV(); + SidLabelNodeAttribTLV sidTLV = new SidLabelNodeAttribTLV(); + + /**PREFIX ATTRIBUTE TLVs */ + IGPFlagBitsPrefixAttribTLV igpFlagBitsTLV = new IGPFlagBitsPrefixAttribTLV(); + RouteTagPrefixAttribTLV routeTagTLV = new RouteTagPrefixAttribTLV(); + PrefixMetricPrefixAttribTLV prefixMetricTLV = new PrefixMetricPrefixAttribTLV(); + OSPFForwardingAddressPrefixAttribTLV OSPFForwardingAddrTLV = new OSPFForwardingAddressPrefixAttribTLV(); + + private AvailableLabels availableLabels; + /** + * Logger + */ + private Logger log; + /** + * Topology database for interDomain Links which will be updated. + */ + private MultiDomainTEDB multiTedb; + /** + * Topology database for intradomain Links. It owns several domains and. + */ + private Hashtable intraTEDBs; + + private LinkedList updateLinks; + + private TE_Information te_info; + + + + + public UpdateProccesorThread(LinkedBlockingQueue updateList, + MultiDomainTEDB multiTedb ,Hashtable intraTEDBs ){ + log=LoggerFactory.getLogger("BGP4Server"); + running=true; + this.updateList=updateList; + this.multiTedb = multiTedb; + + this.intraTEDBs=intraTEDBs; + this.availableLabels= new AvailableLabels(); + this.updateLinks=new LinkedList(); + } + + /** + * Starts processing updates + */ + public void run(){ + + BGP4Update updateMsg; + UpdateMsgList updateMsgList = new UpdateMsgList();//write nodes and links info to a file + bgpMarshal m = new bgpMarshal();//add to json file + try { + m.bgpMarshaller(); + } catch (IOException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + int j=0; //debug coverage + while (running && j<100) { + try { + clearAttributes(); + UpdateMsg update = new UpdateMsg();//class to send grpc message + PathAttribute att_ls = null; + PathAttribute att_mpreach = null; + PathAttribute att = null; + PathAttribute att_path = null; + updateMsg= updateList.take(); + + + log.info("Update Procesor Thread Reading the message: \n"+ updateMsg.toString()); + log.info("\n \n"); + //guille update processor + + + + log.debug("END string UPDATE msg"); + //Andrea To be checked + String learntFrom = updateMsg.getLearntFrom(); + log.info("Received from "+learntFrom); + ArrayList pathAttributeList = updateMsg.getPathAttributes(); + ArrayList pathAttributeListUtil = new ArrayList(); + update.setLearntFrom(learntFrom); + + + + // buscamos los dos atributos que nos interesan... + for (int i=0;i as_path_segments= ((AS_Path_Attribute)att_path).getAsPathSegments(); + AS_Path_Segment as_path_segment; + int as_path=0; + if(as_path_segments.size()>0){ + as_path_segment=as_path_segments.get(0); + int numberOfSeg=as_path_segment.getNumberOfSegments(); + as_path=as_path_segment.getSegments()[0]; + } + update.setAsPathSegment(as_path); + } + + if (pathAttributeListUtil != null){ + for (int i=0;i) ((BGP_LS_MP_Reach_Attribute)att).getLsNLRIList()){ + log.info("Link_NLRI"); + LinkNLRIMsg LnlriMsg = new LinkNLRIMsg((LinkNLRI)linkstateNLRI,learntFrom); + log.info("Link info: " + LnlriMsg.toString()); + updateMsgList.addLinkToJson(LnlriMsg); + update.addLink(LnlriMsg);//set for grpc msg + } + // } + continue; + case NLRITypes.Node_NLRI: + // NodeNLRIMsg NnlriMsg = new NodeNLRIMsg((NodeNLRI)nlri,learntFrom,currentName); + // log.info("Node_NLRI"); + // log.info("Node info: " + NnlriMsg.toString()); + // updateMsgList.addNodeToJson(NnlriMsg,currentName); + // update.setNode(NnlriMsg);//set for grpc msg + // currentName=null; + for(LinkStateNLRI linkstateNLRI : (List) ((BGP_LS_MP_Reach_Attribute)att).getLsNLRIList()){ + log.info("Node_NLRI"); + NodeNLRIMsg NnlriMsg = new NodeNLRIMsg((NodeNLRI)linkstateNLRI,learntFrom,currentName); + log.info("Node info: " + NnlriMsg.toString()); + updateMsgList.addNodeToJson(NnlriMsg,currentName); + update.addNode(NnlriMsg);//set for grpc msg + } + currentName=null; + continue; + case NLRITypes.Prefix_v4_NLRI://POR HACER... + log.info("Prefix_v4_NLRI"); + continue; + case NLRITypes.IT_Node_NLRI: + log.info("IT_Node_NLRI"); + continue; + default: + log.debug("Attribute Code unknown"); + } + + } + continue; + default: + log.debug("Attribute Code unknown"); + } + + + + }//fin for + try {m.writeFile(updateMsgList);} catch (IOException e) {e.printStackTrace();} + } + + // + + + log.warn("\n"); +// System.out.println(update.toString()); + //cambiar clase? + log.info("--->Sending to grpc manager"); + try { + grpcClient.sendGrpcUpdateMsg(update); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + //fin guille + + + + } catch (InterruptedException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + j++; + }//fin while + // try { + // channel.shutdown().awaitTermination(5, TimeUnit.SECONDS); + // } catch (InterruptedException e) { + // // TODO Auto-generated catch block + // e.printStackTrace(); + // } + System.exit(0); + } + + + + /** + * Function which process the attribute link State. It updates the fields passed by argument. + */ + private void processAttributeLinkState(LinkStateAttribute lsAtt){ + + if (lsAtt.getMaximumLinkBandwidthTLV() != null){ + maximumLinkBandwidthTLV = lsAtt.getMaximumLinkBandwidthTLV(); + } + + if (lsAtt.getMaxReservableBandwidthTLV() != null){ + maxReservableBandwidthTLV = lsAtt.getMaxReservableBandwidthTLV(); + } + if (lsAtt.getUnreservedBandwidthTLV() != null){ + unreservedBandwidthTLV = lsAtt.getUnreservedBandwidthTLV(); + } + if(lsAtt.getAdministrativeGroupTLV() != null){ + administrativeGroupTLV = lsAtt.getAdministrativeGroupTLV(); + } + if(lsAtt.getLinkProtectionTLV() != null){ + linkProtectionTLV = lsAtt.getLinkProtectionTLV(); + } + if(lsAtt.getIPv4RouterIDLocalNodeLATLV()!= null){ + iPv4RouterIDLocalNodeLATLV = lsAtt.getIPv4RouterIDLocalNodeLATLV(); + } + if(lsAtt.getIPv4RouterIDRemoteNodeLATLV()!=null){ + iPv4RouterIDRemoteNodeLATLV = lsAtt.getIPv4RouterIDRemoteNodeLATLV(); + } + if(lsAtt.getMetricTLV() != null){ + metricTLV = lsAtt.getMetricTLV(); + } + if(lsAtt.getTEMetricTLV()!=null){ + TEMetricTLV = lsAtt.getTEMetricTLV(); + } + if(lsAtt.getNodeFlagBitsTLV()!= null){ + nodeFlagBitsTLV = lsAtt.getNodeFlagBitsTLV(); + } + if(lsAtt.getNodeNameTLV() != null){ + nodeNameTLV = lsAtt.getNodeNameTLV(); + } + if(lsAtt.getAreaIDTLV() != null){ + areaIDTLV = lsAtt.getAreaIDTLV(); + } + if(lsAtt.getIgpFlagBitsTLV() != null){ + igpFlagBitsTLV= lsAtt.getIgpFlagBitsTLV(); + } + if(lsAtt.getRouteTagTLV() != null){ + routeTagTLV = lsAtt.getRouteTagTLV(); + } + if(lsAtt.getOSPFForwardingAddrTLV() != null){ + OSPFForwardingAddrTLV = lsAtt.getOSPFForwardingAddrTLV(); + } + if(lsAtt.getSidLabelTLV()!=null){ + sidTLV = lsAtt.getSidLabelTLV(); + } + + if (lsAtt.getAvailableLabels() != null){ + this.availableLabels =lsAtt.getAvailableLabels(); + } + if (lsAtt.getMF_OTP_ATLV() != null){ + this.mF_OTP_ATLV =lsAtt.getMF_OTP_ATLV(); + } + + if (lsAtt.getTransceiverClassAndAppATLV() != null){ + this.transceiverClassAndAppATLV =lsAtt.getTransceiverClassAndAppATLV(); + } + + } + /** + * Function which process the link NLRI. It updates the fields passed by argument. + * @param linkNLRI + * @param maximumLinkBandwidthTLV + * @param maxReservableBandwidthTLV + * @param unreservedBandwidthTLV + * @param availableLabels + */ + + + /** Procesar un link significa: + * crear los vertices si no existen ya + * crear la edge si no existe ya + * crear la te_info o actualizarla + * @param linkNLRI + * @param learntFrom + */ + + + + private void clearAttributes(){ + maximumLinkBandwidthTLV= null; + maxReservableBandwidthTLV= null; + unreservedBandwidthTLV= null; + administrativeGroupTLV = null; + linkProtectionTLV =null; + metricTLV = null; + iPv4RouterIDLocalNodeLATLV = null; + iPv4RouterIDRemoteNodeLATLV = null; + TEMetricTLV = null; + transceiverClassAndAppATLV = null; + mF_OTP_ATLV = null; + availableLabels=null; + linkDelay=0; + linkDelayVar=0; + minDelay=0; + maxDelay=0; + linkLoss=0; + residualBw=0; + availableBw=0; + utilizedBw=0; + + } + + + +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/updateTEDB/UpdaterThreadRedisTED.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/updateTEDB/UpdaterThreadRedisTED.java new file mode 100644 index 0000000000000000000000000000000000000000..229fbe1de8b9805fa5c18c0dd10f5e1f1fd1a94a --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/updateTEDB/UpdaterThreadRedisTED.java @@ -0,0 +1,77 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.bgp4Peer.updateTEDB; + +import java.util.LinkedList; +import java.util.concurrent.LinkedBlockingQueue; + +import redis.clients.jedis.Jedis; +import es.tid.ospf.ospfv2.OSPFv2LinkStateUpdatePacket; +import es.tid.ospf.ospfv2.lsa.LSA; +import es.tid.ospf.ospfv2.lsa.LSATypes; +import es.tid.ospf.ospfv2.lsa.OSPFTEv2LSA; +import eu.teraflow.tid.tedb.DatabaseControlSimplifiedLSA; + +public class UpdaterThreadRedisTED extends Thread{ + //FIXME: Configure from file + private Jedis jedis; + private String host="localhost"; + + private int port=6379; + + private LinkedBlockingQueue redisOspfv2PacketQueue; + + public UpdaterThreadRedisTED(LinkedBlockingQueue redisOspfv2PacketQueue) { + // TODO Auto-generated constructor stub + + this.redisOspfv2PacketQueue = redisOspfv2PacketQueue; + jedis = new Jedis(host,port); + + + + } + + public void run() { + + LinkedList lsaList; + OSPFTEv2LSA lsa; + OSPFv2LinkStateUpdatePacket ospfv2Packet; + jedis.connect(); + //FIXE: Add disconnect + while(true){ + try { + + ospfv2Packet = redisOspfv2PacketQueue.take(); + lsaList = ((OSPFv2LinkStateUpdatePacket)ospfv2Packet).getLSAlist(); + for (int i =0;i< lsaList.size();i++){ + if (lsaList.get(i).getLStype() == LSATypes.TYPE_10_OPAQUE_LSA){ + lsa=(OSPFTEv2LSA)lsaList.get(i); + DatabaseControlSimplifiedLSA dcsl = new DatabaseControlSimplifiedLSA(); + dcsl.fillSimplifiedLsa(lsa); + String jsonLSA = dcsl.logJsonSimplifiedLSA(); + //RedisDatabaseHandler rdh = new RedisDatabaseHandler(); + String key="LSA:"+dcsl.getAdvertisingRouter().getHostAddress()+":"+dcsl.getLinkId().getHostAddress(); + String ret = jedis.set(key, jsonLSA); + jedis.sadd("TEDB",key); + } + } + } catch (InterruptedException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + } + +} \ No newline at end of file diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/DatabaseControlSimplifiedLSA.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/DatabaseControlSimplifiedLSA.java new file mode 100644 index 0000000000000000000000000000000000000000..e56e45cf50fb201a555d70624599d8bed5e988ac --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/DatabaseControlSimplifiedLSA.java @@ -0,0 +1,174 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.tedb; + +import java.net.Inet4Address; + +import com.google.gson.Gson; + +import es.tid.ospf.ospfv2.lsa.OSPFTEv2LSA; +import es.tid.ospf.ospfv2.lsa.tlv.subtlv.AvailableLabels; +import es.tid.ospf.ospfv2.lsa.tlv.subtlv.complexFields.BitmapLabelSet; + +/** + * + * Class for simplified database write of LSAs + * + * @author Fernando Mu�oz del Nuevo + * + * + * + */ + +public class DatabaseControlSimplifiedLSA { + + public Inet4Address advertisingRouter; + + public Inet4Address linkId; + + public long linkLocalIdentifier; + + public long linkRemoteIdentifier; + + public String bitmapLabelSet; + + public float maximumBandwidth; + + public float unreservedBandwidth; + + public float maximumReservableBandwidth; + + //protected LinkedList labelSet; + + public Inet4Address getAdvertisingRouter() { + return advertisingRouter; + } + + public void setAdvertisingRouter(Inet4Address advertisingRouter) { + this.advertisingRouter = advertisingRouter; + } + + public Inet4Address getLinkId() { + return linkId; + } + + public void setLinkId(Inet4Address linkId) { + this.linkId = linkId; + } + + public long getLinkLocalIdentifier() { + return linkLocalIdentifier; + } + + public void setLinkLocalIdentifier(long linkLocalIdentifier) { + this.linkLocalIdentifier = linkLocalIdentifier; + } + + public long getLinkRemoteIdentifier() { + return linkRemoteIdentifier; + } + + public void setLinkRemoteIdentifier(long linkRemoteIdentifier) { + this.linkRemoteIdentifier = linkRemoteIdentifier; + } + + public String getBitmapLabelSet() { + return bitmapLabelSet; + } + + public void setBitmapLabelSet(String bitmapLabelSet) { + this.bitmapLabelSet = bitmapLabelSet; + } + + public float getMaximumBandwidth() { + return maximumBandwidth; + } + + public void setMaximumBandwidth(float maximumBandwidth) { + this.maximumBandwidth = maximumBandwidth; + } + + public float getUnreservedBandwidth() { + return unreservedBandwidth; + } + + public void setUnreservedBandwidth(float unreservedBandwidth) { + this.unreservedBandwidth = unreservedBandwidth; + } + + public float getMaximumReservableBandwidth() { + return maximumReservableBandwidth; + } + + public void setMaximumReservableBandwidth(float maximumReservableBandwidth) { + this.maximumReservableBandwidth = maximumReservableBandwidth; + } + + public void fillBitmap(AvailableLabels availableLabels){ + + int num_wavelength = 0; + + + bitmapLabelSet = ""; + + while(num_wavelength < availableLabels.getLabelSet().getNumLabels()){ + + int num_byte=num_wavelength/8; + boolean isFree = ((((BitmapLabelSet)availableLabels.getLabelSet()).getBytesBitMap()[num_byte]&(0x80>>>(num_wavelength%8)))==0); + + if(isFree){ + bitmapLabelSet = bitmapLabelSet + "0"; + }else{ + bitmapLabelSet = bitmapLabelSet + "1"; + } + + num_wavelength++; + } + } + + public void fillSimplifiedLsa(OSPFTEv2LSA lsa){ + if (lsa.getAdvertisingRouter()!=null) + this.setAdvertisingRouter(lsa.getAdvertisingRouter()); + if (lsa.getLinkTLV().getLinkID().getLinkID()!=null) + this.setLinkId(lsa.getLinkTLV().getLinkID().getLinkID()); + if (lsa.getLinkTLV().getLinkLocalRemoteIdentifiers()!=null){ + this.setLinkLocalIdentifier(lsa.getLinkTLV().getLinkLocalRemoteIdentifiers().getLinkLocalIdentifier()); + this.setLinkRemoteIdentifier(lsa.getLinkTLV().getLinkLocalRemoteIdentifiers().getLinkRemoteIdentifier()); + } + if (lsa.getLinkTLV().getMaximumBandwidth()!=null) + this.setMaximumBandwidth(lsa.getLinkTLV().getMaximumBandwidth().getMaximumBandwidth()); + if (lsa.getLinkTLV().getUnreservedBandwidth()!=null){ + this.setMaximumBandwidth(lsa.getLinkTLV().getUnreservedBandwidth().unreservedBandwidth[0]); + } if (lsa.getLinkTLV().getMaximumReservableBandwidth()!=null){ + this.setMaximumReservableBandwidth(lsa.getLinkTLV().getMaximumReservableBandwidth().maximumReservableBandwidth); + } + + if (lsa.getLinkTLV().getAvailableLabels()!=null){ + this.fillBitmap(lsa.getLinkTLV().getAvailableLabels()); + } + } + + + public String logJsonSimplifiedLSA(){ + + Gson gson = new Gson(); + String json = gson.toJson(this); + + + return json; + + //IPInterfaceTrafficRequest iitr2 = gson.fromJson(json, DatabaseControlSimplifiedLSA.class); + } +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/DomainTEDB.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/DomainTEDB.java new file mode 100644 index 0000000000000000000000000000000000000000..85ecd8fd3cf59a271504b92e224c17ea92b1a560 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/DomainTEDB.java @@ -0,0 +1,85 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.tedb; + +import java.net.Inet4Address; +import java.util.Hashtable; +import java.util.LinkedList; +import java.util.Set; + +import es.tid.ospf.ospfv2.lsa.tlv.subtlv.complexFields.BitmapLabelSet; + + +public interface DomainTEDB extends TEDB { + + public Inet4Address getDomainID(); + + + public boolean belongsToDomain(Object addr); + + //public Object getDomainId(); + public ReachabilityEntry getReachabilityEntry(); + + //public byte[] getDomainReachabilityIPv4Prefix(); + + public LinkedList getInterDomainLinks(); + public Set getIntraDomainLinks(); + public String printInterDomainLinks(); + + public boolean containsVertex(Object vertex); + public WSONInformation getWSONinfo(); + public void setWSONinfo(WSONInformation wSONinfo); + public SSONInformation getSSONinfo(); + public void setSSONinfo(SSONInformation sSONinfo); + public void notifyWavelengthReservation(LinkedList sourceVertexList, LinkedList targetVertexList, int wavelength, boolean bidirectional); + public void notifyWavelengthReservationSSON (LinkedList sourceVertexList, LinkedList targetVertexList, int wavelength, boolean bidirectional, int m); + public void notifyWavelengthEndReservation(LinkedList sourceVertexList, LinkedList targetVertexList, int wavelength, boolean bidirectional); + public void notifyWavelengthChange(Object localInterfaceIPAddress,Object remoteInterfaceIPAddress,BitmapLabelSet previousBitmapLabelSet,BitmapLabelSet newBitmapLabelSet ); + public void notifyNewEdgeIP(Object source, Object destination, TE_Information informationTEDB); + public void register(TEDListener compAlgPreComp); + public void registerSSON(SSONListener compAlgPreComp); + + public void notifyNewVertex(Object vertex); + + public void notifyNewEdge (Object source, Object destination); + + public void clearAllReservations(); + + public void notifyWavelengthEndReservationSSON( + LinkedList sourceVertexList, + LinkedList targetVertexList, int wavelength, + boolean bidirectional, int m); + public void notifyWavelengthReservationWLAN( + LinkedList sourceVertexList, + LinkedList targetVertexList, LinkedList wlans, + boolean bidirectional); + + + public void createGraph(); + + + public Set getIntraDomainLinksvertexSet(); + + + public Hashtable getNodeTable(); + + public IT_Resources getItResources(); + public void setItResources(IT_Resources itResources); + + + + + +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/EdgeUtils.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/EdgeUtils.java new file mode 100644 index 0000000000000000000000000000000000000000..e2fafa2385ae77500aeb3d6ed0c892d96708e4f6 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/EdgeUtils.java @@ -0,0 +1,34 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.tedb; + +import java.net.Inet4Address; + +import es.tid.of.DataPathID; + +public class EdgeUtils { + + public static Object getEdge(String edge){ + Object router_id_addr; + try { //Router_type: IPv4 + router_id_addr = (Inet4Address) Inet4Address.getByName(edge); + } catch (Exception e) { //Router_type: DatapathID + router_id_addr = (DataPathID) DataPathID.getByName(edge); + //FIXME: See what to do if it is not IPv4 or DatapahID + } + return router_id_addr; + } + +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/FileTEDBUpdater.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/FileTEDBUpdater.java new file mode 100644 index 0000000000000000000000000000000000000000..ce5652267a4344155263a83b04f419161656b1a9 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/FileTEDBUpdater.java @@ -0,0 +1,3585 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.tedb; + +import es.tid.bgp.bgp4.update.tlv.linkstate_attribute_tlvs.DefaultTEMetricLinkAttribTLV; +import es.tid.bgp.bgp4.update.tlv.node_link_prefix_descriptor_subTLVs.*; +import es.tid.of.DataPathID; +import es.tid.ospf.ospfv2.lsa.tlv.subtlv.AvailableLabels; +import es.tid.ospf.ospfv2.lsa.tlv.subtlv.MaximumBandwidth; +import es.tid.ospf.ospfv2.lsa.tlv.subtlv.UnreservedBandwidth; +import es.tid.ospf.ospfv2.lsa.tlv.subtlv.complexFields.BitmapLabelSet; + +import es.tid.rsvp.constructs.gmpls.DWDMWavelengthLabel; +import es.tid.rsvp.objects.subobjects.IPv4prefixEROSubobject; +import org.jgrapht.graph.DirectedWeightedMultigraph; +import org.jgrapht.graph.SimpleDirectedWeightedGraph; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.w3c.dom.*; +import org.w3c.dom.CharacterData; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import java.io.File; +import java.net.Inet4Address; +import java.util.HashMap; +import java.util.Hashtable; +import java.util.LinkedList; + + +/** + * Convenience class to read Traffic Engineering Databases from XML files. + * + * @author ogondio + * + */ +public class FileTEDBUpdater { + + + /** + * Read a full network (no specific layer) + * @param fileName Name of the XML file + * @return Graph of the Network + */ + public static SimpleDirectedWeightedGraph readNetwork(String fileName){ + return FileTEDBUpdater.readNetwork(fileName,null,false,0,Integer.MAX_VALUE); + } + + /** + * Reads a specific layer from a Network XML file + * @param fileName Name of the XML file + * @param layer Layer + * @return Graph of the network + */ + public static SimpleDirectedWeightedGraph readNetwork(String fileName,String layer){ + return FileTEDBUpdater.readNetwork(fileName,layer,false,0,Integer.MAX_VALUE, false); + } + /** + * Reads a specific layer from a Network XML file + * It can treat all domains as a single domain + * @param fileName Name of the XML file + * @param layer Layer + * @param allDomains if all domains are read or not + * @return Graph of the network + */ + public static SimpleDirectedWeightedGraph readNetwork(String fileName,String layer,boolean allDomains){ + return FileTEDBUpdater.readNetwork(fileName,layer,allDomains,0,Integer.MAX_VALUE, false); + } + /** + * Reads a specific layer from a Network XML file + * It can treat all domains as a single domain + * @param fileName Name of the XML file + * @param layer Layer + * @param allDomains if all domains are read or not + * @param lambdaIni first lambda (n) + * @param lambdaEnd last lamnda (n) + * @return Graph of the network + */ + + public static SimpleDirectedWeightedGraph readNetwork(String fileName, String layer,boolean allDomains,int lambdaIni, int lambdaEnd) { + return FileTEDBUpdater.readNetwork(fileName,layer,allDomains,0,Integer.MAX_VALUE, false); + } + + + /** + * Reads a specific layer from a Network XML file. + * It can treat all domains as a single domain. + * + * @param fileName Name of the XML file + * @param layer Layer + * @param allDomains if all domains are read or not + * @param lambdaIni first lambda (n) + * @param lambdaEnd last lamnda (n) + * @param isSSONnetwork If the network supports Flexi Grid + * @return Graph of the network. + */ + public static SimpleDirectedWeightedGraph readNetwork(String fileName, String layer,boolean allDomains,int lambdaIni, int lambdaEnd, boolean isSSONnetwork) { + Logger log = LoggerFactory.getLogger("BGP4Peer"); + Object router_id_addr = null; + Object s_router_id_addr = null; + Object d_router_id_addr = null; + Object src_Numif_id = null; + Object dst_Numif_id = null; + + + //First, create the graph + SimpleDirectedWeightedGraph graph = new SimpleDirectedWeightedGraph(IntraDomainEdge.class); + + log.debug("1. SimpleDirectedWeightedGraph"); + + File file = new File(fileName); + try { + String domain_id = ""; + DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); + Document doc = builder.parse(file); + HashMapSIDS = new HashMap(); + HashMapSIDSDP = new HashMap(); + + NodeList nodes_domains = doc.getElementsByTagName("domain"); + if (layer!=null){ + log.debug("Reading topology, looking for layer "+ layer); + } + + + //First pass to get all the nodes + //If we need to read all the domains + for (int j = 0; j < nodes_domains.getLength(); j++) { + boolean readNetwork=false; + Element element1 = (Element) nodes_domains.item(j); + + if (layer!=null){ + NodeList domain_layer = element1.getElementsByTagName("layer"); + if (domain_layer.getLength()==1){ + Element layer_type = (Element) domain_layer.item(0); + log.debug("Layer: " + layer_type.getAttributeNode("type").getValue()); + log.debug("Reading network topology"); + if (layer_type.getAttributeNode("type").getValue().equals(layer)){ + readNetwork = true; + + } + if (layer.equals("interlayer")){ + readNetwork = true; + } + } + }else { + readNetwork=true; + } + if (readNetwork){ + Element element_domain = (Element) nodes_domains.item(j); + NodeList nodes_domain_id = element_domain.getElementsByTagName("domain_id"); + for (int k = 0; k < nodes_domain_id.getLength(); k++) { + Element domain_id_e = (Element) nodes_domain_id.item(0); + domain_id = getCharacterDataFromElement(domain_id_e); + log.debug("Loading nodes for domain: " + domain_id); + log.info("Loading topology from domain " + domain_id); + } + + NodeList nodes = element1.getElementsByTagName("node"); + for (int i = 0; i < nodes.getLength(); i++) { + Element element = (Element) nodes.item(i); + NodeList router_id_node = element.getElementsByTagName("router_id"); + Element router_id_e = (Element) router_id_node.item(0); + String router_id = getCharacterDataFromElement(router_id_e); + + log.info("Adding node " + router_id); + router_id_addr = EdgeUtils.getEdge(router_id); + graph.addVertex(router_id_addr); + + log.debug("About to look for SID"); + NodeList SID_aux = element.getElementsByTagName("sid"); + Element SID_e = (Element) SID_aux.item(0); + if (SID_e!=null) + { + log.debug("SID exist"); + int SID = Integer.parseInt(getCharacterDataFromElement(SID_e)); + + try { //Router_type: DatapathID + SIDS.put((Inet4Address) router_id_addr,SID); + log.debug("SID of node Inet4Address: "+SID); + } catch (Exception e) { //Router_type: DatapathID + SIDSDP.put((DataPathID)router_id_addr, SID); + log.debug("SID of node DataPathID: "+SID); + } + } + else + { + log.debug("SID not found"); + } + + } + } + } + + + //Next pass to get all the links + for (int j = 0; j < nodes_domains.getLength(); j++) { + + boolean readNetwork=false; + Element element1 = (Element) nodes_domains.item(j); + + if (layer!=null){ + NodeList domain_layer = element1.getElementsByTagName("layer"); + if (domain_layer.getLength()==1){ + Element layer_type = (Element) domain_layer.item(0); + log.debug("Layer: " + layer_type.getAttributeNode("type").getValue()); + log.debug("Reading Topology"); + if (layer_type.getAttributeNode("type").getValue().equals(layer)){ + readNetwork = true; + } + } + }else { + readNetwork=true; + } + log.debug("Read network = "+readNetwork); + if (readNetwork){ + Element element_domain = (Element) nodes_domains.item(j); + NodeList nodes_domain_id = element_domain.getElementsByTagName("domain_id"); + + for (int k = 0; k < nodes_domain_id.getLength(); k++) { + Element domain_id_e = (Element) nodes_domain_id.item(0); + domain_id = getCharacterDataFromElement(domain_id_e); + log.debug("Looking for links in domain: " + domain_id); + } + int numLabels=0; + + Boolean commonBitmapLabelSet = false; + NodeList edgeCommon = doc.getElementsByTagName("edgeCommon"); + int grid=0; + int cs=0; + int n=0; + for (int i = 0; i < edgeCommon.getLength(); i++) { + + Element edgeCommonElement = (Element) edgeCommon.item(i); + NodeList availableLabels_node = edgeCommonElement.getElementsByTagName("AvailableLabels"); + for (int k = 0; k < availableLabels_node.getLength(); k++) { + + Element availableLabels_e = (Element) availableLabels_node.item(k); + NodeList labelSetField_node = availableLabels_e.getElementsByTagName("LabelSetField"); + Element labelSetField_el = (Element) labelSetField_node.item(0); + if (labelSetField_el.getAttributeNode("type").getValue().equals("4")){//Tengo BitMapSet + //Crear un BitMapSet + + NodeList numbLabels_node = labelSetField_el.getElementsByTagName("numLabels"); + + Element numbLabels_e = (Element) numbLabels_node.item(0); + String numbLabels_s = getCharacterDataFromElement(numbLabels_e); + numLabels=Integer.parseInt(numbLabels_s); + + NodeList baseLabel_node = labelSetField_el.getElementsByTagName("baseLabel"); + Element baseLabel_e = (Element) baseLabel_node.item(0); + + float min_frequency; + + grid= Integer.parseInt(baseLabel_e.getAttributeNode("grid").getValue()); + + cs = Integer.parseInt(baseLabel_e.getAttributeNode("cs").getValue()); + boolean n_frequency_included=false; + if (baseLabel_e.getAttributeNode("n") != null ){ + n = Integer.parseInt(baseLabel_e.getAttributeNode("n").getValue()); + n_frequency_included = true; + } + else if (baseLabel_e.getAttributeNode("min_frequency") != null){ + String s_min_frequency = labelSetField_el.getAttributeNode("min_frequency").getValue(); + + min_frequency=Float.parseFloat(s_min_frequency); + n = ((int)min_frequency - 1471)/20; + n_frequency_included=true; + } + if (n_frequency_included){ + commonBitmapLabelSet = true; + }else{ + log.error("ERROR reading the xml file of the topology, you should enter "); + } + + } + } + + } + /*if(isSSONnetwork ==true){ + if(cs==4){ + numLabels=numLabels*4; + } + else if (cs==5){ + numLabels=numLabels*8; + } + }*/ + + NodeList edges = element_domain.getElementsByTagName("edge"); + for (int i = 0; i < edges.getLength(); i++) { + log.info("New Edge"); + Element element = (Element) edges.item(i); + //By default, all nodes are intradomain + String type; + Attr attr_type=element.getAttributeNode("type"); + if (attr_type==null){ + type="intradomain"; + }else { + type=attr_type.getValue(); + if (allDomains){ + if (type.equals("interdomain")){ + type="intradomain"; + } + } + + else if (type.equals("interlayer")){ + if (layer.equals("interlayer")){ + type="intradomain"; + } + + } + } + log.debug("type::"+type); + if (type.equals("intradomain")) { + IntraDomainEdge edge = new IntraDomainEdge(); + log.info("New Intradomain Edge"); + NodeList source = element.getElementsByTagName("source"); + Element source_router_el = (Element) source.item(0); + + NodeList source_router_id = source_router_el.getElementsByTagName("router_id"); + Element source_router_id_el = (Element) source_router_id.item(0); + String s_r_id = getCharacterDataFromElement(source_router_id_el); + s_router_id_addr= EdgeUtils.getEdge(s_r_id); + + NodeList source_if_id_nl = source_router_el.getElementsByTagName("if_id"); + Element source_if_id_el = (Element) source_if_id_nl.item(0); + String s_source_if_id; + int src_if_id = -1; + if (source_if_id_el!=null){ + s_source_if_id = getCharacterDataFromElement(source_if_id_el); + src_if_id = Integer.parseInt(s_source_if_id); + } + if (src_if_id!=-1) { + log.debug("SRC if id: "+src_if_id); + } + + NodeList source_Numif_id_nl = source_router_el.getElementsByTagName("NumIf_id"); + Element source_Numif_id_el = (Element) source_Numif_id_nl.item(0); + String s_source_Numif_id=null; + if (source_Numif_id_el!=null){ + s_source_Numif_id = getCharacterDataFromElement(source_Numif_id_el); + try { // src_Numif_id type : Inet4Address + src_Numif_id = (Inet4Address) Inet4Address.getByName(s_source_Numif_id); + } catch (Exception e) { // src_Numif_id type : DataPathID + src_Numif_id = DataPathID.getByName(s_source_Numif_id); + } + } + if (s_source_Numif_id!=null) { + log.debug("NumIf_id id: "+src_Numif_id); + } + + NodeList dest_nl = element.getElementsByTagName("destination"); + Element dest_el = (Element) dest_nl.item(0); + + NodeList dest_router_id_nl = dest_el.getElementsByTagName("router_id"); + Element dest_router_id_el = (Element) dest_router_id_nl.item(0); + String d_r_id = getCharacterDataFromElement(dest_router_id_el); + d_router_id_addr= EdgeUtils.getEdge(d_r_id); + + //Anyadimos los SID + if (SIDS.get(s_router_id_addr)!=null && SIDS.get(d_router_id_addr)!=null) + { + log.debug("setting SIDS src: "+SIDS.get(s_router_id_addr)+" dst: "+SIDS.get(d_router_id_addr)); + edge.setSrc_sid(SIDS.get(s_router_id_addr)); + edge.setDst_sid(SIDS.get(d_router_id_addr)); + log.debug("edge.getSrc_sid(): "+edge.getSrc_sid()); + log.debug("edge.getDst_sid(): "+edge.getDst_sid()); + } + else if (SIDSDP.get(s_router_id_addr)!=null && SIDSDP.get(d_router_id_addr)!=null) + { + log.debug("setting SIDSDP src: "+SIDSDP.get(s_router_id_addr)+" dst: "+SIDSDP.get(d_router_id_addr)); + edge.setSrc_sid(SIDSDP.get(s_router_id_addr)); + edge.setDst_sid(SIDSDP.get(d_router_id_addr)); + log.debug("edge.getSrc_sid(): "+edge.getSrc_sid()); + log.debug("edge.getDst_sid(): "+edge.getDst_sid()); + } + + + NodeList dest_if_id_nl = dest_el.getElementsByTagName("if_id"); + Element dest_if_id_el= (Element) dest_if_id_nl.item(0); + String s_dest_if_id; + int dst_if_id = -1; + if (dest_if_id_el!=null){ + s_dest_if_id = getCharacterDataFromElement(dest_if_id_el); + dst_if_id = Integer.parseInt(s_dest_if_id); + } + if (dst_if_id!=-1) { + log.debug("DST if id: "+dst_if_id); + } + + + NodeList dest_Numif_id_nl = dest_el.getElementsByTagName("NumIf_id"); + Element dest_Numif_id_el = (Element) dest_Numif_id_nl.item(0); + String s_dest_Numif_id=null; + + if (source_Numif_id_el!=null){ + s_dest_Numif_id = getCharacterDataFromElement(dest_Numif_id_el); + + try { // s_dest_Numif_id type : Inet4Address + dst_Numif_id = (Inet4Address) Inet4Address.getByName(s_dest_Numif_id); + } catch (Exception e) { // s_dest_Numif_id type : DataPathID + dst_Numif_id = DataPathID.getByName(s_dest_Numif_id); + } + } + if (s_dest_Numif_id!=null) { + log.debug("DST NumIf_id id: "+dst_Numif_id); + } + + // Añadimos interfaces Numeradas + if (src_Numif_id!=null){ + edge.setSrc_Numif_id(src_Numif_id); + }if (dst_Numif_id!=null){ + edge.setDst_Numif_id(dst_Numif_id); + }else{ + if (src_if_id != -1){ + edge.setSrc_if_id(src_if_id); + } + if (dst_if_id != -1){ + edge.setDst_if_id(dst_if_id); + } + } + + //DELAY, IF IT COMES.. + NodeList delay_ms_nl = element.getElementsByTagName("delay"); + if (delay_ms_nl.getLength()>0){ + + Element delay_ms_el = (Element)delay_ms_nl.item(0); + String s_delay_ms=getCharacterDataFromElement(delay_ms_el); + double delay_ms=Double.parseDouble(s_delay_ms); + edge.setDelay_ms(delay_ms); + } + + //TE Link information + NodeList maximum_bandwidth_nl = element.getElementsByTagName("maximum_bandwidth"); + if (maximum_bandwidth_nl!=null){ + if (maximum_bandwidth_nl.getLength()>0){ + if(edge.getTE_info()==null){ + TE_Information tE_info= new TE_Information(); + if (commonBitmapLabelSet){ + if(lambdaEnd!=Integer.MAX_VALUE){ + + tE_info.createBitmapLabelSet(numLabels, grid, cs, n,lambdaIni,lambdaEnd); + } + else + tE_info.createBitmapLabelSet(numLabels, grid, cs, n); + } + //tid.util.FuncionesUtiles.printByte(((BitmapLabelSet)tE_info.getAvailableLabels().getLabelSet()).getBytesBitmapReserved(),"getBytesBitmapReserved1:"); + edge.setTE_info(tE_info); + + } else { + TE_Information te_info = edge.getTE_info(); + if (commonBitmapLabelSet){ + // if(lambdaEnd!=Integer.MAX_VALUE){ + + // te_info.createBitmapLabelSet(numLabels, grid, cs, n,lambdaIni,lambdaEnd); + // } + // else + te_info.createBitmapLabelSet(numLabels, grid, cs, n); + } + //tid.util.FuncionesUtiles.printByte(((BitmapLabelSet)tE_info.getAvailableLabels().getLabelSet()).getBytesBitmapReserved(),"getBytesBitmapReserved1:"); + edge.setTE_info(te_info); + } + + Element maximum_bandwidth_el = (Element) maximum_bandwidth_nl.item(0); + String s_maximum_bandwidth = getCharacterDataFromElement(maximum_bandwidth_el); + + float maximum_bandwidth=Float.parseFloat(s_maximum_bandwidth); + MaximumBandwidth maximumBandwidth =new MaximumBandwidth(); + maximumBandwidth.setMaximumBandwidth(maximum_bandwidth); + (edge.getTE_info()).setMaximumBandwidth(maximumBandwidth); + + } + } + /** + * NodeList SID_aux = element.getElementsByTagName("sid"); + Element SID_e = (Element) SID_aux.item(0); + if (SID_e!=null) + { + log.info("SID existe"); + int SID = Integer.parseInt(getCharacterDataFromElement(SID_e)); + SIDS.put(router_id_addr,SID); + log.info("SID of node: "+SID); + } + else + { + log.info("SID not found"); + } + */ + + NodeList defaultmetric = element.getElementsByTagName("default_te_metric"); + Element metric_aux = (Element) defaultmetric.item(0); + + if (metric_aux != null){ + String s_metric_aux = getCharacterDataFromElement(metric_aux); + TE_Information tE_info; + int metric = Integer.parseInt(s_metric_aux); + DefaultTEMetricLinkAttribTLV defaultTeMetric= new DefaultTEMetricLinkAttribTLV(); + if(edge.getTE_info()==null){ + tE_info= new TE_Information(); + } + else{ + tE_info = edge.getTE_info(); + } + defaultTeMetric.setLinkMetric((long)metric); + tE_info.setDefaultTEMetric(defaultTeMetric); + edge.setTE_info(tE_info); + } + + NodeList unreserved_bandwidth_nl = element.getElementsByTagName("unreserved_bandwidth"); + if (unreserved_bandwidth_nl!=null){ + int num_u_b=unreserved_bandwidth_nl.getLength(); + UnreservedBandwidth unreservedBandwidth; + if (num_u_b>0){ + if(edge.getTE_info()==null){ + TE_Information tE_info= new TE_Information(); + if (commonBitmapLabelSet){ + if(lambdaEnd!=Integer.MAX_VALUE) + tE_info.createBitmapLabelSet(numLabels, grid, cs, n,lambdaIni,lambdaEnd); + else + tE_info.createBitmapLabelSet(numLabels, grid, cs, n); + } + edge.setTE_info(tE_info); + } + unreservedBandwidth =new UnreservedBandwidth(); + (edge.getTE_info()).setUnreservedBandwidth(unreservedBandwidth); + for(int k=0;k0){ + if(edge.getTE_info()==null){ + TE_Information tE_info= new TE_Information(); + + if (commonBitmapLabelSet){ + if(lambdaEnd!=Integer.MAX_VALUE){ + + tE_info.createBitmapLabelSet(numLabels, grid, cs, n,lambdaIni,lambdaEnd); + } + else + tE_info.createBitmapLabelSet(numLabels, grid, cs, n); + } + //tid.util.FuncionesUtiles.printByte(((BitmapLabelSet)tE_info.getAvailableLabels().getLabelSet()).getBytesBitmapReserved(),"getBytesBitmapReserved1:"); + edge.setTE_info(tE_info); + + } + + Element number_wlan_el = (Element) maximum_wlans_nl.item(0); + String s_number_wlans = getCharacterDataFromElement(number_wlan_el); + + int number_wlans=Integer.parseInt(s_number_wlans.replace("\n", "").replaceAll("\\s","")); + (edge.getTE_info()).setNumberWLANs(number_wlans); + (edge.getTE_info()).initWLANs(); + + } + } + + if(edge.getTE_info()==null){ + TE_Information tE_info= new TE_Information(); + edge.setTE_info(tE_info); + } + if (commonBitmapLabelSet){ + if(lambdaEnd!=Integer.MAX_VALUE) + edge.getTE_info().createBitmapLabelSet(numLabels, grid, cs, n,lambdaIni,lambdaEnd); + else + edge.getTE_info().createBitmapLabelSet(numLabels, grid, cs, n); + } + + NodeList availableLabels_node = element.getElementsByTagName("AvailableLabels"); + if ( availableLabels_node != null){ + for (int k = 0; k < availableLabels_node.getLength(); k++) { + Element availableLabels_e = (Element) availableLabels_node.item(k); + NodeList labelSetField_node = availableLabels_e.getElementsByTagName("LabelSetField"); + Element labelSetField_el = (Element) labelSetField_node.item(0); + if (labelSetField_el.getAttributeNode("type").getValue().equals("4")){//Tengo BitMapSet + + NodeList numbLabels_node = labelSetField_el.getElementsByTagName("numLabels"); + + Element numbLabels_e = (Element) numbLabels_node.item(0); + String numbLabels_s = getCharacterDataFromElement(numbLabels_e); + numLabels=Integer.parseInt(numbLabels_s); + + NodeList baseLabel_node = labelSetField_el.getElementsByTagName("baseLabel"); + Element baseLabel_e = (Element) baseLabel_node.item(0); + + byte[] bitmap=new byte[1]; + NodeList bitmap_node = labelSetField_el.getElementsByTagName("bitmap"); + int result=0; + Element bitmap_e = (Element) bitmap_node.item(0); + if (bitmap_e!=null){ + String bitmap_string=getCharacterDataFromElement(bitmap_e); + log.debug("Bitmap read: "+bitmap_string); + for (int p =0; p "); + } + } + } + + } + log.debug("Preparing to add edge"); + try{ + if(graph.containsEdge(s_router_id_addr, d_router_id_addr)){ + graph.getEdge(s_router_id_addr, d_router_id_addr).setNumberFibers(graph.getEdge(s_router_id_addr, d_router_id_addr).getNumberFibers()+1); + }else{ + log.debug("s_router_id_addr: "+s_router_id_addr.toString()+"; d_router_id_addr: "+d_router_id_addr.toString()+"; edge: "+edge); + graph.addEdge(s_router_id_addr, d_router_id_addr, edge); + graph.getEdge(s_router_id_addr, d_router_id_addr).setNumberFibers(1); + } + log.info("Adding edge from "+s_router_id_addr.toString()+" to "+d_router_id_addr.toString()+"; \n "+edge); + + }catch(Exception e){ + log.error("Problem with source "+s_router_id_addr+" destination "+d_router_id_addr); + e.printStackTrace(); + System.exit(-1); + } + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + log.debug("Info graph edge :: "+graph.edgeSet()); + return graph; + } + + /*private static SimpleDirectedWeightedGraph readGraphIntraDomain(Element element1, String layer, Logger log){ + + Object router_id_addr = null; + + HashMapSIDS = new HashMap(); + HashMapSIDSDP = new HashMap(); + + SimpleDirectedWeightedGraph graph = new SimpleDirectedWeightedGraph(IntraDomainEdge.class); + //NodeList nodes_domains = doc.getElementsByTagName("domain"); + boolean readNetwork=false; + //Element element1 = (Element) nodes_domains.item(j); + String domain_id = ""; + + if (layer!=null){ + NodeList domain_layer = element1.getElementsByTagName("layer"); + if (domain_layer.getLength()==1){ + Element layer_type = (Element) domain_layer.item(0); + log.info("Layer: " + layer_type.getAttributeNode("type").getValue()); + log.info("Reading network topology"); + if (layer_type.getAttributeNode("type").getValue().equals(layer)){ + readNetwork = true; + + } + if (layer.equals("interlayer")){ + readNetwork = true; + } + } + }else { + readNetwork=true; + } + if (readNetwork){ + Element element_domain = element1; + NodeList nodes_domain_id = element_domain.getElementsByTagName("domain_id"); + for (int k = 0; k < nodes_domain_id.getLength(); k++) { + Element domain_id_e = (Element) nodes_domain_id.item(0); + domain_id = getCharacterDataFromElement(domain_id_e); + //log.info("Looking for nodes in domain: " + domain_id); + } + + NodeList nodes = element1.getElementsByTagName("node"); + for (int i = 0; i < nodes.getLength(); i++) { + Element element = (Element) nodes.item(i); + NodeList router_id_node = element.getElementsByTagName("router_id"); + Element router_id_e = (Element) router_id_node.item(0); + String router_id = getCharacterDataFromElement(router_id_e); + + //log.info("Adding router_id " + router_id); + router_id_addr = EdgeUtils.getEdge(router_id); + graph.addVertex(router_id_addr); + + //log.info("About to look for SID"); + NodeList SID_aux = element.getElementsByTagName("sid"); + Element SID_e = (Element) SID_aux.item(0); + if (SID_e!=null) + { + //log.info("SID existe"); + int SID = Integer.parseInt(getCharacterDataFromElement(SID_e)); + + try { //Router_type: DatapathID + SIDS.put((Inet4Address) router_id_addr,SID); + //log.info("SID of node Inet4Address: "+SID); + } catch (Exception e) { //Router_type: DatapathID + SIDSDP.put((DataPathID)router_id_addr, SID); + //log.info("SID of node DataPathID: "+SID); + } + } + else + { + //log.info("SID not found"); + } + + } + } + return graph; + }*/ + + public static Hashtable readMultipleDomainSimpleNetworks(String fileName, String layer,boolean allDomains,int lambdaIni, int lambdaEnd, boolean isSSONnetwork) { + Logger log = LoggerFactory.getLogger("BGP4Peer"); + Object router_id_addr = null; + Object s_router_id_addr = null; + Object d_router_id_addr = null; + Object src_Numif_id = null; + Object dst_Numif_id = null; + + + Hashtable TEDBs = new Hashtable(); + + //First, create the graph + + log.debug("1. SimpleDirectedWeightedGraph"); + + File file = new File(fileName); + try { + String domain_id = ""; + DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); + Document doc = builder.parse(file); + HashMapSIDS = new HashMap(); + HashMapSIDSDP = new HashMap(); + + NodeList nodes_domains = doc.getElementsByTagName("domain"); + if (layer!=null){ + log.debug("Reading topology, looking for layer "+ layer); + } + + + //First pass to get all the nodes + //If we need to read all the domains + for (int j = 0; j < nodes_domains.getLength(); j++) { + boolean readNetwork=false; + Element element1 = (Element) nodes_domains.item(j); + SimpleTEDB tedb = new SimpleTEDB(); + SimpleDirectedWeightedGraph graph = new SimpleDirectedWeightedGraph(IntraDomainEdge.class); + + if (layer!=null){ + NodeList domain_layer = element1.getElementsByTagName("layer"); + if (domain_layer.getLength()==1){ + Element layer_type = (Element) domain_layer.item(0); + log.debug("Layer: " + layer_type.getAttributeNode("type").getValue()); + log.debug("Reading network topology"); + if (layer_type.getAttributeNode("type").getValue().equals(layer)){ + readNetwork = true; + + } + if (layer.equals("interlayer")){ + readNetwork = true; + } + } + }else { + readNetwork=true; + } + if (readNetwork){ + Element element_domain = (Element) nodes_domains.item(j); + NodeList nodes_domain_id = element_domain.getElementsByTagName("domain_id"); + for (int k = 0; k < nodes_domain_id.getLength(); k++) { + Element domain_id_e = (Element) nodes_domain_id.item(0); + domain_id = getCharacterDataFromElement(domain_id_e); + log.debug("Looking for nodes in domain: " + domain_id); + log.info("Loading topology from domain " + domain_id); + } + + NodeList itResourcesElement = element1.getElementsByTagName("it_resources"); + for (int i = 0; i < itResourcesElement.getLength(); i++) { + Element element = (Element) itResourcesElement.item(i); + + NodeList itResourcesControllerITList = element.getElementsByTagName("controller_it"); + Element itResourcesControllerITElement = (Element) itResourcesControllerITList.item(0); + String itResourcesControllerIT = getCharacterDataFromElement(itResourcesControllerITElement); + + NodeList itResourcesCpuList = element.getElementsByTagName("cpu"); + Element itResourcesCpuElement = (Element) itResourcesCpuList.item(0); + String itResourcesCpu = getCharacterDataFromElement(itResourcesCpuElement); + + NodeList itResourcesMemList = element.getElementsByTagName("mem"); + Element itResourcesMemElement = (Element) itResourcesMemList.item(0); + String itResourcesMem = getCharacterDataFromElement(itResourcesMemElement); + + NodeList itResourcesStorageList = element.getElementsByTagName("storage"); + Element itResourcesStorageElement = (Element) itResourcesStorageList.item(0); + String itResourcesStorage = getCharacterDataFromElement(itResourcesStorageElement); + + IT_Resources itResources = new IT_Resources(); + if (itResourcesControllerIT!=null) itResources.setControllerIT(itResourcesControllerIT); + if (itResourcesCpu!=null) itResources.setCpu(itResourcesCpu); + if (itResourcesMem!=null) itResources.setMem(itResourcesMem); + if (itResourcesStorage!=null) itResources.setStorage(itResourcesStorage); + + + tedb.setItResources(itResources); + + } + NodeList nodes = element1.getElementsByTagName("node"); + for (int i = 0; i < nodes.getLength(); i++) { + Element element = (Element) nodes.item(i); + NodeList router_id_node = element.getElementsByTagName("router_id"); + Element router_id_e = (Element) router_id_node.item(0); + String router_id = getCharacterDataFromElement(router_id_e); + + log.info("Adding node " + router_id); + router_id_addr = EdgeUtils.getEdge(router_id); + graph.addVertex(router_id_addr); + + log.debug("About to look for SID"); + NodeList SID_aux = element.getElementsByTagName("sid"); + Element SID_e = (Element) SID_aux.item(0); + if (SID_e!=null) + { + log.debug("SID exist"); + int SID = Integer.parseInt(getCharacterDataFromElement(SID_e)); + + try { //Router_type: DatapathID + SIDS.put((Inet4Address) router_id_addr,SID); + log.debug("SID of node Inet4Address: "+SID); + } catch (Exception e) { //Router_type: DatapathID + SIDSDP.put((DataPathID)router_id_addr, SID); + log.debug("SID of node DataPathID: "+SID); + } + } + else + { + log.debug("SID not found"); + } + + } + } + + tedb.setNetworkGraph(graph); + tedb.setDomainID((Inet4Address) Inet4Address.getByName(domain_id)); + TEDBs.put(domain_id,tedb); + } + + + //Next pass to get all the links + for (int j = 0; j < nodes_domains.getLength(); j++) { + SimpleDirectedWeightedGraph graph=null; + boolean readNetwork=false; + Element element1 = (Element) nodes_domains.item(j); + + if (layer!=null){ + NodeList domain_layer = element1.getElementsByTagName("layer"); + if (domain_layer.getLength()==1){ + Element layer_type = (Element) domain_layer.item(0); + log.debug("Layer: " + layer_type.getAttributeNode("type").getValue()); + log.debug("Reading Topology"); + if (layer_type.getAttributeNode("type").getValue().equals(layer)){ + readNetwork = true; + } + } + }else { + readNetwork=true; + } + log.debug("Read network = "+readNetwork); + if (readNetwork){ + Element element_domain = (Element) nodes_domains.item(j); + NodeList nodes_domain_id = element_domain.getElementsByTagName("domain_id"); + + for (int k = 0; k < nodes_domain_id.getLength(); k++) { + Element domain_id_e = (Element) nodes_domain_id.item(0); + domain_id = getCharacterDataFromElement(domain_id_e); + log.debug("Looking for links in domain: " + domain_id); + } + //System.out.println("VVV debug domain id:"+domain_id); + SimpleTEDB domainTEDB = (SimpleTEDB)TEDBs.get( domain_id); + graph = domainTEDB.getNetworkGraph(); + + int numLabels=0; + TE_Information tE_info_common=null; + Boolean commonBitmapLabelSet = false; + NodeList edgeCommon = element1.getElementsByTagName("edgeCommon"); + int grid=0; + int cs=0; + int n=0; + for (int i = 0; i < edgeCommon.getLength(); i++) { + Element edgeCommonElement = (Element) edgeCommon.item(i); + tE_info_common =readTE_INFOfromXml(tE_info_common,edgeCommonElement, false,numLabels, grid, cs, n, 0, Integer.MAX_VALUE); + NodeList availableLabels_node = edgeCommonElement.getElementsByTagName("AvailableLabels"); + for (int k = 0; k < availableLabels_node.getLength(); k++) { + Element availableLabels_e = (Element) availableLabels_node.item(k); + NodeList labelSetField_node = availableLabels_e.getElementsByTagName("LabelSetField"); + Element labelSetField_el = (Element) labelSetField_node.item(0); + if (labelSetField_el.getAttributeNode("type").getValue().equals("4")){//Tengo BitMapSet + //Crear un BitMapSet + + NodeList numbLabels_node = labelSetField_el.getElementsByTagName("numLabels"); + + Element numbLabels_e = (Element) numbLabels_node.item(0); + String numbLabels_s = getCharacterDataFromElement(numbLabels_e); + numLabels=Integer.parseInt(numbLabels_s); + + NodeList baseLabel_node = labelSetField_el.getElementsByTagName("baseLabel"); + Element baseLabel_e = (Element) baseLabel_node.item(0); + + float min_frequency; + + grid= Integer.parseInt(baseLabel_e.getAttributeNode("grid").getValue()); + + cs = Integer.parseInt(baseLabel_e.getAttributeNode("cs").getValue()); + boolean n_frequency_included=false; + if (baseLabel_e.getAttributeNode("n") != null ){ + n = Integer.parseInt(baseLabel_e.getAttributeNode("n").getValue()); + n_frequency_included = true; + } + else if (baseLabel_e.getAttributeNode("min_frequency") != null){ + String s_min_frequency = labelSetField_el.getAttributeNode("min_frequency").getValue(); + + min_frequency=Float.parseFloat(s_min_frequency); + n = ((int)min_frequency - 1471)/20; + n_frequency_included=true; + } + if (n_frequency_included){ + commonBitmapLabelSet = true; + }else{ + log.error("ERROR reading the xml file of the topology, you should enter "); + } + } + } + + } + /*if(isSSONnetwork ==true){ + if(cs==4){ + numLabels=numLabels*4; + } + else if (cs==5){ + numLabels=numLabels*8; + } + }*/ + + NodeList edges = element_domain.getElementsByTagName("edge"); + for (int i = 0; i < edges.getLength(); i++) { + log.debug("New Link"); + Element element = (Element) edges.item(i); + //By default, all nodes are intradomain + String type; + Attr attr_type=element.getAttributeNode("type"); + if (attr_type==null){ + type="intradomain"; + }else { + type=attr_type.getValue(); + /*if (allDomains){ + if (type.equals("interdomain")){ + type="intradomain"; + } + }*/ + //else if (type.equals("interlayer")){ + if (layer!=null && layer.equals("interlayer")){ + type="intradomain"; + } + + //} + } + log.debug("type::"+type); + if (type.equals("intradomain")) { + IntraDomainEdge edge = new IntraDomainEdge(); + NodeList source = element.getElementsByTagName("source"); + Element source_router_el = (Element) source.item(0); + + NodeList source_router_id = source_router_el.getElementsByTagName("router_id"); + Element source_router_id_el = (Element) source_router_id.item(0); + String s_r_id = getCharacterDataFromElement(source_router_id_el); + s_router_id_addr= EdgeUtils.getEdge(s_r_id); + + NodeList source_if_id_nl = source_router_el.getElementsByTagName("if_id"); + Element source_if_id_el = (Element) source_if_id_nl.item(0); + String s_source_if_id; + int src_if_id = -1; + if (source_if_id_el!=null){ + s_source_if_id = getCharacterDataFromElement(source_if_id_el); + src_if_id = Integer.parseInt(s_source_if_id); + } + log.debug("SRC if id: "+src_if_id); + + NodeList source_Numif_id_nl = source_router_el.getElementsByTagName("NumIf_id"); + Element source_Numif_id_el = (Element) source_Numif_id_nl.item(0); + String s_source_Numif_id; + if (source_Numif_id_el!=null){ + s_source_Numif_id = getCharacterDataFromElement(source_Numif_id_el); + try { // src_Numif_id type : Inet4Address + src_Numif_id = (Inet4Address) Inet4Address.getByName(s_source_Numif_id); + } catch (Exception e) { // src_Numif_id type : DataPathID + src_Numif_id = DataPathID.getByName(s_source_Numif_id); + } + } + + NodeList dest_nl = element.getElementsByTagName("destination"); + Element dest_el = (Element) dest_nl.item(0); + + NodeList dest_router_id_nl = dest_el.getElementsByTagName("router_id"); + Element dest_router_id_el = (Element) dest_router_id_nl.item(0); + String d_r_id = getCharacterDataFromElement(dest_router_id_el); + d_router_id_addr= EdgeUtils.getEdge(d_r_id); + + //Anyadimos los SID + if (SIDS.get(s_router_id_addr)!=null && SIDS.get(d_router_id_addr)!=null) + { + log.debug("setting SIDS src: "+SIDS.get(s_router_id_addr)+" dst: "+SIDS.get(d_router_id_addr)); + edge.setSrc_sid(SIDS.get(s_router_id_addr)); + edge.setDst_sid(SIDS.get(d_router_id_addr)); + log.debug("edge.getSrc_sid(): "+edge.getSrc_sid()); + log.debug("edge.getDst_sid(): "+edge.getDst_sid()); + } + else if (SIDSDP.get(s_router_id_addr)!=null && SIDSDP.get(d_router_id_addr)!=null) + { + log.debug("setting SIDSDP src: "+SIDSDP.get(s_router_id_addr)+" dst: "+SIDSDP.get(d_router_id_addr)); + edge.setSrc_sid(SIDSDP.get(s_router_id_addr)); + edge.setDst_sid(SIDSDP.get(d_router_id_addr)); + log.debug("edge.getSrc_sid(): "+edge.getSrc_sid()); + log.debug("edge.getDst_sid(): "+edge.getDst_sid()); + } + + + NodeList dest_if_id_nl = dest_el.getElementsByTagName("if_id"); + Element dest_if_id_el= (Element) dest_if_id_nl.item(0); + String s_dest_if_id; + int dst_if_id = -1; + if (dest_if_id_el!=null){ + s_dest_if_id = getCharacterDataFromElement(dest_if_id_el); + dst_if_id = Integer.parseInt(s_dest_if_id); + } + log.debug("DST if id: "+dst_if_id); + + NodeList dest_Numif_id_nl = dest_el.getElementsByTagName("NumIf_id"); + Element dest_Numif_id_el = (Element) dest_Numif_id_nl.item(0); + String s_dest_Numif_id; + + if (source_Numif_id_el!=null){ + s_dest_Numif_id = getCharacterDataFromElement(dest_Numif_id_el); + + try { // s_dest_Numif_id type : Inet4Address + dst_Numif_id = (Inet4Address) Inet4Address.getByName(s_dest_Numif_id); + } catch (Exception e) { // s_dest_Numif_id type : DataPathID + dst_Numif_id = DataPathID.getByName(s_dest_Numif_id); + } + } + // Añadimos interfaces Numeradas + if (src_Numif_id!=null){ + edge.setSrc_Numif_id(src_Numif_id); + }if (dst_Numif_id!=null){ + edge.setDst_Numif_id(dst_Numif_id); + }else{ + if (src_if_id != -1){ + edge.setSrc_if_id(src_if_id); + } + if (dst_if_id != -1){ + edge.setDst_if_id(dst_if_id); + } + } + + //DELAY, IF IT COMES.. + NodeList delay_ms_nl = element.getElementsByTagName("delay"); + if (delay_ms_nl.getLength()>0){ + + Element delay_ms_el = (Element)delay_ms_nl.item(0); + String s_delay_ms=getCharacterDataFromElement(delay_ms_el); + double delay_ms=Double.parseDouble(s_delay_ms); + edge.setDelay_ms(delay_ms); + } + + //TE Link information + edge.setTE_info(readTE_INFOfromXml(tE_info_common, element, commonBitmapLabelSet,numLabels, grid, cs, n,lambdaIni,lambdaEnd)); + + + NodeList availableLabels_node = element.getElementsByTagName("AvailableLabels"); + if ( availableLabels_node != null){ + for (int k = 0; k < availableLabels_node.getLength(); k++) { + Element availableLabels_e = (Element) availableLabels_node.item(k); + NodeList labelSetField_node = availableLabels_e.getElementsByTagName("LabelSetField"); + Element labelSetField_el = (Element) labelSetField_node.item(0); + if (labelSetField_el.getAttributeNode("type").getValue().equals("4")){//Tengo BitMapSet + + NodeList numbLabels_node = labelSetField_el.getElementsByTagName("numLabels"); + + Element numbLabels_e = (Element) numbLabels_node.item(0); + String numbLabels_s = getCharacterDataFromElement(numbLabels_e); + numLabels=Integer.parseInt(numbLabels_s); + + NodeList baseLabel_node = labelSetField_el.getElementsByTagName("baseLabel"); + Element baseLabel_e = (Element) baseLabel_node.item(0); + + byte[] bitmap=new byte[1]; + NodeList bitmap_node = labelSetField_el.getElementsByTagName("bitmap"); + int result=0; + Element bitmap_e = (Element) bitmap_node.item(0); + if (bitmap_e!=null){ + String bitmap_string=getCharacterDataFromElement(bitmap_e); + System.out.println("Bitmap read: "+bitmap_string); + for (int p =0; p "); + } + } + } + + } + log.debug("Preparing to add edge"); + log.debug("NODES IN GRAPH:: "+graph.vertexSet()); + try{ + if(graph.containsEdge(s_router_id_addr, d_router_id_addr)){ + log.debug("New Intradomain Edge"); + graph.getEdge(s_router_id_addr, d_router_id_addr).setNumberFibers(graph.getEdge(s_router_id_addr, d_router_id_addr).getNumberFibers()+1); + log.debug("s_router_id_addr: "+s_router_id_addr.toString()+"; d_router_id_addr: "+d_router_id_addr.toString()+"; edge: "+edge); + log.info("New intradomain link: "+s_router_id_addr.toString()+" --> "+d_router_id_addr.toString());//+" \n "+edge); + + }else{ + log.debug("s_router_id_addr: "+s_router_id_addr.toString()+"; d_router_id_addr: "+d_router_id_addr.toString()+"; edge: "+edge); + if(graph.containsVertex(d_router_id_addr)==false){ + //interDomain edge + //TODO + type="interdomain"; + + }else{ + graph.addEdge(s_router_id_addr, d_router_id_addr, edge); + graph.getEdge(s_router_id_addr, d_router_id_addr).setNumberFibers(1); + log.debug("New Intradomain Edge"); + log.info("New intradomain link: "+s_router_id_addr.toString()+" --> "+d_router_id_addr.toString());//+" \n "+edge); + + } + } + }catch(Exception e){ + log.error("Problem with source "+s_router_id_addr+" destination "+d_router_id_addr); + e.printStackTrace(); + System.exit(-1); + } + } + if(type.equals("interdomain")){ + log.debug("New Interdomain Edge"); + InterDomainEdge edge = new InterDomainEdge(); + TE_Information tE_info=readTE_INFOfromXml(tE_info_common,element, false,numLabels, grid, cs, n, 0, Integer.MAX_VALUE); + edge.setTE_info(tE_info); + NodeList source = element.getElementsByTagName("source"); + Element source_router_el = (Element) source.item(0); + NodeList source_router_id = source_router_el + .getElementsByTagName("router_id"); + Element source_router_id_el = (Element) source_router_id + .item(0); + String s_r_id = getCharacterDataFromElement(source_router_id_el); + log.debug("Edge Source router_id: " + s_r_id); + + try { // s_router_id_addr type: Inet4Address + s_router_id_addr = (Inet4Address) Inet4Address.getByName(s_r_id); + } catch (Exception e) {// s_router_id_addr type: DataPathID + s_router_id_addr = DataPathID.getByName(s_r_id); + } + Inet4Address source_domain_id = (Inet4Address) Inet4Address.getByName(domain_id); + log.debug("Edge Source domain_id: " + source_domain_id); + + NodeList source_if_id_nl = source_router_el + .getElementsByTagName("if_id"); + Element source_if_id_el = (Element) source_if_id_nl.item(0); + String s_source_if_id = getCharacterDataFromElement(source_if_id_el); + log.debug("Edge Source if_id: " + s_source_if_id); + int src_if_id = Integer.parseInt(s_source_if_id); + + NodeList dest_nl = element.getElementsByTagName("destination"); + Element dest_el = (Element) dest_nl.item(0); + NodeList dest_router_id_nl = dest_el + .getElementsByTagName("router_id"); + Element dest_router_id_el = (Element) dest_router_id_nl.item(0); + String d_r_id = getCharacterDataFromElement(dest_router_id_el); + log.debug("Edge Destination router_id: " + d_r_id); + try { // d_router_id_addr type: Inet4Address + d_router_id_addr = (Inet4Address) Inet4Address.getByName(d_r_id); + } catch (Exception e) { // d_router_id_addr type: DataPathID + d_router_id_addr = DataPathID.getByName(d_r_id); + } + //Inet4Address dest_domain_id = router_id_domain_ed.get(d_router_id_addr); + log.debug("Destination domain_id: "); + + NodeList dest_if_id_nl = dest_el.getElementsByTagName("if_id"); + Element dest_if_id_el = (Element) dest_if_id_nl.item(0); + String s_dest_if_id = getCharacterDataFromElement(dest_if_id_el); + log.debug("Edge Dest if_id: " + s_dest_if_id); + int dst_if_id = Integer.parseInt(s_dest_if_id); + + //router_id_domain_ed + //edge.setDomain_src_router(source_domain_id); + + edge.setSrc_if_id(src_if_id); + edge.setDst_if_id(dst_if_id); + edge.setDomain_src_router(source_domain_id); + //edge.setDomain_dst_router(dest_domain_id); + + edge.setSrc_router_id(s_router_id_addr); + edge.setDst_router_id(d_router_id_addr); + if(domainTEDB.getInterDomainLinks()==null){ + LinkedList interDomainLinks= new LinkedList(); + interDomainLinks.add(edge); + domainTEDB.setInterDomainLinks(interDomainLinks); + log.info("New interdomain link: "+s_router_id_addr.toString()+" --> "+d_router_id_addr.toString());//+"; \n "+edge); + + }else{ + domainTEDB.getInterDomainLinks().add(edge); + log.info("New interdomain link: "+s_router_id_addr.toString()+" --> "+d_router_id_addr.toString());//+"; \n "+edge); + + } + + } + } + + } + log.debug("Info graph edge :: "+graph.edgeSet()); + + } + } catch (Exception e) { + e.printStackTrace(); + } + + return TEDBs; + } + + public static Hashtable readMultipleDomainSimpleNetworks(String fileName, String layer,boolean allDomains,int lambdaIni, int lambdaEnd, boolean isSSONnetwork, String learntFrom) { + Logger log = LoggerFactory.getLogger("BGP4Peer"); + Object router_id_addr = null; + Object s_router_id_addr = null; + Object d_router_id_addr = null; + Object src_Numif_id = null; + Object dst_Numif_id = null; + + + Hashtable TEDBs = new Hashtable(); + + //First, create the graph + + log.debug("1. SimpleDirectedWeightedGraph"); + + File file = new File(fileName); + try { + String domain_id = ""; + DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); + Document doc = builder.parse(file); + HashMapSIDS = new HashMap(); + HashMapSIDSDP = new HashMap(); + + NodeList nodes_domains = doc.getElementsByTagName("domain"); + if (layer!=null){ + log.debug("Reading topology, looking for layer "+ layer); + } + + + //First pass to get all the nodes + //If we need to read all the domains + for (int j = 0; j < nodes_domains.getLength(); j++) { + boolean readNetwork=false; + Element element1 = (Element) nodes_domains.item(j); + SimpleTEDB tedb = new SimpleTEDB(); + SimpleDirectedWeightedGraph graph = new SimpleDirectedWeightedGraph(IntraDomainEdge.class); + + if (layer!=null){ + NodeList domain_layer = element1.getElementsByTagName("layer"); + if (domain_layer.getLength()==1){ + Element layer_type = (Element) domain_layer.item(0); + log.debug("Layer: " + layer_type.getAttributeNode("type").getValue()); + log.debug("Reading network topology"); + if (layer_type.getAttributeNode("type").getValue().equals(layer)){ + readNetwork = true; + + } + if (layer.equals("interlayer")){ + readNetwork = true; + } + } + }else { + readNetwork=true; + } + if (readNetwork){ + Element element_domain = (Element) nodes_domains.item(j); + NodeList nodes_domain_id = element_domain.getElementsByTagName("domain_id"); + for (int k = 0; k < nodes_domain_id.getLength(); k++) { + Element domain_id_e = (Element) nodes_domain_id.item(0); + domain_id = getCharacterDataFromElement(domain_id_e); + log.debug("Looking for nodes in domain: " + domain_id); + log.info("Loading topology from domain " + domain_id); + } + + NodeList itResourcesElement = element1.getElementsByTagName("it_resources"); + for (int i = 0; i < itResourcesElement.getLength(); i++) { + Element element = (Element) itResourcesElement.item(i); + + NodeList itResourcesControllerITList = element.getElementsByTagName("controller_it"); + Element itResourcesControllerITElement = (Element) itResourcesControllerITList.item(0); + String itResourcesControllerIT = getCharacterDataFromElement(itResourcesControllerITElement); + + NodeList itResourcesCpuList = element.getElementsByTagName("cpu"); + Element itResourcesCpuElement = (Element) itResourcesCpuList.item(0); + String itResourcesCpu = getCharacterDataFromElement(itResourcesCpuElement); + + NodeList itResourcesMemList = element.getElementsByTagName("mem"); + Element itResourcesMemElement = (Element) itResourcesMemList.item(0); + String itResourcesMem = getCharacterDataFromElement(itResourcesMemElement); + + NodeList itResourcesStorageList = element.getElementsByTagName("storage"); + Element itResourcesStorageElement = (Element) itResourcesStorageList.item(0); + String itResourcesStorage = getCharacterDataFromElement(itResourcesStorageElement); + + IT_Resources itResources = new IT_Resources(); + if (itResourcesControllerIT!=null){ + itResources.setControllerIT(itResourcesControllerIT); + itResources.setLearntFrom(learntFrom); + } + if (itResourcesCpu!=null) itResources.setCpu(itResourcesCpu); + if (itResourcesMem!=null) itResources.setMem(itResourcesMem); + if (itResourcesStorage!=null) { + itResources.setStorage(itResourcesStorage); + log.info("set learn from for it resources "+ itResources.toString()); + } + + tedb.setItResources(itResources); + + } + NodeList nodes = element1.getElementsByTagName("node"); + for (int i = 0; i < nodes.getLength(); i++) { + Element element = (Element) nodes.item(i); + NodeList router_id_node = element.getElementsByTagName("router_id"); + Element router_id_e = (Element) router_id_node.item(0); + String router_id = getCharacterDataFromElement(router_id_e); + + log.info("Adding node " + router_id); + router_id_addr = EdgeUtils.getEdge(router_id); + graph.addVertex(router_id_addr); + + log.debug("About to look for SID"); + NodeList SID_aux = element.getElementsByTagName("sid"); + Element SID_e = (Element) SID_aux.item(0); + if (SID_e!=null) + { + log.debug("SID exist"); + int SID = Integer.parseInt(getCharacterDataFromElement(SID_e)); + + try { //Router_type: DatapathID + SIDS.put((Inet4Address) router_id_addr,SID); + log.debug("SID of node Inet4Address: "+SID); + } catch (Exception e) { //Router_type: DatapathID + SIDSDP.put((DataPathID)router_id_addr, SID); + log.debug("SID of node DataPathID: "+SID); + } + } + else + { + log.debug("SID not found"); + } + + } + } + + tedb.setNetworkGraph(graph); + tedb.setDomainID((Inet4Address) Inet4Address.getByName(domain_id)); + TEDBs.put(domain_id,tedb); + } + + + //Next pass to get all the links + for (int j = 0; j < nodes_domains.getLength(); j++) { + SimpleDirectedWeightedGraph graph=null; + boolean readNetwork=false; + Element element1 = (Element) nodes_domains.item(j); + + if (layer!=null){ + NodeList domain_layer = element1.getElementsByTagName("layer"); + if (domain_layer.getLength()==1){ + Element layer_type = (Element) domain_layer.item(0); + log.debug("Layer: " + layer_type.getAttributeNode("type").getValue()); + log.debug("Reading Topology"); + if (layer_type.getAttributeNode("type").getValue().equals(layer)){ + readNetwork = true; + } + } + }else { + readNetwork=true; + } + log.debug("Read network = "+readNetwork); + if (readNetwork){ + Element element_domain = (Element) nodes_domains.item(j); + NodeList nodes_domain_id = element_domain.getElementsByTagName("domain_id"); + + for (int k = 0; k < nodes_domain_id.getLength(); k++) { + Element domain_id_e = (Element) nodes_domain_id.item(0); + domain_id = getCharacterDataFromElement(domain_id_e); + log.debug("Looking for links in domain: " + domain_id); + } + //System.out.println("VVV debug domain id:"+domain_id); + SimpleTEDB domainTEDB = (SimpleTEDB)TEDBs.get( domain_id); + graph = domainTEDB.getNetworkGraph(); + + int numLabels=0; + TE_Information tE_info_common=null; + Boolean commonBitmapLabelSet = false; + NodeList edgeCommon = element1.getElementsByTagName("edgeCommon"); + int grid=0; + int cs=0; + int n=0; + for (int i = 0; i < edgeCommon.getLength(); i++) { + Element edgeCommonElement = (Element) edgeCommon.item(i); + tE_info_common =readTE_INFOfromXml(tE_info_common,edgeCommonElement, false,numLabels, grid, cs, n, 0, Integer.MAX_VALUE); + NodeList availableLabels_node = edgeCommonElement.getElementsByTagName("AvailableLabels"); + for (int k = 0; k < availableLabels_node.getLength(); k++) { + Element availableLabels_e = (Element) availableLabels_node.item(k); + NodeList labelSetField_node = availableLabels_e.getElementsByTagName("LabelSetField"); + Element labelSetField_el = (Element) labelSetField_node.item(0); + if (labelSetField_el.getAttributeNode("type").getValue().equals("4")){//Tengo BitMapSet + //Crear un BitMapSet + + NodeList numbLabels_node = labelSetField_el.getElementsByTagName("numLabels"); + + Element numbLabels_e = (Element) numbLabels_node.item(0); + String numbLabels_s = getCharacterDataFromElement(numbLabels_e); + numLabels=Integer.parseInt(numbLabels_s); + + NodeList baseLabel_node = labelSetField_el.getElementsByTagName("baseLabel"); + Element baseLabel_e = (Element) baseLabel_node.item(0); + + float min_frequency; + + grid= Integer.parseInt(baseLabel_e.getAttributeNode("grid").getValue()); + + cs = Integer.parseInt(baseLabel_e.getAttributeNode("cs").getValue()); + boolean n_frequency_included=false; + if (baseLabel_e.getAttributeNode("n") != null ){ + n = Integer.parseInt(baseLabel_e.getAttributeNode("n").getValue()); + n_frequency_included = true; + } + else if (baseLabel_e.getAttributeNode("min_frequency") != null){ + String s_min_frequency = labelSetField_el.getAttributeNode("min_frequency").getValue(); + + min_frequency=Float.parseFloat(s_min_frequency); + n = ((int)min_frequency - 1471)/20; + n_frequency_included=true; + } + if (n_frequency_included){ + commonBitmapLabelSet = true; + }else{ + log.error("ERROR reading the xml file of the topology, you should enter "); + } + } + } + + } + /*if(isSSONnetwork ==true){ + if(cs==4){ + numLabels=numLabels*4; + } + else if (cs==5){ + numLabels=numLabels*8; + } + }*/ + + NodeList edges = element_domain.getElementsByTagName("edge"); + for (int i = 0; i < edges.getLength(); i++) { + log.debug("New Link"); + Element element = (Element) edges.item(i); + //By default, all nodes are intradomain + String type; + Attr attr_type=element.getAttributeNode("type"); + if (attr_type==null){ + type="intradomain"; + }else { + type=attr_type.getValue(); + /*if (allDomains){ + if (type.equals("interdomain")){ + type="intradomain"; + } + }*/ + //else if (type.equals("interlayer")){ + if (layer!=null && layer.equals("interlayer")){ + type="intradomain"; + } + + //} + } + log.debug("type::"+type); + if (type.equals("intradomain")) { + IntraDomainEdge edge = new IntraDomainEdge(); + NodeList source = element.getElementsByTagName("source"); + Element source_router_el = (Element) source.item(0); + edge.setLearntFrom(learntFrom); + NodeList source_router_id = source_router_el.getElementsByTagName("router_id"); + Element source_router_id_el = (Element) source_router_id.item(0); + String s_r_id = getCharacterDataFromElement(source_router_id_el); + s_router_id_addr= EdgeUtils.getEdge(s_r_id); + + NodeList source_if_id_nl = source_router_el.getElementsByTagName("if_id"); + Element source_if_id_el = (Element) source_if_id_nl.item(0); + String s_source_if_id; + int src_if_id = -1; + if (source_if_id_el!=null){ + s_source_if_id = getCharacterDataFromElement(source_if_id_el); + src_if_id = Integer.parseInt(s_source_if_id); + } + log.debug("SRC if id: "+src_if_id); + + NodeList source_Numif_id_nl = source_router_el.getElementsByTagName("NumIf_id"); + Element source_Numif_id_el = (Element) source_Numif_id_nl.item(0); + String s_source_Numif_id; + if (source_Numif_id_el!=null){ + s_source_Numif_id = getCharacterDataFromElement(source_Numif_id_el); + try { // src_Numif_id type : Inet4Address + src_Numif_id = (Inet4Address) Inet4Address.getByName(s_source_Numif_id); + } catch (Exception e) { // src_Numif_id type : DataPathID + src_Numif_id = DataPathID.getByName(s_source_Numif_id); + } + } + + NodeList dest_nl = element.getElementsByTagName("destination"); + Element dest_el = (Element) dest_nl.item(0); + + NodeList dest_router_id_nl = dest_el.getElementsByTagName("router_id"); + Element dest_router_id_el = (Element) dest_router_id_nl.item(0); + String d_r_id = getCharacterDataFromElement(dest_router_id_el); + d_router_id_addr= EdgeUtils.getEdge(d_r_id); + + //Anyadimos los SID + if (SIDS.get(s_router_id_addr)!=null && SIDS.get(d_router_id_addr)!=null) + { + log.debug("setting SIDS src: "+SIDS.get(s_router_id_addr)+" dst: "+SIDS.get(d_router_id_addr)); + edge.setSrc_sid(SIDS.get(s_router_id_addr)); + edge.setDst_sid(SIDS.get(d_router_id_addr)); + log.debug("edge.getSrc_sid(): "+edge.getSrc_sid()); + log.debug("edge.getDst_sid(): "+edge.getDst_sid()); + } + else if (SIDSDP.get(s_router_id_addr)!=null && SIDSDP.get(d_router_id_addr)!=null) + { + log.debug("setting SIDSDP src: "+SIDSDP.get(s_router_id_addr)+" dst: "+SIDSDP.get(d_router_id_addr)); + edge.setSrc_sid(SIDSDP.get(s_router_id_addr)); + edge.setDst_sid(SIDSDP.get(d_router_id_addr)); + log.debug("edge.getSrc_sid(): "+edge.getSrc_sid()); + log.debug("edge.getDst_sid(): "+edge.getDst_sid()); + } + + + NodeList dest_if_id_nl = dest_el.getElementsByTagName("if_id"); + Element dest_if_id_el= (Element) dest_if_id_nl.item(0); + String s_dest_if_id; + int dst_if_id = -1; + if (dest_if_id_el!=null){ + s_dest_if_id = getCharacterDataFromElement(dest_if_id_el); + dst_if_id = Integer.parseInt(s_dest_if_id); + } + log.debug("DST if id: "+dst_if_id); + + NodeList dest_Numif_id_nl = dest_el.getElementsByTagName("NumIf_id"); + Element dest_Numif_id_el = (Element) dest_Numif_id_nl.item(0); + String s_dest_Numif_id; + + if (source_Numif_id_el!=null){ + s_dest_Numif_id = getCharacterDataFromElement(dest_Numif_id_el); + + try { // s_dest_Numif_id type : Inet4Address + dst_Numif_id = (Inet4Address) Inet4Address.getByName(s_dest_Numif_id); + } catch (Exception e) { // s_dest_Numif_id type : DataPathID + dst_Numif_id = DataPathID.getByName(s_dest_Numif_id); + } + } + // Añadimos interfaces Numeradas + if (src_Numif_id!=null){ + edge.setSrc_Numif_id(src_Numif_id); + }if (dst_Numif_id!=null){ + edge.setDst_Numif_id(dst_Numif_id); + }else{ + if (src_if_id != -1){ + edge.setSrc_if_id(src_if_id); + } + if (dst_if_id != -1){ + edge.setDst_if_id(dst_if_id); + } + } + + //DELAY, IF IT COMES.. + NodeList delay_ms_nl = element.getElementsByTagName("delay"); + if (delay_ms_nl.getLength()>0){ + + Element delay_ms_el = (Element)delay_ms_nl.item(0); + String s_delay_ms=getCharacterDataFromElement(delay_ms_el); + double delay_ms=Double.parseDouble(s_delay_ms); + edge.setDelay_ms(delay_ms); + } + + //TE Link information + edge.setTE_info(readTE_INFOfromXml(tE_info_common, element, commonBitmapLabelSet,numLabels, grid, cs, n,lambdaIni,lambdaEnd)); + + + NodeList availableLabels_node = element.getElementsByTagName("AvailableLabels"); + if ( availableLabels_node != null){ + for (int k = 0; k < availableLabels_node.getLength(); k++) { + Element availableLabels_e = (Element) availableLabels_node.item(k); + NodeList labelSetField_node = availableLabels_e.getElementsByTagName("LabelSetField"); + Element labelSetField_el = (Element) labelSetField_node.item(0); + if (labelSetField_el.getAttributeNode("type").getValue().equals("4")){//Tengo BitMapSet + + NodeList numbLabels_node = labelSetField_el.getElementsByTagName("numLabels"); + + Element numbLabels_e = (Element) numbLabels_node.item(0); + String numbLabels_s = getCharacterDataFromElement(numbLabels_e); + numLabels=Integer.parseInt(numbLabels_s); + + NodeList baseLabel_node = labelSetField_el.getElementsByTagName("baseLabel"); + Element baseLabel_e = (Element) baseLabel_node.item(0); + + byte[] bitmap=new byte[1]; + NodeList bitmap_node = labelSetField_el.getElementsByTagName("bitmap"); + int result=0; + Element bitmap_e = (Element) bitmap_node.item(0); + if (bitmap_e!=null){ + String bitmap_string=getCharacterDataFromElement(bitmap_e); + System.out.println("Bitmap read: "+bitmap_string); + for (int p =0; p "); + } + } + } + + } + log.debug("Preparing to add edge"); + log.debug("NODES IN GRAPH:: "+graph.vertexSet()); + try{ + if(graph.containsEdge(s_router_id_addr, d_router_id_addr)){ + log.debug("New Intradomain Edge"); + graph.getEdge(s_router_id_addr, d_router_id_addr).setNumberFibers(graph.getEdge(s_router_id_addr, d_router_id_addr).getNumberFibers()+1); + log.debug("s_router_id_addr: "+s_router_id_addr.toString()+"; d_router_id_addr: "+d_router_id_addr.toString()+"; edge: "+edge); + log.info("New intradomain link: "+s_router_id_addr.toString()+" --> "+d_router_id_addr.toString());//+" \n "+edge); + + }else{ + log.debug("s_router_id_addr: "+s_router_id_addr.toString()+"; d_router_id_addr: "+d_router_id_addr.toString()+"; edge: "+edge); + if(graph.containsVertex(d_router_id_addr)==false){ + //interDomain edge + //TODO + type="interdomain"; + + }else{ + graph.addEdge(s_router_id_addr, d_router_id_addr, edge); + graph.getEdge(s_router_id_addr, d_router_id_addr).setNumberFibers(1); + log.debug("New Intradomain Edge"); + log.info("New intradomain link: "+s_router_id_addr.toString()+" --> "+d_router_id_addr.toString()+" learnt "+edge.getLearntFrom());//+" \n "+edge); + + } + } + }catch(Exception e){ + log.error("Problem with source "+s_router_id_addr+" destination "+d_router_id_addr); + e.printStackTrace(); + System.exit(-1); + } + } + if(type.equals("interdomain")){ + log.debug("New Interdomain Edge"); + InterDomainEdge edge = new InterDomainEdge(); + TE_Information tE_info=readTE_INFOfromXml(tE_info_common,element, false,numLabels, grid, cs, n, 0, Integer.MAX_VALUE); + edge.setTE_info(tE_info); + edge.setLearntFrom(learntFrom); + NodeList source = element.getElementsByTagName("source"); + Element source_router_el = (Element) source.item(0); + NodeList source_router_id = source_router_el + .getElementsByTagName("router_id"); + Element source_router_id_el = (Element) source_router_id + .item(0); + String s_r_id = getCharacterDataFromElement(source_router_id_el); + log.debug("Edge Source router_id: " + s_r_id); + + try { // s_router_id_addr type: Inet4Address + s_router_id_addr = (Inet4Address) Inet4Address.getByName(s_r_id); + } catch (Exception e) {// s_router_id_addr type: DataPathID + s_router_id_addr = DataPathID.getByName(s_r_id); + } + Inet4Address source_domain_id = (Inet4Address) Inet4Address.getByName(domain_id); + log.debug("Edge Source domain_id: " + source_domain_id); + + NodeList source_if_id_nl = source_router_el + .getElementsByTagName("if_id"); + Element source_if_id_el = (Element) source_if_id_nl.item(0); + String s_source_if_id = getCharacterDataFromElement(source_if_id_el); + log.debug("Edge Source if_id: " + s_source_if_id); + int src_if_id = Integer.parseInt(s_source_if_id); + + NodeList dest_nl = element.getElementsByTagName("destination"); + Element dest_el = (Element) dest_nl.item(0); + NodeList dest_router_id_nl = dest_el + .getElementsByTagName("router_id"); + Element dest_router_id_el = (Element) dest_router_id_nl.item(0); + String d_r_id = getCharacterDataFromElement(dest_router_id_el); + log.debug("Edge Destination router_id: " + d_r_id); + try { // d_router_id_addr type: Inet4Address + d_router_id_addr = (Inet4Address) Inet4Address.getByName(d_r_id); + } catch (Exception e) { // d_router_id_addr type: DataPathID + d_router_id_addr = DataPathID.getByName(d_r_id); + } + //Inet4Address dest_domain_id = router_id_domain_ed.get(d_router_id_addr); + log.debug("Destination domain_id: "); + + NodeList dest_if_id_nl = dest_el.getElementsByTagName("if_id"); + Element dest_if_id_el = (Element) dest_if_id_nl.item(0); + String s_dest_if_id = getCharacterDataFromElement(dest_if_id_el); + log.debug("Edge Dest if_id: " + s_dest_if_id); + int dst_if_id = Integer.parseInt(s_dest_if_id); + + //router_id_domain_ed + //edge.setDomain_src_router(source_domain_id); + + edge.setSrc_if_id(src_if_id); + edge.setDst_if_id(dst_if_id); + edge.setDomain_src_router(source_domain_id); + //edge.setDomain_dst_router(dest_domain_id); + + edge.setSrc_router_id(s_router_id_addr); + edge.setDst_router_id(d_router_id_addr); + if(domainTEDB.getInterDomainLinks()==null){ + LinkedList interDomainLinks= new LinkedList(); + interDomainLinks.add(edge); + domainTEDB.setInterDomainLinks(interDomainLinks); + log.info("New interdomain link: "+s_router_id_addr.toString()+" --> "+d_router_id_addr.toString()+" learnt "+edge.getLearntFrom());//+"; \n "+edge); + + }else{ + domainTEDB.getInterDomainLinks().add(edge); + log.info("New interdomain link: "+s_router_id_addr.toString()+" --> "+d_router_id_addr.toString()+" learnt "+edge.getLearntFrom());//+"; \n "+edge); + + } + + } + } + + } + log.debug("Info graph edge :: "+graph.edgeSet()); + + } + } catch (Exception e) { + e.printStackTrace(); + } + + return TEDBs; + } + + + private static TE_Information readTE_INFOfromXml(TE_Information tE_info_common,Element element, Boolean commonBitmapLabelSet, int numLabels, int grid, int cs, int n, int lambdaIni, int lambdaEnd) { + + TE_Information tE_info= new TE_Information(); + if (commonBitmapLabelSet){ + if(lambdaEnd!=Integer.MAX_VALUE) + tE_info.createBitmapLabelSet(numLabels, grid, cs, n,lambdaIni,lambdaEnd); + else + tE_info.createBitmapLabelSet(numLabels, grid, cs, n); + } + + NodeList maximum_bandwidth_nl = element.getElementsByTagName("maximum_bandwidth"); + if (maximum_bandwidth_nl!=null){ + if (maximum_bandwidth_nl.getLength()>0){ + Element maximum_bandwidth_el = (Element) maximum_bandwidth_nl.item(0); + String s_maximum_bandwidth = getCharacterDataFromElement(maximum_bandwidth_el); + + float maximum_bandwidth=Float.parseFloat(s_maximum_bandwidth); + MaximumBandwidth maximumBandwidth =new MaximumBandwidth(); + maximumBandwidth.setMaximumBandwidth(maximum_bandwidth); + tE_info.setMaximumBandwidth(maximumBandwidth); + + } + }else if(tE_info_common!=null && tE_info_common.getMaximumBandwidth()!=null){ + MaximumBandwidth maximumBandwidth =new MaximumBandwidth(); + maximumBandwidth.setMaximumBandwidth(tE_info_common.getMaximumBandwidth().getMaximumBandwidth()); + tE_info.setMaximumBandwidth(maximumBandwidth); + } + /** + * NodeList SID_aux = element.getElementsByTagName("sid"); + Element SID_e = (Element) SID_aux.item(0); + if (SID_e!=null) + { + log.info("SID existe"); + int SID = Integer.parseInt(getCharacterDataFromElement(SID_e)); + SIDS.put(router_id_addr,SID); + log.info("SID of node: "+SID); + } + else + { + log.info("SID not found"); + } + */ + + NodeList defaultmetric = element.getElementsByTagName("default_te_metric"); + Element metric_aux = (Element) defaultmetric.item(0); + + if (metric_aux != null){ + String s_metric_aux = getCharacterDataFromElement(metric_aux); + int metric = Integer.parseInt(s_metric_aux); + DefaultTEMetricLinkAttribTLV defaultTeMetric= new DefaultTEMetricLinkAttribTLV(); + defaultTeMetric.setLinkMetric((long)metric); + tE_info.setDefaultTEMetric(defaultTeMetric); + }else if(tE_info_common!=null && tE_info_common.getDefaultTEMetric()!=null){ + DefaultTEMetricLinkAttribTLV defaultTeMetric= new DefaultTEMetricLinkAttribTLV(); + defaultTeMetric.setLinkMetric(tE_info_common.getDefaultTEMetric().getLinkMetric()); + tE_info.setDefaultTEMetric(defaultTeMetric); + } + + NodeList unreserved_bandwidth_nl = element.getElementsByTagName("unreserved_bandwidth"); + if (unreserved_bandwidth_nl!=null){ + int num_u_b=unreserved_bandwidth_nl.getLength(); + UnreservedBandwidth unreservedBandwidth; + if (num_u_b>0){ + unreservedBandwidth =new UnreservedBandwidth(); + tE_info.setUnreservedBandwidth(unreservedBandwidth); + for(int k=0;k0){ + Element number_wlan_el = (Element) maximum_wlans_nl.item(0); + String s_number_wlans = getCharacterDataFromElement(number_wlan_el); + + int number_wlans=Integer.parseInt(s_number_wlans.replace("\n", "").replaceAll("\\s","")); + tE_info.setNumberWLANs(number_wlans); + tE_info.initWLANs(); + } + } + + NodeList undirDelayLinks = element.getElementsByTagName("undir_delay_link"); + Element undirDelayLink = (Element) undirDelayLinks.item(0); + + if (undirDelayLink != null){ + String s_undirDelayLink = getCharacterDataFromElement(undirDelayLink); + int undirDelayLinkValue = Integer.parseInt(s_undirDelayLink); + UndirectionalLinkDelayDescriptorSubTLV uldSTLV = new UndirectionalLinkDelayDescriptorSubTLV(); + uldSTLV.setDelay(undirDelayLinkValue); + tE_info.setUndirLinkDelay(uldSTLV); + }else if(tE_info_common!=null && tE_info_common.getUndirLinkDelay()!=null){ + UndirectionalLinkDelayDescriptorSubTLV uldSTLV = new UndirectionalLinkDelayDescriptorSubTLV(); + uldSTLV.setDelay(tE_info_common.getUndirLinkDelay().getDelay()); + tE_info.setUndirLinkDelay(uldSTLV); + } + + NodeList undirDelayVars = element.getElementsByTagName("undir_delay_variation"); + Element undirDelayVar = (Element) undirDelayVars.item(0); + if (undirDelayVar != null){ + String s_undirDelayVar = getCharacterDataFromElement(undirDelayVar); + int undirDelayVarValue = Integer.parseInt(s_undirDelayVar); + UndirectionalDelayVariationDescriptorSubTLV udvSTLV = new UndirectionalDelayVariationDescriptorSubTLV(); + udvSTLV.setDelayVar(undirDelayVarValue); + tE_info.setUndirDelayVar(udvSTLV); + }else if(tE_info_common!=null && tE_info_common.getUndirDelayVar()!=null){ + UndirectionalDelayVariationDescriptorSubTLV uldSTLV = new UndirectionalDelayVariationDescriptorSubTLV(); + uldSTLV.setDelayVar(tE_info_common.getUndirDelayVar().getDelayVar()); + tE_info.setUndirDelayVar(uldSTLV); + } + + NodeList undirLinkLosss = element.getElementsByTagName("undir_link_loss"); + Element undirLinkLoss = (Element) undirLinkLosss.item(0); + if (undirLinkLoss != null){ + String s_undirLinkLoss = getCharacterDataFromElement(undirLinkLoss); + int undirLinkLossValue = Integer.parseInt(s_undirLinkLoss); + UndirectionalLinkLossDescriptorSubTLV uSTLV = new UndirectionalLinkLossDescriptorSubTLV(); + uSTLV.setLinkLoss(undirLinkLossValue); + tE_info.setUndirLinkLoss(uSTLV); + }else if(tE_info_common!=null && tE_info_common.getUndirLinkLoss()!=null){ + UndirectionalLinkLossDescriptorSubTLV uldSTLV = new UndirectionalLinkLossDescriptorSubTLV(); + uldSTLV.setLinkLoss(tE_info_common.getUndirLinkLoss().getLinkLoss()); + tE_info.setUndirLinkLoss(uldSTLV); + } + + NodeList undirReBws = element.getElementsByTagName("undir_residual_bandwidth"); + Element undirReBw = (Element) undirReBws.item(0); + if (undirReBw != null){ + String s_undirReBw = getCharacterDataFromElement(undirReBw); + int undirReBwValue = Integer.parseInt(s_undirReBw); + UndirectionalResidualBandwidthDescriptorSubTLV uSTLV = new UndirectionalResidualBandwidthDescriptorSubTLV(); + uSTLV.setResidualBw(undirReBwValue); + tE_info.setUndirResidualBw(uSTLV); + }else if(tE_info_common!=null && tE_info_common.getUndirResidualBw()!=null){ + UndirectionalResidualBandwidthDescriptorSubTLV uldSTLV = new UndirectionalResidualBandwidthDescriptorSubTLV(); + uldSTLV.setResidualBw( tE_info_common.getUndirResidualBw().getResidualBw()); + tE_info.setUndirResidualBw(uldSTLV); + } + + NodeList undirAvalBws = element.getElementsByTagName("undir_available_bandwidth"); + Element undirAvalBw = (Element) undirAvalBws.item(0); + if (undirAvalBw != null){ + String s_undirAvalBw = getCharacterDataFromElement(undirAvalBw); + int undirAvalBwValue = Integer.parseInt(s_undirAvalBw); + UndirectionalAvailableBandwidthDescriptorSubTLV uSTLV = new UndirectionalAvailableBandwidthDescriptorSubTLV(); + uSTLV.setAvailableBw(undirAvalBwValue); + tE_info.setUndirAvailableBw(uSTLV); + }else if(tE_info_common!=null && tE_info_common.getUndirAvailableBw()!=null){ + UndirectionalAvailableBandwidthDescriptorSubTLV uldSTLV = new UndirectionalAvailableBandwidthDescriptorSubTLV(); + uldSTLV.setAvailableBw( tE_info_common.getUndirAvailableBw().getAvailableBw()); + tE_info.setUndirAvailableBw(uldSTLV); + } + + NodeList undirUtilBws = element.getElementsByTagName("undir_utilized_bandwidth"); + Element undirUtilBw = (Element) undirUtilBws.item(0); + if (undirUtilBw != null){ + String s_undirUtilBw = getCharacterDataFromElement(undirUtilBw); + int undirUtilBwValue = Integer.parseInt(s_undirUtilBw); + UndirectionalUtilizedBandwidthDescriptorSubTLV uSTLV = new UndirectionalUtilizedBandwidthDescriptorSubTLV(); + uSTLV.setUtilizedBw(undirUtilBwValue); + tE_info.setUndirUtilizedBw(uSTLV); + }else if(tE_info_common!=null && tE_info_common.getUndirUtilizedBw()!=null){ + UndirectionalUtilizedBandwidthDescriptorSubTLV uldSTLV = new UndirectionalUtilizedBandwidthDescriptorSubTLV(); + uldSTLV.setUtilizedBw( tE_info_common.getUndirUtilizedBw().getUtilizedBw()); + tE_info.setUndirUtilizedBw(uldSTLV); + } + + NodeList minMaxDelays = element.getElementsByTagName("undir_min_max_delay"); + Element minMaxDelay = (Element) minMaxDelays.item(0); + if (minMaxDelay != null){ + NodeList minDelays = minMaxDelay.getElementsByTagName("min"); + Element minDelay = (Element) minDelays.item(0); + NodeList maxDelays = minMaxDelay.getElementsByTagName("max"); + Element maxDelay = (Element) maxDelays.item(0); + if(minDelay !=null && maxDelay!=null){ + String s_minDelay = getCharacterDataFromElement(minDelay); + String s_maxDelay = getCharacterDataFromElement(maxDelay); + int minDelayValue = Integer.parseInt(s_minDelay); + int maxDelayValue = Integer.parseInt(s_maxDelay); + MinMaxUndirectionalLinkDelayDescriptorSubTLV ummSTLV = new MinMaxUndirectionalLinkDelayDescriptorSubTLV(); + ummSTLV.setHighDelay(maxDelayValue); + ummSTLV.setLowDelay(minDelayValue); + tE_info.setMinMaxUndirLinkDelay(ummSTLV); + } + }else if(tE_info_common!=null && tE_info_common.getMinMaxUndirLinkDelay()!=null){ + MinMaxUndirectionalLinkDelayDescriptorSubTLV uldSTLV = new MinMaxUndirectionalLinkDelayDescriptorSubTLV(); + uldSTLV.setHighDelay( tE_info_common.getMinMaxUndirLinkDelay().getHighDelay()); + uldSTLV.setLowDelay( tE_info_common.getMinMaxUndirLinkDelay().getLowDelay()); + tE_info.setMinMaxUndirLinkDelay(uldSTLV); + } + + return tE_info; + + } + + public static SimpleDirectedWeightedGraph readITNetwork(String fileName){ + Logger log=LoggerFactory.getLogger("BGP4Peer"); + SimpleDirectedWeightedGraph graph =new SimpleDirectedWeightedGraph(IntraDomainEdge.class); + Object router_id_addr = null; + Object it_site_id_addr = null; + Object resource_addr = null; + Object s_id_addr = null; + Object d_id_addr = null; + Object s_router_id_addr = null; + Object d_router_id_addr = null; + Object s_it_site_id_addr = null; + Object d_it_site_id_addr = null; + Object s_resource_id_addr = null; + Object d_resource_id_addr = null; + + log.debug("2. SimpleDirectedWeightedGraph"); + + File file = new File(fileName); + try { + DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); + Document doc = builder.parse(file); + NodeList nodes_domains = doc.getElementsByTagName("domain"); + HashMapSIDS = new HashMap(); + HashMapSIDSDP = new HashMap(); + + for (int j = 0; j < nodes_domains.getLength(); j++) { + Element element_domain = (Element) nodes_domains.item(j); + NodeList nodes_domain_id = element_domain.getElementsByTagName("domain_id"); + for (int k = 0; k < nodes_domain_id.getLength(); k++) { + Element domain_id_e = (Element) nodes_domain_id.item(0); + String domain_id=getCharacterDataFromElement(domain_id_e); + log.debug("Network domain: "+domain_id); + } + + NodeList nodes = doc.getElementsByTagName("node"); + for (int i = 0; i < nodes.getLength(); i++) { + Element element = (Element) nodes.item(i); + NodeList router_id_node = element.getElementsByTagName("router_id"); + Element router_id_e = (Element) router_id_node.item(0); + String router_id=getCharacterDataFromElement(router_id_e); + log.debug("El router_id es "+router_id); + + try { // router_id_addr type: Inet4Address + router_id_addr = (Inet4Address) Inet4Address.getByName(router_id); + } catch (Exception e) { // router_id_addr type: DataPathID + router_id_addr = DataPathID.getByName(router_id); + } + + graph.addVertex(router_id_addr); + + Element SID_e = (Element) element.getElementsByTagName("sid"); + if (SID_e!=null) + { int SID = Integer.parseInt(getCharacterDataFromElement(SID_e)); + + try { // router_id_addr type: Inet4Address + SIDS.put((Inet4Address)router_id_addr,SID); + } catch (Exception e) { // router_id_addr type: DataPathID + SIDSDP.put((DataPathID)router_id_addr,SID); + } + } + } + + NodeList it_sites = doc.getElementsByTagName("it_site"); + for (int i = 0; i < it_sites.getLength(); i++) { + Element element = (Element) it_sites.item(i); + NodeList it_site_id_node = element.getElementsByTagName("it_site_id"); + Element it_site_id_e = (Element) it_site_id_node.item(0); + String it_site_id=getCharacterDataFromElement(it_site_id_e); + log.debug("El IT_site_id es "+it_site_id); + + try { // it_site_id_addr type: Inet4Address + it_site_id_addr = (Inet4Address) Inet4Address.getByName(it_site_id); + } catch (Exception e) { // it_site_id_addr type: DataPathID + it_site_id_addr = DataPathID.getByName(it_site_id); + } + graph.addVertex(it_site_id_addr); + } + + NodeList storages = doc.getElementsByTagName("storage"); + for (int i = 0; i < storages.getLength(); i++) { + Element element = (Element) storages.item(i); + NodeList resource_id_node = element.getElementsByTagName("resource_id"); + Element resource_id_e = (Element) resource_id_node.item(0); + String resource_id=getCharacterDataFromElement(resource_id_e); + log.debug("El resource_id es "+resource_id); + + try { + resource_addr = (Inet4Address) Inet4Address.getByName(resource_id); + } catch (Exception e) { + resource_addr = DataPathID.getByName(resource_id); + } + graph.addVertex(resource_addr); + } + + NodeList edges = doc.getElementsByTagName("edge"); + for (int i = 0; i < edges.getLength(); i++) { + + Element element = (Element) edges.item(i); + + // We only want those routers which have type="intradomain" //MARTA + if (element.getAttributeNode("type").getValue().equals("intradomain")) {//MARTA + //IntraDomainEdge edge = new IntraDomainEdge(); + + IntraDomainEdge edge = new IntraDomainEdge(); + + NodeList source = element.getElementsByTagName("source"); + Element source_router_el = (Element)source.item(0); + NodeList source_router_id= source_router_el.getElementsByTagName("router_id"); + if (source_router_id.getLength()>0){ + Element source_router_id_el=(Element)source_router_id.item(0); + String s_r_id=getCharacterDataFromElement(source_router_id_el); + + try { // s_router_id_addr type: Inet4Address + s_router_id_addr = (Inet4Address) Inet4Address.getByName(s_r_id); + } catch (Exception e) { // s_router_id_addr type: DataPathID + s_router_id_addr = DataPathID.getByName(s_r_id); + } + + s_id_addr=s_router_id_addr; + } + + NodeList source_it_site_id= source_router_el.getElementsByTagName("it_site_id"); + if (source_it_site_id.getLength()>0){ + Element source_it_site_id_el=(Element)source_it_site_id.item(0); + String s_itsite_id=getCharacterDataFromElement(source_it_site_id_el); + log.debug("Edge Source IT_site_id: "+s_itsite_id); + + try { // s_it_site_id_addr type: Inet4Address + s_it_site_id_addr = (Inet4Address) Inet4Address.getByName(s_itsite_id); + } catch (Exception e) { // s_it_site_id_addr type: DataPathID + s_it_site_id_addr = DataPathID.getByName(s_itsite_id); + } + s_id_addr=s_it_site_id_addr; + } + + NodeList source_resource_id= source_router_el.getElementsByTagName("resource_id"); + if (source_resource_id.getLength()>0){ + Element source_resource_id_el=(Element)source_resource_id.item(0); + String s_resource_id=getCharacterDataFromElement(source_resource_id_el); + log.debug("Edge Source resource_id: "+s_resource_id); + + try {// s_resource_id_addr type: Inet4Address + s_resource_id_addr = (Inet4Address) Inet4Address.getByName(s_resource_id); + } catch (Exception e) { // s_resource_id_addr type: DataPathID + s_resource_id_addr = DataPathID.getByName(s_resource_id); + } + s_id_addr=s_resource_id_addr; + } + + NodeList source_if_id_nl= source_router_el.getElementsByTagName("if_id"); + Element source_if_id_el=(Element)source_if_id_nl.item(0); + String s_source_if_id=getCharacterDataFromElement(source_if_id_el); + log.debug("Edge Source if_id: "+s_source_if_id); + int src_if_id=Integer.parseInt(s_source_if_id); + + + + NodeList dest_nl = element.getElementsByTagName("destination"); + Element dest_el = (Element)dest_nl.item(0); + NodeList dest_router_id_nl= dest_el.getElementsByTagName("router_id"); + if (dest_router_id_nl.getLength()>0){ + Element dest_router_id_el=(Element)dest_router_id_nl.item(0); + String d_r_id=getCharacterDataFromElement(dest_router_id_el); + log.debug("Edge Destination router_id: "+d_r_id); + + try { // d_router_id_addr type: Inet4Address + d_router_id_addr = (Inet4Address) Inet4Address.getByName(d_r_id); + } catch (Exception e) { // d_router_id_addr type: DataPathID + d_router_id_addr = DataPathID.getByName(d_r_id); + + } + d_id_addr=d_router_id_addr; + } + + + NodeList dest_it_site_id_nl= dest_el.getElementsByTagName("it_site_id"); + if (dest_it_site_id_nl.getLength()>0){ + Element dest_it_site_id_el=(Element)dest_it_site_id_nl.item(0); + String d_it_site_id=getCharacterDataFromElement(dest_it_site_id_el); + log.debug("Edge Destination IT_site_id: "+d_it_site_id); + + try { // d_it_site_id_addr type: Inet4Address + d_it_site_id_addr = (Inet4Address) Inet4Address.getByName(d_it_site_id); + } catch (Exception e) { // d_it_site_id_addr type: DataPathID + d_it_site_id_addr = DataPathID.getByName(d_it_site_id); + } + d_id_addr=d_it_site_id_addr; + } + + NodeList dest_resource_id_nl= dest_el.getElementsByTagName("resource_id"); + if (dest_resource_id_nl.getLength()>0){ + Element dest_resource_id_el=(Element)dest_resource_id_nl.item(0); + String d_resource_id=getCharacterDataFromElement(dest_resource_id_el); + log.debug("Edge Destination resource_id: "+d_resource_id); + try { // d_resource_id_addr type: Inet4Address + d_resource_id_addr = (Inet4Address) Inet4Address.getByName(d_resource_id); + } catch (Exception e) { // d_resource_id_addr type: DataPathID + d_resource_id_addr = DataPathID.getByName(d_resource_id); + + } + d_id_addr=d_resource_id_addr; + } + + NodeList dest_if_id_nl= dest_el.getElementsByTagName("if_id"); + Element dest_if_id_el=(Element)dest_if_id_nl.item(0); + String s_dest_if_id=getCharacterDataFromElement(dest_if_id_el); + log.debug("Edge Dest if_id: "+s_dest_if_id); + int dst_if_id=Integer.parseInt(s_dest_if_id); + + + edge.setSrc_if_id(src_if_id); + edge.setDst_if_id(dst_if_id); + + + //TODO: Tal vez pete aqui + //Anyadimos los SID + if (SIDS.get(s_id_addr)!=null && SIDS.get(d_id_addr)!=null) + { + edge.setSrc_sid(SIDS.get(s_id_addr)); + edge.setSrc_sid(SIDS.get(d_id_addr)); + } + + graph.addEdge(s_id_addr, d_id_addr,edge); + }//MARTA + } + } + } + catch (Exception e) { + e.printStackTrace(); + } + + return graph; + } + + + public static Inet4Address readNetworkDomain(String fileName) { + Logger log = LoggerFactory.getLogger("BGP4Peer"); + File file = new File(fileName); + try { + DocumentBuilder builder = DocumentBuilderFactory.newInstance() + .newDocumentBuilder(); + Document doc = builder.parse(file); + + NodeList nodes_domains = doc.getElementsByTagName("domain"); + Element element_domain = (Element) nodes_domains.item(0); + NodeList nodes_domain_id = element_domain.getElementsByTagName("domain_id"); + Element domain_id_e = (Element) nodes_domain_id.item(0); + String domain_id = getCharacterDataFromElement(domain_id_e); + log.info("Network domain: " + domain_id); + Inet4Address domId = (Inet4Address) Inet4Address + .getByName(domain_id); + return domId; + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + public static String getCharacterDataFromElement(Element e) { + Node child = e.getFirstChild(); + if (child instanceof CharacterData) { + CharacterData cd = (CharacterData) child; + return cd.getData(); + } else { + return "?"; + } + } + + /** + * Reads the inter-domain Topology from a topology XML file. + * Needs update to work with datapath IDs. + * @param fileName Name of the XML + * @return Graph of the network. + */ + public static DirectedWeightedMultigraph readMDNetwork( + String fileName) { + Logger log = LoggerFactory.getLogger("BGP4Peer"); + DirectedWeightedMultigraph graph = new DirectedWeightedMultigraph( + InterDomainEdge.class); + Hashtable router_id_domain_ed = new Hashtable(); + Hashtable router_id_domain_ed_dp = new Hashtable(); + + HashMapSIDS = new HashMap(); + HashMapSIDSDP = new HashMap(); + + Object router_id_addr = null; + Object s_router_id_addr = null; + Object d_router_id_addr = null; + + File file = new File(fileName); + try { + DocumentBuilder builder = DocumentBuilderFactory.newInstance() + .newDocumentBuilder(); + Document doc = builder.parse(file); + + NodeList nodes_domains = doc.getElementsByTagName("domain"); + // First pass to read all the nodes and domains + log.info("Multidomain Graph"); + for (int j = 0; j < nodes_domains.getLength(); j++) { + Element element_domain = (Element) nodes_domains.item(j); + NodeList nodes_domain_id = element_domain + .getElementsByTagName("domain_id"); + Element domain_id_e = (Element) nodes_domain_id.item(0); + String domain_id_str = getCharacterDataFromElement(domain_id_e); + Inet4Address domain_id = (Inet4Address) Inet4Address + .getByName(domain_id_str); + + log.info("Adding Domain: " + domain_id); + graph.addVertex(domain_id); + NodeList nodes = element_domain.getElementsByTagName("node"); + for (int i = 0; i < nodes.getLength(); i++) { + Element element = (Element) nodes.item(i); + NodeList router_id_node = element + .getElementsByTagName("router_id"); + Element router_id_e = (Element) router_id_node.item(0); + String router_id = getCharacterDataFromElement(router_id_e); + log.debug("Router_id: " + router_id); + try { // router_id_addr type: Inet4Address + router_id_addr = (Inet4Address) Inet4Address.getByName(router_id); + } catch (Exception e) { // router_id_addr type: DataPathID + router_id_addr = DataPathID.getByName(router_id); + } + router_id_domain_ed.put(router_id_addr, domain_id); + NodeList nl_sid=element.getElementsByTagName("sid"); + + Element SID_e = (Element) nl_sid.item(0); + if (SID_e!=null) + { int SID = Integer.parseInt(getCharacterDataFromElement(SID_e)); + try { + SIDS.put((Inet4Address)router_id_addr,SID); + } catch (Exception e) { + SIDSDP.put((DataPathID)router_id_addr,SID); + } + } + } + + } + log.debug("Domain_ids read"); + + int numLabels=0; + + Boolean commonBitmapLabelSet = false; + NodeList edgeCommon = doc.getElementsByTagName("edgeCommon"); + int grid=0; + int cs=0; + int n=0; + for (int i = 0; i < edgeCommon.getLength(); i++) { + + Element edgeCommonElement = (Element) edgeCommon.item(i); + NodeList availableLabels_node = edgeCommonElement.getElementsByTagName("AvailableLabels"); + for (int k = 0; k < availableLabels_node.getLength(); k++) { + + Element availableLabels_e = (Element) availableLabels_node.item(k); + NodeList labelSetField_node = availableLabels_e.getElementsByTagName("LabelSetField"); + Element labelSetField_el = (Element) labelSetField_node.item(0); + if (labelSetField_el.getAttributeNode("type").getValue().equals("4")){//Tengo BitMapSet + //Crear un BitMapSet + + NodeList numbLabels_node = labelSetField_el.getElementsByTagName("numLabels"); + + Element numbLabels_e = (Element) numbLabels_node.item(0); + String numbLabels_s = getCharacterDataFromElement(numbLabels_e); + numLabels=Integer.parseInt(numbLabels_s); + + NodeList baseLabel_node = labelSetField_el.getElementsByTagName("baseLabel"); + Element baseLabel_e = (Element) baseLabel_node.item(0); + + float min_frequency; + + grid= Integer.parseInt(baseLabel_e.getAttributeNode("grid").getValue()); + + cs = Integer.parseInt(baseLabel_e.getAttributeNode("cs").getValue()); + boolean n_frequency_included=false; + if (baseLabel_e.getAttributeNode("n") != null ){ + n = Integer.parseInt(baseLabel_e.getAttributeNode("n").getValue()); + n_frequency_included = true; + } + else if (baseLabel_e.getAttributeNode("min_frequency") != null){ + String s_min_frequency = labelSetField_el.getAttributeNode("min_frequency").getValue(); + + min_frequency=Float.parseFloat(s_min_frequency); + n = ((int)min_frequency - 1471)/20; + n_frequency_included=true; + } + if (n_frequency_included){ + commonBitmapLabelSet = true; + }else{ + log.error("ERROR reading the xml file of the topology, you should enter "); + } + + } + } + + } + NodeList edges = doc.getElementsByTagName("edge"); + boolean a =true; + for (int i = 0; i < edges.getLength(); i++) { + log.debug("Looking at edge"); + + Element element = (Element) edges.item(i); + InterDomainEdge edge = new InterDomainEdge(); + TE_Information tE_info=readTE_INFOfromXml(null, element, false,numLabels, grid, cs, n, 0, Integer.MAX_VALUE); + edge.setTE_info(tE_info); + NodeList source = element.getElementsByTagName("source"); + Element source_router_el = (Element) source.item(0); + NodeList source_router_id = source_router_el + .getElementsByTagName("router_id"); + Element source_router_id_el = (Element) source_router_id + .item(0); + String s_r_id = getCharacterDataFromElement(source_router_id_el); + log.debug("Edge Source router_id: " + s_r_id); + + try { // s_router_id_addr type: Inet4Address + s_router_id_addr = (Inet4Address) Inet4Address.getByName(s_r_id); + } catch (Exception e) {// s_router_id_addr type: DataPathID + s_router_id_addr = DataPathID.getByName(s_r_id); + } + Inet4Address source_domain_id = router_id_domain_ed.get(s_router_id_addr); + log.debug("Edge Source domain_id: " + source_domain_id); + + NodeList source_if_id_nl = source_router_el + .getElementsByTagName("if_id"); + Element source_if_id_el = (Element) source_if_id_nl.item(0); + String s_source_if_id = getCharacterDataFromElement(source_if_id_el); + log.debug("Edge Source if_id: " + s_source_if_id); + int src_if_id = Integer.parseInt(s_source_if_id); + + NodeList dest_nl = element.getElementsByTagName("destination"); + Element dest_el = (Element) dest_nl.item(0); + NodeList dest_router_id_nl = dest_el + .getElementsByTagName("router_id"); + Element dest_router_id_el = (Element) dest_router_id_nl.item(0); + String d_r_id = getCharacterDataFromElement(dest_router_id_el); + log.debug("Edge Destination router_id: " + d_r_id); + try { // d_router_id_addr type: Inet4Address + d_router_id_addr = (Inet4Address) Inet4Address.getByName(d_r_id); + } catch (Exception e) { // d_router_id_addr type: DataPathID + d_router_id_addr = DataPathID.getByName(d_r_id); + } + Inet4Address dest_domain_id = router_id_domain_ed.get(d_router_id_addr); + log.debug("Destination domain_id: " + dest_domain_id); + + NodeList dest_if_id_nl = dest_el.getElementsByTagName("if_id"); + Element dest_if_id_el = (Element) dest_if_id_nl.item(0); + String s_dest_if_id = getCharacterDataFromElement(dest_if_id_el); + log.debug("Edge Dest if_id: " + s_dest_if_id); + int dst_if_id = Integer.parseInt(s_dest_if_id); + + //router_id_domain_ed + //edge.setDomain_src_router(source_domain_id); + + edge.setSrc_if_id(src_if_id); + edge.setDst_if_id(dst_if_id); + edge.setDomain_src_router(source_domain_id); + edge.setDomain_dst_router(dest_domain_id); + + edge.setSrc_router_id(s_router_id_addr); + edge.setDst_router_id(d_router_id_addr); + if (!source_domain_id.equals(dest_domain_id)) { + log.info("Adding interdomain link "+source_domain_id.toString()+"-->"+dest_domain_id.toString());//edge.toString()); + //Only add if the source and destination domains are different + graph.addEdge(source_domain_id, dest_domain_id, edge); + } + + } + + + } catch (Exception e) { + e.printStackTrace(); + } + + return graph; + + } + + public static DirectedWeightedMultigraph readMDNetwork( + String fileName, String LearntFrom) { + Logger log = LoggerFactory.getLogger("BGP4Peer"); + DirectedWeightedMultigraph graph = new DirectedWeightedMultigraph( + InterDomainEdge.class); + Hashtable router_id_domain_ed = new Hashtable(); + Hashtable router_id_domain_ed_dp = new Hashtable(); + + HashMapSIDS = new HashMap(); + HashMapSIDSDP = new HashMap(); + + Object router_id_addr = null; + Object s_router_id_addr = null; + Object d_router_id_addr = null; + + File file = new File(fileName); + try { + DocumentBuilder builder = DocumentBuilderFactory.newInstance() + .newDocumentBuilder(); + Document doc = builder.parse(file); + + NodeList nodes_domains = doc.getElementsByTagName("domain"); + // First pass to read all the nodes and domains + log.info("Multidomain Graph"); + for (int j = 0; j < nodes_domains.getLength(); j++) { + Element element_domain = (Element) nodes_domains.item(j); + NodeList nodes_domain_id = element_domain + .getElementsByTagName("domain_id"); + Element domain_id_e = (Element) nodes_domain_id.item(0); + String domain_id_str = getCharacterDataFromElement(domain_id_e); + Inet4Address domain_id = (Inet4Address) Inet4Address + .getByName(domain_id_str); + + log.info("Adding Domain: " + domain_id); + graph.addVertex(domain_id); + NodeList nodes = element_domain.getElementsByTagName("node"); + for (int i = 0; i < nodes.getLength(); i++) { + Element element = (Element) nodes.item(i); + NodeList router_id_node = element + .getElementsByTagName("router_id"); + Element router_id_e = (Element) router_id_node.item(0); + String router_id = getCharacterDataFromElement(router_id_e); + log.debug("Router_id: " + router_id); + try { // router_id_addr type: Inet4Address + router_id_addr = (Inet4Address) Inet4Address.getByName(router_id); + } catch (Exception e) { // router_id_addr type: DataPathID + router_id_addr = DataPathID.getByName(router_id); + } + router_id_domain_ed.put(router_id_addr, domain_id); + NodeList nl_sid=element.getElementsByTagName("sid"); + + Element SID_e = (Element) nl_sid.item(0); + if (SID_e!=null) + { int SID = Integer.parseInt(getCharacterDataFromElement(SID_e)); + try { + SIDS.put((Inet4Address)router_id_addr,SID); + } catch (Exception e) { + SIDSDP.put((DataPathID)router_id_addr,SID); + } + } + } + + } + log.debug("Domain_ids read"); + + int numLabels=0; + + Boolean commonBitmapLabelSet = false; + NodeList edgeCommon = doc.getElementsByTagName("edgeCommon"); + int grid=0; + int cs=0; + int n=0; + for (int i = 0; i < edgeCommon.getLength(); i++) { + + Element edgeCommonElement = (Element) edgeCommon.item(i); + NodeList availableLabels_node = edgeCommonElement.getElementsByTagName("AvailableLabels"); + for (int k = 0; k < availableLabels_node.getLength(); k++) { + + Element availableLabels_e = (Element) availableLabels_node.item(k); + NodeList labelSetField_node = availableLabels_e.getElementsByTagName("LabelSetField"); + Element labelSetField_el = (Element) labelSetField_node.item(0); + if (labelSetField_el.getAttributeNode("type").getValue().equals("4")){//Tengo BitMapSet + //Crear un BitMapSet + + NodeList numbLabels_node = labelSetField_el.getElementsByTagName("numLabels"); + + Element numbLabels_e = (Element) numbLabels_node.item(0); + String numbLabels_s = getCharacterDataFromElement(numbLabels_e); + numLabels=Integer.parseInt(numbLabels_s); + + NodeList baseLabel_node = labelSetField_el.getElementsByTagName("baseLabel"); + Element baseLabel_e = (Element) baseLabel_node.item(0); + + float min_frequency; + + grid= Integer.parseInt(baseLabel_e.getAttributeNode("grid").getValue()); + + cs = Integer.parseInt(baseLabel_e.getAttributeNode("cs").getValue()); + boolean n_frequency_included=false; + if (baseLabel_e.getAttributeNode("n") != null ){ + n = Integer.parseInt(baseLabel_e.getAttributeNode("n").getValue()); + n_frequency_included = true; + } + else if (baseLabel_e.getAttributeNode("min_frequency") != null){ + String s_min_frequency = labelSetField_el.getAttributeNode("min_frequency").getValue(); + + min_frequency=Float.parseFloat(s_min_frequency); + n = ((int)min_frequency - 1471)/20; + n_frequency_included=true; + } + if (n_frequency_included){ + commonBitmapLabelSet = true; + }else{ + log.error("ERROR reading the xml file of the topology, you should enter "); + } + + } + } + + } + NodeList edges = doc.getElementsByTagName("edge"); + boolean a =true; + for (int i = 0; i < edges.getLength(); i++) { + log.debug("Looking at edge"); + + Element element = (Element) edges.item(i); + InterDomainEdge edge = new InterDomainEdge(); + TE_Information tE_info=readTE_INFOfromXml(null, element, false,numLabels, grid, cs, n, 0, Integer.MAX_VALUE); + edge.setTE_info(tE_info); + edge.setLearntFrom(LearntFrom); + NodeList source = element.getElementsByTagName("source"); + Element source_router_el = (Element) source.item(0); + NodeList source_router_id = source_router_el + .getElementsByTagName("router_id"); + Element source_router_id_el = (Element) source_router_id + .item(0); + String s_r_id = getCharacterDataFromElement(source_router_id_el); + log.debug("Edge Source router_id: " + s_r_id); + + try { // s_router_id_addr type: Inet4Address + s_router_id_addr = (Inet4Address) Inet4Address.getByName(s_r_id); + } catch (Exception e) {// s_router_id_addr type: DataPathID + s_router_id_addr = DataPathID.getByName(s_r_id); + } + Inet4Address source_domain_id = router_id_domain_ed.get(s_router_id_addr); + log.debug("Edge Source domain_id: " + source_domain_id); + + NodeList source_if_id_nl = source_router_el + .getElementsByTagName("if_id"); + Element source_if_id_el = (Element) source_if_id_nl.item(0); + String s_source_if_id = getCharacterDataFromElement(source_if_id_el); + log.debug("Edge Source if_id: " + s_source_if_id); + int src_if_id = Integer.parseInt(s_source_if_id); + + NodeList dest_nl = element.getElementsByTagName("destination"); + Element dest_el = (Element) dest_nl.item(0); + NodeList dest_router_id_nl = dest_el + .getElementsByTagName("router_id"); + Element dest_router_id_el = (Element) dest_router_id_nl.item(0); + String d_r_id = getCharacterDataFromElement(dest_router_id_el); + log.debug("Edge Destination router_id: " + d_r_id); + try { // d_router_id_addr type: Inet4Address + d_router_id_addr = (Inet4Address) Inet4Address.getByName(d_r_id); + } catch (Exception e) { // d_router_id_addr type: DataPathID + d_router_id_addr = DataPathID.getByName(d_r_id); + } + Inet4Address dest_domain_id = router_id_domain_ed.get(d_router_id_addr); + log.debug("Destination domain_id: " + dest_domain_id); + + NodeList dest_if_id_nl = dest_el.getElementsByTagName("if_id"); + Element dest_if_id_el = (Element) dest_if_id_nl.item(0); + String s_dest_if_id = getCharacterDataFromElement(dest_if_id_el); + log.debug("Edge Dest if_id: " + s_dest_if_id); + int dst_if_id = Integer.parseInt(s_dest_if_id); + + //router_id_domain_ed + //edge.setDomain_src_router(source_domain_id); + + edge.setSrc_if_id(src_if_id); + edge.setDst_if_id(dst_if_id); + edge.setDomain_src_router(source_domain_id); + edge.setDomain_dst_router(dest_domain_id); + + edge.setSrc_router_id(s_router_id_addr); + edge.setDst_router_id(d_router_id_addr); + if (!source_domain_id.equals(dest_domain_id)) { + log.info("Adding interdomain link "+source_domain_id.toString()+"-->"+dest_domain_id.toString()+" learnt "+edge.getLearntFrom());//edge.toString()); + //Only add if the source and destination domains are different + graph.addEdge(source_domain_id, dest_domain_id, edge); + } + + } + + + } catch (Exception e) { + e.printStackTrace(); + } + + return graph; + + } + + + public static void initializeReachabilityFromFile(String fileName, + ReachabilityManager rm) { + Logger log = LoggerFactory.getLogger("BGP4Peer"); + log.debug("Initializing reachability from " + fileName); + File file = new File(fileName); + try { + DocumentBuilder builder = DocumentBuilderFactory.newInstance() + .newDocumentBuilder(); + Document doc = builder.parse(file); + + NodeList nodes_domains = doc.getElementsByTagName("domain"); + for (int j = 0; j < nodes_domains.getLength(); j++) { + Element element_domain = (Element) nodes_domains.item(j); + NodeList nodes_domain_id = element_domain + .getElementsByTagName("domain_id"); + Element domain_id_e = (Element) nodes_domain_id.item(0); + String domain_id_str = getCharacterDataFromElement(domain_id_e); + Inet4Address domain_id = (Inet4Address) Inet4Address + .getByName(domain_id_str); + + log.debug("Network domain es: " + domain_id); + + NodeList nodes = element_domain + .getElementsByTagName("reachability_entry"); + log.debug("HAY : " + nodes.getLength()); + + for (int i = 0; i < nodes.getLength(); i++) { + Element element = (Element) nodes.item(i); + NodeList ipv4_address_node = element + .getElementsByTagName("ipv4_address"); + Element ipv4_address_el = (Element) ipv4_address_node + .item(0); + String ipv4_address_str = getCharacterDataFromElement(ipv4_address_el); + log.debug("ipv4_address: " + ipv4_address_str); + Inet4Address ipv4_address = (Inet4Address) Inet4Address + .getByName(ipv4_address_str); + IPv4prefixEROSubobject eroso = new IPv4prefixEROSubobject(); + eroso.setIpv4address(ipv4_address); + NodeList prefix_node = element + .getElementsByTagName("prefix"); + Element prefix_el = (Element) prefix_node.item(0); + String prefix_str = getCharacterDataFromElement(prefix_el); + int prefix = Integer.parseInt(prefix_str); + eroso.setPrefix(prefix); + rm.addEROSubobject(domain_id, eroso); + + } + + } + + } catch (Exception e) { + e.printStackTrace(); + } + } + + // IT update del GEYSERS + + public static DirectedWeightedMultigraph readITMDNetwork(String fileName){ + Logger log=LoggerFactory.getLogger("BGP4Peer"); + DirectedWeightedMultigraphgraph =new DirectedWeightedMultigraph(InterDomainEdge.class); + Hashtable router_id_domain_ed=new Hashtable (); + Hashtable it_site_id_domain_ed2=new Hashtable (); + Hashtable resource_id_domain_ed=new Hashtable (); + + File file = new File(fileName); + try { + DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); + Document doc = builder.parse(file); + + NodeList nodes_domains = doc.getElementsByTagName("domain"); + + for (int j = 0; j < nodes_domains.getLength(); j++) { + Element element_domain = (Element) nodes_domains.item(j); + NodeList nodes_domain_id = element_domain.getElementsByTagName("domain_id"); + Element domain_id_e = (Element) nodes_domain_id.item(0); + String domain_id_str=getCharacterDataFromElement(domain_id_e); + Inet4Address domain_id= (Inet4Address) Inet4Address.getByName(domain_id_str); + + log.info("Network domain: "+domain_id); + graph.addVertex(domain_id); + NodeList nodes = element_domain.getElementsByTagName("node"); + for (int i = 0; i < nodes.getLength(); i++) { + Element element = (Element) nodes.item(i); + NodeList router_id_node = element.getElementsByTagName("router_id"); + Element router_id_e = (Element) router_id_node.item(0); + String router_id=getCharacterDataFromElement(router_id_e); + log.debug("El router_id es "+router_id); + Inet4Address router_id_addr= (Inet4Address) Inet4Address.getByName(router_id); + + NodeList domain_id_node = element.getElementsByTagName("domain_id"); + router_id_domain_ed.put(router_id_addr, domain_id); + //graph.addVertex(router_id_addr); + + } + + NodeList ITsites = element_domain.getElementsByTagName("it_site"); + for (int i = 0; i < ITsites.getLength(); i++) { + Element element = (Element) ITsites.item(i); + NodeList it_site_id_node = element.getElementsByTagName("it_site_id"); + Element it_site_id_e = (Element) it_site_id_node.item(0); + String it_site_id=getCharacterDataFromElement(it_site_id_e); + log.info("El it_site_id es "+it_site_id); + Inet4Address it_site_id_addr= (Inet4Address) Inet4Address.getByName(it_site_id); + + NodeList domain_id_node = element.getElementsByTagName("domain_id"); + it_site_id_domain_ed2.put(it_site_id_addr, domain_id); + //graph.addVertex(router_id_addr); + + } + + NodeList storages = element_domain.getElementsByTagName("storage"); + for (int i = 0; i < storages.getLength(); i++) { + Element element = (Element) storages.item(i); + NodeList resource_id_node = element.getElementsByTagName("resource_id"); + Element resource_id_e = (Element) resource_id_node.item(0); + String resource_id=getCharacterDataFromElement(resource_id_e); + log.info("El resource_id es "+resource_id); + Inet4Address resource_id_addr= (Inet4Address) Inet4Address.getByName(resource_id); + + NodeList domain_id_node = element.getElementsByTagName("domain_id"); + resource_id_domain_ed.put(resource_id_addr, domain_id); + //graph.addVertex(router_id_addr); + + } + + + } + + + + NodeList edges = doc.getElementsByTagName("edge"); + for (int i = 0; i < edges.getLength(); i++) { + log.info("New interdomain edge"); + Inet4Address s_router_id_addr= null; + Inet4Address d_router_id_addr= null; + Inet4Address s_itsite_id_addr= null; + Inet4Address d_itsite_id_addr= null; + Inet4Address s_resource_id_addr= null; + Inet4Address d_resource_id_addr= null; + Inet4Address source_domain_id=null; + Inet4Address dest_domain_id=null; + + + Element element = (Element) edges.item(i); + InterDomainEdge edge =new InterDomainEdge(); + + NodeList source = element.getElementsByTagName("source"); + Element source_router_el = (Element)source.item(0); + NodeList source_router_id= source_router_el.getElementsByTagName("router_id"); + if (source_router_id.getLength()>0){ + Element source_router_id_el=(Element)source_router_id.item(0); + String s_r_id=getCharacterDataFromElement(source_router_id_el); + log.info("Edge Source router_id: "+s_r_id); + s_router_id_addr= (Inet4Address) Inet4Address.getByName(s_r_id); + source_domain_id= (Inet4Address)router_id_domain_ed.get(s_router_id_addr); + log.info("Edge Source domain_id: "+source_domain_id); + } + + NodeList source_it_site_id= source_router_el.getElementsByTagName("it_site_id"); + if (source_it_site_id.getLength()>0){ + Element source_it_site_id_el=(Element)source_it_site_id.item(0); + String s_itsite_id=getCharacterDataFromElement(source_it_site_id_el); + log.info("Edge Source it_site_id: "+s_itsite_id); + s_itsite_id_addr= (Inet4Address) Inet4Address.getByName(s_itsite_id); + source_domain_id= (Inet4Address)it_site_id_domain_ed2.get(s_itsite_id_addr); + log.info("Edge Source ITsite domain_id: "+source_domain_id); + } + + NodeList source_resource_id= source_router_el.getElementsByTagName("resource_id"); + if (source_resource_id.getLength()>0){ + Element source_resource_id_el=(Element)source_resource_id.item(0); + String s_resource_id=getCharacterDataFromElement(source_resource_id_el); + log.info("Edge Source resource_id: "+s_resource_id); + s_resource_id_addr= (Inet4Address) Inet4Address.getByName(s_resource_id); + source_domain_id= (Inet4Address)resource_id_domain_ed.get(s_resource_id_addr); + log.info("Edge Source ITsite domain_id: "+source_domain_id); + } + + NodeList source_if_id_nl= source_router_el.getElementsByTagName("if_id"); + Element source_if_id_el=(Element)source_if_id_nl.item(0); + String s_source_if_id=getCharacterDataFromElement(source_if_id_el); + log.info("Edge Source if_id: "+s_source_if_id); + int src_if_id=Integer.parseInt(s_source_if_id); + + NodeList dest_nl = element.getElementsByTagName("destination"); + Element dest_el = (Element)dest_nl.item(0); + NodeList dest_router_id_nl= dest_el.getElementsByTagName("router_id"); + if (dest_router_id_nl.getLength()>0){ + Element dest_router_id_el=(Element)dest_router_id_nl.item(0); + String d_r_id=getCharacterDataFromElement(dest_router_id_el); + log.info("Edge Destination router_id: "+d_r_id); + d_router_id_addr= (Inet4Address) Inet4Address.getByName(d_r_id); + dest_domain_id= (Inet4Address)router_id_domain_ed.get(d_router_id_addr); + log.info("Destination domain_id: "+dest_domain_id); + } + + NodeList dest_it_site_id_nl= dest_el.getElementsByTagName("it_site_id"); + if (dest_it_site_id_nl.getLength()>0){ + Element dest_it_site_id_el=(Element)dest_it_site_id_nl.item(0); + String d_itsite_id=getCharacterDataFromElement(dest_it_site_id_el); + log.info("Edge Destination it_site_id: "+d_itsite_id); + d_itsite_id_addr= (Inet4Address) Inet4Address.getByName(d_itsite_id); + dest_domain_id= (Inet4Address)it_site_id_domain_ed2.get(d_itsite_id_addr); + log.info("Destination ITsite domain_id: "+dest_domain_id); + } + + NodeList dest_resource_id_nl= dest_el.getElementsByTagName("resource_id"); + if (dest_resource_id_nl.getLength()>0){ + Element dest_resource_id_el=(Element)dest_resource_id_nl.item(0); + String d_resource_id=getCharacterDataFromElement(dest_resource_id_el); + log.info("Edge Destination resource_id: "+d_resource_id); + d_resource_id_addr= (Inet4Address) Inet4Address.getByName(d_resource_id); + dest_domain_id= (Inet4Address)resource_id_domain_ed.get(d_resource_id_addr); + log.info("Destination ITsite domain_id: "+dest_domain_id); + } + + NodeList dest_if_id_nl= dest_el.getElementsByTagName("if_id"); + Element dest_if_id_el=(Element)dest_if_id_nl.item(0); + String s_dest_if_id=getCharacterDataFromElement(dest_if_id_el); + log.info("Edge Dest if_id: "+s_dest_if_id); + int dst_if_id=Integer.parseInt(s_dest_if_id); + + edge.setSrc_if_id(src_if_id); + edge.setDst_if_id(dst_if_id); + + if (source_router_id.getLength()>0){ + edge.setSrc_router_id(s_router_id_addr); + }else if(source_it_site_id.getLength()>0){ + edge.setSrc_router_id(s_itsite_id_addr); + }else if(source_resource_id.getLength()>0){ + edge.setSrc_router_id(s_resource_id_addr); + } + + if (dest_router_id_nl.getLength()>0){ + edge.setDst_router_id(d_router_id_addr); + }else if(dest_it_site_id_nl.getLength()>0){ + edge.setDst_router_id(d_itsite_id_addr); + }else if(dest_resource_id_nl.getLength()>0){ + edge.setDst_router_id(d_resource_id_addr); + } + graph.addEdge(source_domain_id, dest_domain_id,edge); + } + } + catch (Exception e) { + e.printStackTrace(); + } + + return graph; + + } + + + public static WSONInformation getWSONInformation(String fileName){ + return FileTEDBUpdater.getWSONInformation(fileName,null); + } + + public static WSONInformation getWSONInformation(String fileName, String layer){ + Logger log = LoggerFactory.getLogger("BGP4Peer"); + File file = new File(fileName); + AvailableLabels commonAvailableLabels = null; + WSONInformation WSONinfo = null; + int numLabels = 0; + int grid=0; + int cs=0; + int n=0; + log.debug("FileName:::"+fileName); + try { + DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); + Document doc = builder.parse(file); + // NodeList nodes_domains = doc.getElementsByTagName("domain"); + // for (int j = 0; j < nodes_domains.getLength(); j++) { + // Element element_domain = (Element) nodes_domains.item(j); + + NodeList edgeCommon = doc.getElementsByTagName("edgeCommon"); + + for (int i = 0; i < edgeCommon.getLength(); i++) { + + Element edgeCommonElement = (Element) edgeCommon.item(i); + NodeList availableLabels_node = edgeCommonElement.getElementsByTagName("AvailableLabels"); + for (int k = 0; k < availableLabels_node.getLength(); k++) { + commonAvailableLabels = new AvailableLabels(); + Element availableLabels_e = (Element) availableLabels_node.item(k); + NodeList labelSetField_node = availableLabels_e.getElementsByTagName("LabelSetField"); + Element labelSetField_el = (Element) labelSetField_node.item(0); + if (labelSetField_el.getAttributeNode("type").getValue().equals("4")){//Tengo BitMapSet + //Crear un BitMapSet + + NodeList numbLabels_node = labelSetField_el.getElementsByTagName("numLabels"); + + Element numbLabels_e = (Element) numbLabels_node.item(0); + String numbLabels_s = getCharacterDataFromElement(numbLabels_e); + numLabels=Integer.parseInt(numbLabels_s); + + NodeList baseLabel_node = labelSetField_el.getElementsByTagName("baseLabel"); + Element baseLabel_e = (Element) baseLabel_node.item(0); + + float min_frequency; + + grid= Integer.parseInt(baseLabel_e.getAttributeNode("grid").getValue()); + + cs = Integer.parseInt(baseLabel_e.getAttributeNode("cs").getValue()); + boolean n_frequency_included=false; + if (baseLabel_e.getAttributeNode("n") != null ){ + n = Integer.parseInt(baseLabel_e.getAttributeNode("n").getValue()); + n_frequency_included = true; + } + else if (baseLabel_e.getAttributeNode("min_frequency") != null){ + String s_min_frequency = labelSetField_el.getAttributeNode("min_frequency").getValue(); + + min_frequency=Float.parseFloat(s_min_frequency); + n = ((int)min_frequency - 1471)/20; + n_frequency_included=true; + } + if (n_frequency_included){ + createBitmapLabelSet(commonAvailableLabels,numLabels,grid,cs,n); + }else{ + log.error("ERROR reading the xml file of the topology, you should enter "); + } + + } + } + + } + //} + } catch (Exception e) { + log.error(e.toString()); + e.printStackTrace(); + } + if (commonAvailableLabels !=null){ + WSONinfo = new WSONInformation(); + WSONinfo.setCommonAvailableLabels(commonAvailableLabels); + WSONinfo.setNumLambdas(numLabels); + WSONinfo.setCs(cs); + WSONinfo.setGrid(grid); + WSONinfo.setnMin(n); + } + return WSONinfo; + + } + + public static SSONInformation getSSONInformation(String fileName){ + return FileTEDBUpdater.getSSONInformation(fileName,null); + } + + public static SSONInformation getSSONInformation(String fileName, String layer){ + Logger log = LoggerFactory.getLogger("BGP4Peer"); + File file = new File(fileName); + AvailableLabels commonAvailableLabels = null; + SSONInformation SSONinfo = null; + int numLabels = 0; + int grid=0; + int cs=0; + int n=0; + try { + DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); + Document doc = builder.parse(file); + // NodeList nodes_domains = doc.getElementsByTagName("domain"); + // for (int j = 0; j < nodes_domains.getLength(); j++) { + // Element element_domain = (Element) nodes_domains.item(j); + + NodeList edgeCommon = doc.getElementsByTagName("edgeCommon"); + + for (int i = 0; i < edgeCommon.getLength(); i++) { + + Element edgeCommonElement = (Element) edgeCommon.item(i); + NodeList availableLabels_node = edgeCommonElement.getElementsByTagName("AvailableLabels"); + for (int k = 0; k < availableLabels_node.getLength(); k++) { + commonAvailableLabels = new AvailableLabels(); + Element availableLabels_e = (Element) availableLabels_node.item(k); + NodeList labelSetField_node = availableLabels_e.getElementsByTagName("LabelSetField"); + Element labelSetField_el = (Element) labelSetField_node.item(0); + if (labelSetField_el.getAttributeNode("type").getValue().equals("4")){//Tengo BitMapSet + //Crear un BitMapSet + + NodeList numbLabels_node = labelSetField_el.getElementsByTagName("numLabels"); + + Element numbLabels_e = (Element) numbLabels_node.item(0); + String numbLabels_s = getCharacterDataFromElement(numbLabels_e); + numLabels=Integer.parseInt(numbLabels_s); + + NodeList baseLabel_node = labelSetField_el.getElementsByTagName("baseLabel"); + Element baseLabel_e = (Element) baseLabel_node.item(0); + + float min_frequency; + + grid= Integer.parseInt(baseLabel_e.getAttributeNode("grid").getValue()); + + cs = Integer.parseInt(baseLabel_e.getAttributeNode("cs").getValue()); + boolean n_frequency_included=false; + if (baseLabel_e.getAttributeNode("n") != null ){ + n = Integer.parseInt(baseLabel_e.getAttributeNode("n").getValue()); + n_frequency_included = true; + } + else if (baseLabel_e.getAttributeNode("min_frequency") != null){ + String s_min_frequency = labelSetField_el.getAttributeNode("min_frequency").getValue(); + + min_frequency=Float.parseFloat(s_min_frequency); + n = ((int)min_frequency - 1471)/20; + n_frequency_included=true; + } + if (n_frequency_included){ + createBitmapLabelSet(commonAvailableLabels,numLabels,grid,cs,n); + }else{ + log.error("ERROR reading the xml file of the topology, you should enter "); + } + + } + } + + } + //} + } catch (Exception e) { + e.printStackTrace(); + } + if (commonAvailableLabels !=null){ + SSONinfo = new SSONInformation(); + SSONinfo.setCommonAvailableLabels(commonAvailableLabels); + // if(cs==5){ + // SSONinfo.setNumLambdas(numLabels*8); + // } + SSONinfo.setNumLambdas(numLabels); + SSONinfo.setCs(cs); + SSONinfo.setGrid(grid); + SSONinfo.setnMin(n); + } + return SSONinfo; + + } + public static void createBitmapLabelSet(AvailableLabels availableLabels,int numLabels,int grid, int cs,int n){ + //FIXME: no hay problema de que se salga el ancho de banda + BitmapLabelSet bitmapLabelSet = new BitmapLabelSet(); + DWDMWavelengthLabel dwdmWavelengthLabel = new DWDMWavelengthLabel(); + dwdmWavelengthLabel.setGrid(grid); + dwdmWavelengthLabel.setChannelSpacing(cs); + dwdmWavelengthLabel.setN(n); + bitmapLabelSet.setDwdmWavelengthLabel(dwdmWavelengthLabel); + + int numberBytes = numLabels/8; + if ((numberBytes*8)>> 24 & 0xFF); + mask[1] = (byte) (maskLong >>> 16 & 0xFF); + mask[2] = (byte) (maskLong >>> 8 & 0xFF); + mask[3] = (byte) (maskLong & 0xFF); + //Meto la mascara + reachabilityEntry.setMask(mask); + + + } + } + } + + } catch (Exception e) { + e.printStackTrace(); + } + } + + + /** + * Read the interdomain Topology from a topology file + * @param fileName Name of the xml file. + * @return List of interdomain edges. + */ + public static LinkedList readInterDomainLinks(String fileName) { + + LinkedList interDomainLinks = new LinkedList(); + Logger log = LoggerFactory.getLogger("BGP4Peer"); + File file = new File(fileName); + Inet4Address domain_id=null; + try { + DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); + Document doc = builder.parse(file); + + NodeList nodes_domains = doc.getElementsByTagName("domain"); + if (nodes_domains!=null){ + if (nodes_domains.getLength()>=1){ + for (int j = 0; j < nodes_domains.getLength(); j++) { + Element element_domain = (Element) nodes_domains.item(j); + NodeList nodes_domain_id = element_domain.getElementsByTagName("domain_id"); + Element domain_id_e = (Element) nodes_domain_id.item(0); + String domain_id_str=getCharacterDataFromElement(domain_id_e); + domain_id= (Inet4Address) Inet4Address.getByName(domain_id_str); + } + } + } + + + + Boolean commonBitmapLabelSet = false; + NodeList edgeCommon = doc.getElementsByTagName("edgeCommon"); + int grid=0; + int cs=0; + int n=0; + int numLabels=0; + for (int i = 0; i < edgeCommon.getLength(); i++) { + + Element edgeCommonElement = (Element) edgeCommon.item(i); + NodeList availableLabels_node = edgeCommonElement.getElementsByTagName("AvailableLabels"); + for (int k = 0; k < availableLabels_node.getLength(); k++) { + + Element availableLabels_e = (Element) availableLabels_node.item(k); + NodeList labelSetField_node = availableLabels_e.getElementsByTagName("LabelSetField"); + Element labelSetField_el = (Element) labelSetField_node.item(0); + if (labelSetField_el.getAttributeNode("type").getValue().equals("4")){//Tengo BitMapSet + //Crear un BitMapSet + + NodeList numbLabels_node = labelSetField_el.getElementsByTagName("numLabels"); + + Element numbLabels_e = (Element) numbLabels_node.item(0); + String numbLabels_s = getCharacterDataFromElement(numbLabels_e); + numLabels=Integer.parseInt(numbLabels_s); + + NodeList baseLabel_node = labelSetField_el.getElementsByTagName("baseLabel"); + Element baseLabel_e = (Element) baseLabel_node.item(0); + + float min_frequency; + + grid= Integer.parseInt(baseLabel_e.getAttributeNode("grid").getValue()); + + cs = Integer.parseInt(baseLabel_e.getAttributeNode("cs").getValue()); + boolean n_frequency_included=false; + if (baseLabel_e.getAttributeNode("n") != null ){ + n = Integer.parseInt(baseLabel_e.getAttributeNode("n").getValue()); + n_frequency_included = true; + } + else if (baseLabel_e.getAttributeNode("min_frequency") != null){ + String s_min_frequency = labelSetField_el.getAttributeNode("min_frequency").getValue(); + + min_frequency=Float.parseFloat(s_min_frequency); + n = ((int)min_frequency - 1471)/20; + n_frequency_included=true; + } + if (n_frequency_included){ + commonBitmapLabelSet = true; + }else{ + log.error("ERROR reading the xml file of the topology, you should enter "); + } + + } + } + + } + + + // Read the nodes of the domain which has interdomain connection + NodeList edges = doc.getElementsByTagName("edge"); + for (int i = 0; i < edges.getLength(); i++) { + Element element = (Element) edges.item(i); + + // We only want those routers which have type="interdomain" + //if (((String)element.getAttributeNode("type").getValue()).equals("interdomain")) { + + if (element.getAttributeNode("type")!=null) { + + + if (element.getAttributeNode("type").getValue().equals("interdomain")) { + + // Create a variable InterDomainEdge where we include + // the two nodes of the connection. + InterDomainEdge connection = new InterDomainEdge(); + NodeList source = element.getElementsByTagName("source"); + Element source_router_el = (Element) source.item(0); + //Read the source router IP + NodeList source_router_id = source_router_el.getElementsByTagName("router_id"); + Element source_router_id_el = (Element) source_router_id.item(0); + String s_r_id = getCharacterDataFromElement(source_router_id_el); + + Inet4Address s_router_id_addr = (Inet4Address) Inet4Address.getByName(s_r_id); + //Read the source router interface identifier of the connection + NodeList source_if_id_nl = source_router_el.getElementsByTagName("if_id"); + Element source_if_id_el = (Element) source_if_id_nl.item(0); + String s_source_if_id = getCharacterDataFromElement(source_if_id_el); + + int src_if_id = Integer.parseInt(s_source_if_id); + NodeList src_domain_nl = source_router_el.getElementsByTagName("domain_id"); + Inet4Address s_router_domain=null; + + if (src_domain_nl!=null) + { + if (src_domain_nl.getLength()>=1){ + Element domain_id_el = (Element) src_domain_nl.item(0); + String s_r_domain = getCharacterDataFromElement(domain_id_el).trim(); + s_router_domain = (Inet4Address) Inet4Address.getByName(s_r_domain); + + }else{ + s_router_domain= domain_id; + + } + }else { + s_router_domain= domain_id; + + } + + + + //Read the router destination + NodeList dest_nl = element.getElementsByTagName("destination"); + Element dest_el = (Element) dest_nl.item(0); + NodeList dest_router_id_nl = dest_el.getElementsByTagName("router_id"); + Element dest_router_id_el = (Element) dest_router_id_nl.item(0); + String d_r_id = getCharacterDataFromElement(dest_router_id_el); + log.info("Edge Destination router_id: "+ d_r_id); + Inet4Address d_router_id_addr = (Inet4Address) Inet4Address.getByName(d_r_id); + NodeList dest_if_id_nl = dest_el.getElementsByTagName("if_id"); + Element dest_if_id_el = (Element) dest_if_id_nl.item(0); + String s_dest_if_id = getCharacterDataFromElement(dest_if_id_el); + log.info("Edge Dest if_id: " + s_dest_if_id); + int dst_if_id = Integer.parseInt(s_dest_if_id); + NodeList domain = dest_el.getElementsByTagName("domain_id"); + Element domain_id_el = (Element) domain.item(0); + String d_r_domain = getCharacterDataFromElement(domain_id_el); + log.info("Destination router domain: "+ d_r_domain); + Inet4Address d_router_domain= (Inet4Address) Inet4Address.getByName(d_r_domain); + + + // Include the connection between both nodes + connection.setSrc_if_id(src_if_id); + connection.setSrc_router_id(s_router_id_addr); + connection.setDst_if_id(dst_if_id); + connection.setDst_router_id(d_router_id_addr); + connection.setDomain_src_router(s_router_domain); + connection.setDomain_dst_router(d_router_domain); + if(connection.getTE_info()==null){ + TE_Information tE_info= new TE_Information(); + if (commonBitmapLabelSet){ + tE_info.createBitmapLabelSet(numLabels, grid, cs, n); + } + connection.setTE_info(tE_info); + } + //add the connection to the LinkedList. + interDomainLinks.add(connection); + + } + } + } + //}//end for domains + } catch (Exception e) { + e.printStackTrace(); + } + + return interDomainLinks; + + } + + public static int readWSONLambdas(String fileName){ + Logger log=LoggerFactory.getLogger("BGP4Peer"); + File file = new File(fileName); + int num_wavelengths=4; + try { + DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); + Document doc = builder.parse(file); + NodeList nodes_domains = doc.getElementsByTagName("domain"); + + for (int j = 0; j < nodes_domains.getLength(); j++) { + Element element_domain = (Element) nodes_domains.item(j); + NodeList nodes_wl= element_domain.getElementsByTagName("num_wavelengths"); + for (int k = 0; k < nodes_wl.getLength(); k++) { + Element nodes_wl_e = (Element) nodes_wl.item(0); + String num_wavelengths_id=getCharacterDataFromElement(nodes_wl_e ); + num_wavelengths=Integer.parseInt(num_wavelengths_id); + log.info("num_wavelength: "+num_wavelengths); + } + + } + } + catch (Exception e) { + e.printStackTrace(); + } + + return num_wavelengths; + } + + + public static Hashtable getITSites(String fileName){ + Hashtable it_site_id_domain_ed=new Hashtable (); + + File file2 = new File(fileName); + try { + DocumentBuilder builder2 = DocumentBuilderFactory.newInstance().newDocumentBuilder(); + Document doc2 = builder2.parse(file2); + + NodeList nodes_domains = doc2.getElementsByTagName("domain"); + + for (int j = 0; j < nodes_domains.getLength(); j++) { + Element element_domain = (Element) nodes_domains.item(j); + NodeList nodes_domain_id = element_domain.getElementsByTagName("domain_id"); + Element domain_id_e = (Element) nodes_domain_id.item(0); + String domain_id_str=getCharacterDataFromElement(domain_id_e); + Inet4Address domain_id= (Inet4Address) Inet4Address.getByName(domain_id_str); + + NodeList ITsites = element_domain.getElementsByTagName("it_site"); + for (int i = 0; i < ITsites.getLength(); i++) { + Element element = (Element) ITsites.item(i); + NodeList it_site_id_node = element.getElementsByTagName("it_site_id"); + Element it_site_id_e = (Element) it_site_id_node.item(0); + String it_site_id=getCharacterDataFromElement(it_site_id_e); + Inet4Address it_site_id_addr= (Inet4Address) Inet4Address.getByName(it_site_id); + + NodeList domain_id_node = element.getElementsByTagName("domain_id"); + it_site_id_domain_ed.put(it_site_id_addr, domain_id); + //graph.addVertex(router_id_addr); + } + + } + + } + catch (Exception e) { + e.printStackTrace(); + } + + return it_site_id_domain_ed; + + } + + + public static Hashtable getResource(String fileName){ + Hashtable resource_id_domain_ed=new Hashtable (); + + File file2 = new File(fileName); + try { + DocumentBuilder builder2 = DocumentBuilderFactory.newInstance().newDocumentBuilder(); + Document doc2 = builder2.parse(file2); + + NodeList nodes_domains = doc2.getElementsByTagName("domain"); + + for (int j = 0; j < nodes_domains.getLength(); j++) { + Element element_domain = (Element) nodes_domains.item(j); + NodeList nodes_domain_id = element_domain.getElementsByTagName("domain_id"); + Element domain_id_e = (Element) nodes_domain_id.item(0); + String domain_id_str=getCharacterDataFromElement(domain_id_e); + Inet4Address domain_id= (Inet4Address) Inet4Address.getByName(domain_id_str); + + NodeList storages = element_domain.getElementsByTagName("storage"); + for (int i = 0; i < storages.getLength(); i++) { + Element element = (Element) storages.item(i); + NodeList resource_id_node = element.getElementsByTagName("resource_id"); + Element resource_id_e = (Element) resource_id_node.item(0); + String resource_id=getCharacterDataFromElement(resource_id_e); + Inet4Address resource_id_addr= (Inet4Address) Inet4Address.getByName(resource_id); + + NodeList domain_id_node = element.getElementsByTagName("domain_id"); + resource_id_domain_ed.put(resource_id_addr, domain_id); + //graph.addVertex(router_id_addr); + + } + + } + + } + catch (Exception e) { + e.printStackTrace(); + } + return resource_id_domain_ed; + + } + + +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/IT_Resources.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/IT_Resources.java new file mode 100644 index 0000000000000000000000000000000000000000..a819bcf4d037085a7ce6eea68df7176129bdcd5c --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/IT_Resources.java @@ -0,0 +1,147 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.tedb; + +import es.tid.bgp.bgp4.update.tlv.linkstate_attribute_tlvs.DefaultTEMetricLinkAttribTLV; +import es.tid.bgp.bgp4.update.tlv.linkstate_attribute_tlvs.IPv4RouterIDLocalNodeLinkAttribTLV; +import es.tid.bgp.bgp4.update.tlv.linkstate_attribute_tlvs.IPv4RouterIDRemoteNodeLinkAttribTLV; +import es.tid.bgp.bgp4.update.tlv.linkstate_attribute_tlvs.LinkProtectionTypeLinkAttribTLV; +import es.tid.bgp.bgp4.update.tlv.linkstate_attribute_tlvs.MF_OTPAttribTLV; +import es.tid.bgp.bgp4.update.tlv.linkstate_attribute_tlvs.MetricLinkAttribTLV; +import es.tid.bgp.bgp4.update.tlv.linkstate_attribute_tlvs.TransceiverClassAndAppAttribTLV; +import es.tid.bgp.bgp4.update.tlv.node_link_prefix_descriptor_subTLVs.MinMaxUndirectionalLinkDelayDescriptorSubTLV; +import es.tid.bgp.bgp4.update.tlv.node_link_prefix_descriptor_subTLVs.UndirectionalAvailableBandwidthDescriptorSubTLV; +import es.tid.bgp.bgp4.update.tlv.node_link_prefix_descriptor_subTLVs.UndirectionalDelayVariationDescriptorSubTLV; +import es.tid.bgp.bgp4.update.tlv.node_link_prefix_descriptor_subTLVs.UndirectionalLinkDelayDescriptorSubTLV; +import es.tid.bgp.bgp4.update.tlv.node_link_prefix_descriptor_subTLVs.UndirectionalLinkLossDescriptorSubTLV; +import es.tid.bgp.bgp4.update.tlv.node_link_prefix_descriptor_subTLVs.UndirectionalResidualBandwidthDescriptorSubTLV; +import es.tid.bgp.bgp4.update.tlv.node_link_prefix_descriptor_subTLVs.UndirectionalUtilizedBandwidthDescriptorSubTLV; +import es.tid.ospf.ospfv2.lsa.tlv.subtlv.AdministrativeGroup; +import es.tid.ospf.ospfv2.lsa.tlv.subtlv.AvailableLabels; +import es.tid.ospf.ospfv2.lsa.tlv.subtlv.IPv4RemoteASBRID; +import es.tid.ospf.ospfv2.lsa.tlv.subtlv.InterfaceSwitchingCapabilityDescriptor; +import es.tid.ospf.ospfv2.lsa.tlv.subtlv.LinkLocalRemoteIdentifiers; +import es.tid.ospf.ospfv2.lsa.tlv.subtlv.LinkProtectionType; +import es.tid.ospf.ospfv2.lsa.tlv.subtlv.MaximumBandwidth; +import es.tid.ospf.ospfv2.lsa.tlv.subtlv.MaximumReservableBandwidth; +import es.tid.ospf.ospfv2.lsa.tlv.subtlv.RemoteASNumber; +import es.tid.ospf.ospfv2.lsa.tlv.subtlv.SharedRiskLinkGroup; +import es.tid.ospf.ospfv2.lsa.tlv.subtlv.TrafficEngineeringMetric; +import es.tid.ospf.ospfv2.lsa.tlv.subtlv.UnreservedBandwidth; +import es.tid.ospf.ospfv2.lsa.tlv.subtlv.complexFields.BitmapLabelSet; +import es.tid.rsvp.constructs.gmpls.DWDMWavelengthLabel; + +public class IT_Resources { + + private String controllerIT; + private String cpu; + private String mem; + private String storage; + private String learntFrom; + private String domainID; + + /** + * TEDB logger + */ + public IT_Resources() + { + //initWLANs(); + } + + public String getCpu() { + return cpu; + } + + public void setCpu(String cpu) { + this.cpu = cpu; + } + + + public String getMem() { + return mem; + } + + public void setMem(String mem) { + this.mem = mem; + } + + + public String getStorage() { + return storage; + } + + public void setStorage(String storage) { + this.storage = storage; + } + + /** + * Funcion que transforma una cantidad de bits en el numero de bytes que necesita + * @param numBit + */ + private int getNumberBytes(int numBits){ + int numberBytes = numBits/8; + if ((numberBytes*8) "+dst_router_id.toString()+":"+dst_if_id+" ("+((Object)super.getTarget()).toString()+")"; + ideString=src_router_id.toString()+": "+src_if_id+" --> "+dst_router_id.toString()+": "+dst_if_id; + /*if (TE_info==null){ + return ideString; + } + else + { + if ((this.TE_info.getAvailableLabels()!=null) &&(this.TE_info.getAvailableLabels().getLabelSet()!=null)){ + ideString=ideString+" Bitmap: {"; + for (int i=0;i"+this.getTarget()+":"+this.getDst_if_id()+" NumFibers = "+numFibers; + if (TE_info==null){ + return ret; + } + else + { + if ((this.TE_info.getAvailableLabels()!=null) &&(this.TE_info.getAvailableLabels().getLabelSet()!=null)){ + ret=ret+" Bitmap: {"; + for (int i=0;i"+this.getTarget()+":"+this.getDst_if_id(); + if (TE_info==null){ + return ret; + } + else + { + if (this.TE_info.getAvailableLabels()!=null){ + ret=ret+" Bitmap: {"; + for (int i=0;i networkDomainGraph; + public SimpleDirectedWeightedGraph networkGraph; + + //private LinkedList interDomainLinks; + + public SimpleTEDB simple_ted; + + private Logger log; + + private boolean addBidirectional; + + /** + * Table with IP address/prefix --> domain + */ + LinkedList reachability; + + public MDTEDB(){ + log=LoggerFactory.getLogger("BGP4Peer"); + networkDomainGraph=new DirectedWeightedMultigraph (InterDomainEdge.class); + addBidirectional=true;//FIXME: ESTO ES UN APA�O TEMPORAL + reachability=new LinkedList(); + //interDomainLinks = new LinkedList(); + } + + public DirectedWeightedMultigraph getDuplicatedMDNetworkGraph(){ + + DirectedWeightedMultigraph graphCopy= (DirectedWeightedMultigraph) networkDomainGraph.clone(); + return graphCopy; + } + + public DirectedWeightedMultigraph getNetworkDomainGraph() { + return networkDomainGraph; + } + + public void setNetworkDomainGraph( + DirectedWeightedMultigraph networkDomainGraph) { + this.networkDomainGraph = networkDomainGraph; + } + + public void initializeFromFile(String file){ + networkDomainGraph=FileTEDBUpdater.readMDNetwork(file); + } + + public void initializeFromFile(String file, String learntFrom){ + networkDomainGraph=FileTEDBUpdater.readMDNetwork(file, learntFrom); + } + + public void initializeFromFileInterDomainLinks(String file){ + } + + public void initializeFullTEDFromFile(String file){ + networkGraph=FileTEDBUpdater.readNetwork(file); + } + + public long getGraphId() { + return graphId; + } + public void setGraphId(long graphId) { + this.graphId = graphId; + } + + + public SimpleDirectedWeightedGraph getDuplicatedNetworkGraph() { + return networkGraph; + } + + public synchronized void addInterdomainLink( Object localDomainID, Object localRouterASBR, long localRouterASBRIf, Object remoteDomainID, Object remoteRouterASBR, long remoteRouterASBRIf, TE_Information te_info){ + + if (!networkDomainGraph.containsVertex(localDomainID)){ + networkDomainGraph.addVertex(localDomainID); + log.debug("Vertex (domain) "+localDomainID+" added"); + } + if (!networkDomainGraph.containsVertex(remoteDomainID)){ + networkDomainGraph.addVertex(remoteDomainID); + log.debug("Vertex (domain) "+remoteDomainID+" added"); + } + log.debug("Looking to add "+localRouterASBR+":"+localRouterASBRIf+" ("+localDomainID+") -->"+remoteRouterASBR+":"+remoteRouterASBRIf+" ("+remoteDomainID+")"); + Set edgeset= networkDomainGraph.edgesOf(localDomainID); + Iterator iterador=edgeset.iterator(); + boolean edgeFound=false; + InterDomainEdge interDomainEdgeFound=null; + if (edgeset.size() == 0) + log.debug("Edge set size = 0"); + while (iterador.hasNext()){ + InterDomainEdge interDomainEdge=iterador.next(); + log.debug("existing edge: "+interDomainEdge.toString()); + if (interDomainEdge.getSrc_router_id().equals(localRouterASBR)){ + log.debug("Local router is the same!!!"); + if (interDomainEdge.getDst_router_id().equals(remoteRouterASBR)){ + log.debug("Destination router is the same!!!"); + edgeFound=true; + interDomainEdgeFound=interDomainEdge; + } + else { + log.debug("Destination router is NOT the same!!!"); + } + }else { + log.debug("Local router is NOT the same!!!"); + } + } + + if (edgeFound==false) { + InterDomainEdge newInterDomainEdge =new InterDomainEdge(); + newInterDomainEdge.setSrc_router_id(localRouterASBR); + newInterDomainEdge.setDst_router_id(remoteRouterASBR); + newInterDomainEdge.setSrc_if_id(localRouterASBRIf); + newInterDomainEdge.setDst_if_id(remoteRouterASBRIf); + newInterDomainEdge.setDomain_dst_router(remoteDomainID); + newInterDomainEdge.setDomain_src_router(localDomainID); + if (te_info != null) + newInterDomainEdge.setTE_info(te_info); + networkDomainGraph.addEdge(localDomainID, remoteDomainID, newInterDomainEdge); + log.info("New interdomain edge between "+localDomainID+" and "+remoteDomainID+" received"); + + }else { + + if (te_info != null){ + //FIXME: Update of TE info to be optimized + log.debug("TE_info updated"); + interDomainEdgeFound.setTE_info(te_info); + } + + + } + } + + + public void addReachabilityIPv4(Inet4Address domainId,Inet4Address aggregatedIPRange,int prefix){ + ReachabilityEntry ra=new ReachabilityEntry(); + ra.setAggregatedIPRange(aggregatedIPRange); + long resta=((long)0x1<>>24 & 0xFF); + mask[1]=(byte)(maskLong>>>16 & 0xFF); + mask[2]=(byte)(maskLong>>>8 & 0xFF); + mask[3]=(byte)(maskLong& 0xFF); + ra.setMask(mask); + ra.setDomainId(domainId); + ra.setPrefix(prefix); + if (!(reachability.contains(ra))){ + reachability.add(ra); + } + return; + } + + + public String printMDTopology(){ + String topoString; + Set vetexSet= networkDomainGraph.vertexSet(); + Iterator vertexIterator=vetexSet.iterator(); + topoString="Domains: \r\n"; + while (vertexIterator.hasNext()){ + Object vertex= vertexIterator.next(); + topoString=topoString+"\t"+vertex.toString()+"\r\n"; + } + topoString=topoString+"Interdomain list: \r\n"; + Set edgeSet= networkDomainGraph.edgeSet(); + Iterator edgeIterator=edgeSet.iterator(); + while (edgeIterator.hasNext()){ + InterDomainEdge edge= edgeIterator.next(); + topoString=topoString+"\t"+edge.toString()+"\r\n"; + } + + return topoString; + } + +// public String printMD2Topology(){ +// String topoString; +// Set vetexSet= networkDomainGraph.vertexSet(); +// Iterator vertexIterator=vetexSet.iterator(); +// topoString="Domains: \r\n"; +// while (vertexIterator.hasNext()){ +// Object vertex= vertexIterator.next(); +// topoString=topoString+"\t"+vertex.toString()+"\r\n"; +// } +// topoString=topoString+"Interdomain list: \r\n"; +// Iterator edgeIterator=interDomainLinks.iterator(); +// while (edgeIterator.hasNext()){ +// InterDomainEdge edge= edgeIterator.next(); +// topoString=topoString+"\t"+edge.toString()+"\r\n"; +// } +// +// return topoString; +// } + + //Check resources SSON and WSON + public boolean CheckLocalResources(long ifID, Object ip){ + Iterator iteredges = networkDomainGraph.edgeSet().iterator(); + InterDomainEdge link; + while (iteredges.hasNext()) + { + link = iteredges.next(); + if ((link.getSrc_if_id()==(ifID))) + { + log.info("InterDomain Link Found to "+link.getDst_router_id().toString()); + return true; + } + } + return false; + } + + @Override + public String printTopology() { + // TODO Auto-generated method stub + return printMDTopology(); + } + + public LinkedList getInterDomainLinks() { + return new LinkedList(networkDomainGraph.edgeSet()); + } + + @Override + public boolean isITtedb() { + // TODO Auto-generated method stub + return false; + } + + public SimpleTEDB getSimple_ted() { + return simple_ted; + } + + public void setSimple_ted(SimpleTEDB simple_ted) { + this.simple_ted = simple_ted; + } + + public LinkedList getReachability() { + return reachability; + } + + public void setReachability(LinkedList reachability) { + this.reachability = reachability; + } + + +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/MultiDomainTEDB.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/MultiDomainTEDB.java new file mode 100644 index 0000000000000000000000000000000000000000..19c345888fcec23cdeda386fd8a8fccaf8fd3262 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/MultiDomainTEDB.java @@ -0,0 +1,25 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.tedb; + +import java.net.Inet4Address; + + +public interface MultiDomainTEDB extends TEDB { + + public void addInterdomainLink( Object localDomainID, Object localRouterASBR, long localRouterASBRIf, Object remoteDomainID, Object remoteRouterASBR, long remoteRouterASBRIf, TE_Information te_info ); + public void addReachabilityIPv4(Inet4Address domainId,Inet4Address aggregatedIPRange,int prefix); + +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/MultiLayerTEDB.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/MultiLayerTEDB.java new file mode 100644 index 0000000000000000000000000000000000000000..a2690516a0e1b4945718efa27a8126b50a5471a1 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/MultiLayerTEDB.java @@ -0,0 +1,473 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.tedb; + +import es.tid.ospf.ospfv2.lsa.tlv.subtlv.complexFields.BitmapLabelSet; +import org.jgrapht.graph.SimpleDirectedWeightedGraph; + +import java.net.Inet4Address; +import java.util.*; +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; + + +public class MultiLayerTEDB implements DomainTEDB { + + private ArrayList registeredAlgorithms; + /** + * Graph of the Upper Layer Network + */ + /** + * + */ + private SimpleDirectedWeightedGraph upperLayerGraph; + + /** + * Graph of the Upper Layer Network + */ + private SimpleDirectedWeightedGraph lowerLayerGraph; + + /** + * InterLayer Graph + */ + private SimpleDirectedWeightedGraph interLayerGraph; + /** + * Reachability information + */ + private ReachabilityEntry reachabilityEntry; + + /** + * WSON Information of the lower Layer + */ + private WSONInformation WSONinfo=null; + + private Lock TEDBlock; + + + /** + * List of interdomain Links + */ + private LinkedList interDomainLinks; + + private Hashtable RelationNodesInterlayer; + + + + + public MultiLayerTEDB(){ + registeredAlgorithms= new ArrayList(); + TEDBlock=new ReentrantLock(); + } + + + public SimpleDirectedWeightedGraph getUpperLayerGraph() { + return upperLayerGraph; + } + + public void setUpperLayerGraph( + SimpleDirectedWeightedGraph upperLayerGraph) { + this.upperLayerGraph = upperLayerGraph; + } + + + public SimpleDirectedWeightedGraph getLowerLayerGraph() { + return lowerLayerGraph; + } + + public void setLowerLayerGraph( + SimpleDirectedWeightedGraph lowerLayerGraph) { + this.lowerLayerGraph = lowerLayerGraph; + } + + + public SimpleDirectedWeightedGraph getInterLayerGraph() { + return interLayerGraph; + } + + public void setInterLayerGraph( + SimpleDirectedWeightedGraph interLayerGraph) { + this.interLayerGraph = interLayerGraph; + } + + + + public SimpleDirectedWeightedGraph getDuplicatedUpperLayerkGraph(){ + SimpleDirectedWeightedGraph graphCopy; + TEDBlock.lock(); + try{ + graphCopy= (SimpleDirectedWeightedGraph) upperLayerGraph.clone(); + } finally{ + TEDBlock.unlock(); + } + return graphCopy; + } + public Hashtable getRelationNodesInterlayer() { + return RelationNodesInterlayer; + } + public SimpleDirectedWeightedGraph getDuplicatedLowerLayerkGraph(){ + SimpleDirectedWeightedGraph graphCopy; + TEDBlock.lock(); + try{ + graphCopy= (SimpleDirectedWeightedGraph) lowerLayerGraph.clone(); + } finally{ + TEDBlock.unlock(); + } + return graphCopy; + } + + public SimpleDirectedWeightedGraph getDuplicatedInterLayerGraph(){ + SimpleDirectedWeightedGraph graphCopy; + TEDBlock.lock(); + try{ + graphCopy= (SimpleDirectedWeightedGraph) interLayerGraph.clone(); + } finally{ + TEDBlock.unlock(); + } + return graphCopy; + } + + public void initializeFromFile(String file) { + upperLayerGraph=FileTEDBUpdater.readNetwork(file, "mpls"); + lowerLayerGraph=FileTEDBUpdater.readNetwork(file, "wson"); + interLayerGraph=FileTEDBUpdater.readNetwork(file, "interlayer"); + WSONinfo = FileTEDBUpdater.getWSONInformation(file, "wson"); + interDomainLinks = FileTEDBUpdater.readInterDomainLinks(file); + + reachabilityEntry = new ReachabilityEntry(); + //domainReachabilityIPv4Prefix=new byte[4]; + FileTEDBUpdater.getDomainReachabilityFromFile(file,reachabilityEntry,"mpls"); + } + + @Override + public void initializeFromFile(String file, String learnFrom) { + + } + + @Override + public boolean isITtedb() { + // TODO Auto-generated method stub + return false; + } + + @Override + public String printTopology() { + String topoString; + Set vetexSet= upperLayerGraph.vertexSet(); + Iterator vertexIterator=vetexSet.iterator(); + topoString="MPLS Nodes: \r\n"; + while (vertexIterator.hasNext()){ + Object vertex= vertexIterator.next(); + topoString=topoString+"\t"+vertex.toString()+"\r\n"; + } + topoString=topoString+"MPLS Link list: \r\n"; + Set edgeSet= upperLayerGraph.edgeSet(); + Iterator edgeIterator=edgeSet.iterator(); + while (edgeIterator.hasNext()){ + IntraDomainEdge edge= edgeIterator.next(); + topoString=topoString+"\t"+edge.toString()+"\r\n"; + } + vetexSet= lowerLayerGraph.vertexSet(); + vertexIterator=vetexSet.iterator(); + topoString="GMPLS Nodes: \r\n"; + while (vertexIterator.hasNext()){ + Object vertex= vertexIterator.next(); + topoString=topoString+"\t"+vertex.toString()+"\r\n"; + } + topoString=topoString+"gmpls Link list: \r\n"; + edgeSet= lowerLayerGraph.edgeSet(); + edgeIterator=edgeSet.iterator(); + while (edgeIterator.hasNext()){ + IntraDomainEdge edge= edgeIterator.next(); + topoString=topoString+"\t"+edge.toString()+"\r\n"; + } + topoString=topoString+"InterLayer list: \r\n"; + edgeSet= interLayerGraph.edgeSet(); + edgeIterator=edgeSet.iterator(); + while (edgeIterator.hasNext()){ + IntraDomainEdge edge= edgeIterator.next(); + topoString=topoString+"\t"+edge.toString()+"\r\n"; + } + + topoString=topoString+printInterDomainLinks(); + return topoString; + } + + @Override + public boolean belongsToDomain(Object addr) { + int i; + byte[] addrbytes= ((Inet4Address)addr).getAddress(); + for (i=0;i<4;++i){ + addrbytes[i]=(byte) (addrbytes[i]&(reachabilityEntry.getMask())[i]); + } + return Arrays.equals(addrbytes,reachabilityEntry.getAggregatedIPRange().getAddress()); + } + + public ReachabilityEntry getReachabilityEntry() { + return reachabilityEntry; + } + + public LinkedList getInterDomainLinks() { + return interDomainLinks; + } + + @Override + public String printInterDomainLinks(){ + String topoString=""; + + int size = interDomainLinks.size(); + topoString="Interdomain Link list: \r\n"; + for (int i=0;i sourceVertexList, LinkedList targetVertexList, int wavelength, boolean bidirectional){ + TEDBlock.lock(); + try { + for (int i=0;i sourceVertexList, LinkedList targetVertexList, int wavelength, boolean bidirectional){ + // TODO Auto-generated method stub + //Delete the resource reservation + TEDBlock.lock(); + try { + for (int i=0;i graph= ted.getNetworkGraph(); + IntraDomainEdge edge=lowerLayerGraph.getEdge(sourceVertexList.get(i),targetVertexList.get(i) ); + edge.getTE_info().setWavelengthUnReserved(wavelength); + if (bidirectional == true) + { + edge=lowerLayerGraph.getEdge(targetVertexList.get(i), sourceVertexList.get(i)); + edge.getTE_info().setWavelengthUnReserved(wavelength); + } + } + }finally{ + TEDBlock.unlock(); + } + for (int i=0;i edgeSet= lowerLayerGraph.edgeSet(); + Iterator edgeIterator=edgeSet.iterator(); + while (edgeIterator.hasNext()){ + IntraDomainEdge edge= edgeIterator.next(); + edge.TE_info.setAllWavelengtshUnReserved(); + } + }finally{ + TEDBlock.unlock(); + } + for (int i=0;i sourceVertexList, + LinkedList targetVertexList, int wavelength, + boolean bidirectional, int m) { + // TODO Auto-generated method stub + } + + @Override + public void notifyWavelengthReservationSSON( + LinkedList sourceVertexList, + LinkedList targetVertexList, int wavelength, + boolean bidirectional, int m) { + // TODO Auto-generated method stub + } + + @Override + public SSONInformation getSSONinfo() { + // TODO Auto-generated method stub + return null; + } + + + @Override + public Set getIntraDomainLinks() { + // TODO Auto-generated method stub + return null; + } + + + @Override + public void notifyWavelengthReservationWLAN( + LinkedList sourceVertexList, + LinkedList targetVertexList, + LinkedList wlans, boolean bidirectional) { + // TODO Auto-generated method stub + + } + + + @Override + public void registerSSON(SSONListener compAlgPreComp) { + // TODO Auto-generated method stub + + } + + + @Override + public Inet4Address getDomainID() { + // TODO Auto-generated method stub + return null; + } + + + @Override + public void setWSONinfo(WSONInformation wSONinfo) { + // TODO Auto-generated method stub + + } + + + @Override + public void setSSONinfo(SSONInformation sSONinfo) { + // TODO Auto-generated method stub + + } + + + @Override + public void createGraph() { + // TODO Auto-generated method stub + + } + + + @Override + public Set getIntraDomainLinksvertexSet() { + // TODO Auto-generated method stub + return null; + } + + + @Override + public Hashtable getNodeTable() { + // TODO Auto-generated method stub + return null; + } + + + @Override + public IT_Resources getItResources() { + // TODO Auto-generated method stub + return null; + } + + + @Override + public void setItResources(IT_Resources itResources) { + // TODO Auto-generated method stub + + } +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/Node_Info.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/Node_Info.java new file mode 100644 index 0000000000000000000000000000000000000000..bc523ba5a6044c2cd9b16d5fa011cb03ce7dfbe9 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/Node_Info.java @@ -0,0 +1,207 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.tedb; + +import java.net.Inet4Address; +import java.util.LinkedList; + +import es.tid.of.DataPathID; + +public class Node_Info { + + //we specify we we learn the topology from + + private String learntFrom = null; + // for the moment only ospf-non pseudo supported + private Inet4Address igp_ident = null; + + //caracterizacion + private Inet4Address as_number, area_id, bgpls_ident, ipv4AddressLocalNode= null; + private DataPathID dataPathIDLocalNode; + private boolean overload_bit = false; + private boolean attached_bit = false; + private boolean external_bit = false; + private boolean abr_bit = false; + private byte[] name; + private LinkedList ipv4areaIDs = new LinkedList (); + private int sid; + + + + + public Node_Info() { + // TODO Auto-generated constructor stub + } + + public Node_Info(Inet4Address ipv4Address_ospf, Inet4Address as_number, + boolean overload_bit, boolean attached_bit, boolean external_bit, + boolean abr_bit, byte[] name, LinkedList ipv4areaIDs, Inet4Address ipv4AdddressLN) { + super(); + this.igp_ident = ipv4Address_ospf; + this.as_number = as_number; + this.overload_bit = overload_bit; + this.attached_bit = attached_bit; + this.external_bit = external_bit; + this.abr_bit = abr_bit; + this.name = name; + this.ipv4areaIDs = ipv4areaIDs; + this.ipv4AddressLocalNode = ipv4AdddressLN; + } + + public LinkedList getIpv4areaIDs() { + return ipv4areaIDs; + } + + public void setIpv4areaIDs(LinkedList ipv4areaIDs) { + this.ipv4areaIDs = ipv4areaIDs; + } + + public byte[] getName() { + return name; + } + + + public void setName(byte[] name) { + this.name = name; + } + + public boolean isOverload_bit() { + return overload_bit; + } + + + public void setOverload_bit(boolean overload_bit) { + this.overload_bit = overload_bit; + } + + + public boolean isAttached_bit() { + return attached_bit; + } + + + public void setAttached_bit(boolean attached_bit) { + this.attached_bit = attached_bit; + } + + + public boolean isExternal_bit() { + return external_bit; + } + + + public void setExternal_bit(boolean external_bit) { + this.external_bit = external_bit; + } + + + public Inet4Address getArea_id() { + return area_id; + } + + public void setArea_id(Inet4Address area_id) { + this.area_id = area_id; + } + + public boolean isAbr_bit() { + return abr_bit; + } + + + public void setAbr_bit(boolean abr_bit) { + this.abr_bit = abr_bit; + } + + + public Inet4Address getIpv4Address() { + return igp_ident; + } + + + public void setIpv4Address(Inet4Address ipv4Address_ospf) { + this.igp_ident = ipv4Address_ospf; + } + + + public Inet4Address getIpv4AddressLocalNode() { + return ipv4AddressLocalNode; + } + + public void setIpv4AddressLocalNode(Inet4Address ipv4AddressLocalNode) { + this.ipv4AddressLocalNode = ipv4AddressLocalNode; + } + + public DataPathID getDataPathLocalNode() { + return dataPathIDLocalNode; + } + + public void setDataPathLocalNode(DataPathID dataPathLocalNode) { + this.dataPathIDLocalNode = dataPathLocalNode; + } + + public Inet4Address getAs_number() { + return as_number; + } + + + public void setAs_number(Inet4Address as_number) { + this.as_number = as_number; + } + + public Inet4Address getBgpls_ident() { + return bgpls_ident; + } + + public void setBgpls_ident(Inet4Address bgpls_ident) { + this.bgpls_ident = bgpls_ident; + } + + public String getLearntFrom() { + return learntFrom; + } + + public void setLearntFrom(String learntFrom) { + this.learntFrom = learntFrom; + } + + public void setSID(int sid) { + this.sid = sid; + } + + public int getSid(){ + return sid; + } + public String toString(){ + String ret = ""; + + if(igp_ident!=null) + ret = ret + "IGP-ID:" + this.getIpv4Address() +"\t"; + if(as_number!=null) + ret = ret + "as_num:" + this.getAs_number() +"\t"; + if(bgpls_ident != null) + ret = ret + "BGPLS-ident:" + this.getBgpls_ident() +"\t"; + if(name != null) + ret = ret + "Name :" + this.getName() +"\t"; + if(ipv4AddressLocalNode!=null) + ret = ret +"Local Node IP Address: " + this.getIpv4AddressLocalNode() + "\t"; + if(sid!=0) + ret = ret + "SID:" + this.getSid() +"\t"; + + return ret; + + } + + +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/ReachabilityEntry.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/ReachabilityEntry.java new file mode 100644 index 0000000000000000000000000000000000000000..d51896c0e133c5b1c11da64fed586b2fc5678c90 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/ReachabilityEntry.java @@ -0,0 +1,85 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.tedb; + +import java.net.Inet4Address; + +public class ReachabilityEntry { + + public Inet4Address domainId; + public byte[] mask; + public int prefix; + + //public byte[] aggregatedIPRange; + public Inet4Address aggregatedIPRange; + + public ReachabilityEntry(){ + mask = new byte[4]; + + } + public ReachabilityEntry(Inet4Address domainId){ + mask = new byte[4]; + + } + + public int getPrefix() { + return prefix; + } + + public Inet4Address getAggregatedIPRange() { + return aggregatedIPRange; + } + + public void setAggregatedIPRange(Inet4Address aggregatedIPRange) { + this.aggregatedIPRange = aggregatedIPRange; + } + + public byte[] getMask() { + return mask; + } + + + public Inet4Address getDomainId() { + return domainId; + } + + public void setDomainId(Inet4Address domainId) { + this.domainId = domainId; + } + + public void setMask(byte[] mask) { + this.mask = mask; + } + public void setPrefix(int prefix) { + this.prefix = prefix; + } + public String toString(){ + String ret=aggregatedIPRange.toString()+"\\"+prefix+" ("+domainId.toString()+")"; + return ret; + } + + @Override + public boolean equals(Object reachabilityObject) { + if ((domainId.equals(((ReachabilityEntry)reachabilityObject).getDomainId()))&& + (aggregatedIPRange.equals(((ReachabilityEntry)reachabilityObject).getAggregatedIPRange()))&& + (prefix == ((ReachabilityEntry)reachabilityObject).getPrefix())){ + return true; + } + + return false; + } + + +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/ReachabilityManager.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/ReachabilityManager.java new file mode 100644 index 0000000000000000000000000000000000000000..cf2f3c5c324ebde570a7932563a8379804dab21b --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/ReachabilityManager.java @@ -0,0 +1,162 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.tedb; + +import java.net.Inet4Address; +import java.util.Iterator; +import java.util.LinkedList; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import es.tid.rsvp.objects.subobjects.EROSubobject; +import es.tid.rsvp.objects.subobjects.IPv4prefixEROSubobject; +import es.tid.rsvp.objects.subobjects.SubObjectValues; + +/** + * Class that maintains a table with Reachability entries. + * It has a method to add a reachability entry + * It has a method to query the domain of an IPv4 endpoint + * It has a method to query if an address begins to a given IP range + * KNOWN BUGS: + * * When a reachability entry is added, it is not checked if + * it is already there or not. + * * Reachability entries cannot be removed + * + * @author ogondio + * + */ +public class ReachabilityManager { + + /** + * Table with IP address/prefix --> domain + */ + LinkedList reachability; + /** + * The logger + */ + private Logger log; + + /** + * ReachabilityManager constructor + */ + public ReachabilityManager(){ + log=LoggerFactory.getLogger("PCEServer"); + reachability=new LinkedList(); + } + + /** + * gets the domain of an IPv4 EndpointAddress + * @param endpointAddress the address to query + * @return The domain id if the endpointAddress belongs to a domain, null otherwise. + */ + public Inet4Address getDomain(Inet4Address endpointAddress) { + //String domain="0.0.0.1"; + Iterator it=reachability.iterator(); + while (it.hasNext()){ + ReachabilityEntry ra=it.next(); + //log.info("reachability entry "+ra.aggregatedIPRange+" mask "+(ra.mask[0]&0xFF)+"."+(ra.mask[1]&0xFF)+"."+(ra.mask[2]&0xFF)+"."+(ra.mask[3]&0xFF)); + if (belongsToDomain(endpointAddress, ra.mask, ra.aggregatedIPRange)){ + return ra.domainId; + } + } + return null; + + } + + /** + * Method to determine if the address 'nodeAdrress' belongs to the aggregated IP address range given by the mask and the addresss 'aggregatedIPRange' + * @param nodeAddress The address to query + * @param mask The 32 bit network mask + * @param aggregatedIPRange The aggregated IP address + * @return true if it belongs to the range, false if it does not belong to the range + */ + public boolean belongsToDomain(Inet4Address nodeAddress, byte []mask, Inet4Address aggregatedIPRange){ + int i; + //byte [] networkAddress=new byte[4]; + byte [] bytesAggregatedIPRange=aggregatedIPRange.getAddress(); + byte [] bytesNodeAddress=nodeAddress.getAddress(); + boolean found=true; + for (i=0;i<4;++i){ + //networkAddress[i]= (byte) ((bytesNodeAddress[i]&mask[i])&0xFF) ; + //log.info("network Node Address[i]: "+(networkAddress[i]&0xFF)); + //log.info("bytesAggregatedIPRange["+i+"]: "+((bytesAggregatedIPRange[i]&mask[i])&0xFF)); + //log.info("bytesNodeAddress["+i+"]: "+((bytesNodeAddress[i]&mask[i])&0xFF)); + if ((byte)((bytesAggregatedIPRange[i]&mask[i])&0xFF)!=(byte)((bytesNodeAddress[i]&mask[i])&0xFF)){ + found=false; + return found; + } + } + return found; + } + + /** + * Adds a ERO Subobject associated with a given domainId to the reachability table + * @param domainId Domain ID + * @param eroso ERO Subobject + */ + public void addEROSubobject(Inet4Address domainId, EROSubobject eroso ){ + if (eroso.getType()==SubObjectValues.ERO_SUBOBJECT_IPV4PREFIX){ + log.info("Adding IPv4 ERO Subobject to the Reachability Database"); + IPv4prefixEROSubobject ipv4eroso=(IPv4prefixEROSubobject)eroso; + //long mask=(long)0xFFFFFFFF-(long)Math.pow(2, 32-ipv4eroso.getPrefix())-1; + log.info("prefix "+ipv4eroso.getPrefix()); + long resta=((long)0x1<>>24 & 0xFF); + mask[1]=(byte)(maskLong>>>16 & 0xFF); + mask[2]=(byte)(maskLong>>>8 & 0xFF); + mask[3]=(byte)(maskLong& 0xFF); + log.info("mask: "+(mask[0]&0xFF)+"."+(mask[1]&0xFF)+"."+(mask[2]&0xFF)+"."+(mask[3]&0xFF)); + log.info("Domain ID: "+domainId+" mask "+mask+" IPv4 Address: "+ipv4eroso.getIpv4address());//Pasar a FINE + addIPv4Entry(domainId,mask,ipv4eroso.getIpv4address(),ipv4eroso.getPrefix()); + } + + } + + private void addIPv4Entry(Inet4Address domainId,byte [] mask,Inet4Address aggregatedIPRange,int prefix){ + ReachabilityEntry ra=new ReachabilityEntry(); + ra.aggregatedIPRange=aggregatedIPRange; + ra.mask=mask; + ra.domainId=domainId; + ra.prefix=prefix; + if (!(reachability.contains(ra))){ + reachability.add(ra); + } + return; + } + + /** + * Print the reachability table + * @return String with the reachability information + */ + public String printReachability(){ + String reachabilityString; + Iterator reachabIterator=reachability.iterator(); + reachabilityString="Reachability entries: \r\n"; + while (reachabIterator.hasNext()){ + ReachabilityEntry entry= reachabIterator.next(); + reachabilityString=reachabilityString+"\t"+entry.toString()+"\r\n"; + } + + return reachabilityString; + } + + public LinkedList getReachability() { + return reachability; + } + + +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/SSONInformation.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/SSONInformation.java new file mode 100644 index 0000000000000000000000000000000000000000..ff69b890128286c63af48c727dccb6e31280b536 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/SSONInformation.java @@ -0,0 +1,88 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.tedb; + +import es.tid.ospf.ospfv2.lsa.tlv.subtlv.AvailableLabels; + +/** + * Label information in the special case of a Switched Spectrum Optical Network based on Flexgrid. + * @author amll + * + */ + +public class SSONInformation { + /** + * In case the Network is SSON, this is the list of available Labels + */ + private AvailableLabels commonAvailableLabels; + + /** + * In case the Network is SSON, this is the number of wavelengths. -1 means it is not WSON. + */ + private int numLambdas=-1; + /** + * Spectral Grid of the optical network. + */ + public int grid=0; + /** + * Channel Spacing + */ + public int cs=0; + /** + * Minimum central frequency available in the spectral grid available to be assigned to a LSP. + */ + public int nMin=0; + + public int getGrid() { + return grid; + } + + public void setGrid(int grid) { + this.grid = grid; + } + + public int getCs() { + return cs; + } + + public void setCs(int cs) { + this.cs = cs; + } + + + public int getnMin() { + return nMin; + } + + public void setnMin(int nMin) { + this.nMin = nMin; + } + + public AvailableLabels getCommonAvailableLabels() { + return commonAvailableLabels; + } + + public void setCommonAvailableLabels(AvailableLabels commonAvailableLabels) { + this.commonAvailableLabels = commonAvailableLabels; + } + + public int getNumLambdas() { + return numLambdas; + } + + public void setNumLambdas(int numLambdas) { + this.numLambdas = numLambdas; + } +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/SSONListener.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/SSONListener.java new file mode 100644 index 0000000000000000000000000000000000000000..ce769c41c86c94247cd0e00951072f8f9e3c93e9 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/SSONListener.java @@ -0,0 +1,28 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.tedb; + +import java.util.LinkedList; + +public interface SSONListener extends TEDListener{ + + public void notifyWavelengthReservationSSON(LinkedList sourceVertexList, + LinkedList targetVertexList, int wavelength, int m); + + void notifyWavelengthEndReservationSSON( + LinkedList sourceVertexList, + LinkedList targetVertexList, int wavelength, int m); + +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/SimpleTEDB.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/SimpleTEDB.java new file mode 100644 index 0000000000000000000000000000000000000000..f2d5dbc892bb4f1ff92e6d44bb807afce293f6ae --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/SimpleTEDB.java @@ -0,0 +1,786 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.tedb; + +import java.net.Inet4Address; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Hashtable; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.Set; +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import org.jgrapht.graph.SimpleDirectedWeightedGraph; + +import es.tid.of.DataPathID; +import es.tid.ospf.ospfv2.lsa.tlv.subtlv.complexFields.BitmapLabelSet; + +/** + * Traffic Engineering Database of a Domain. + * + * + * @author ogondio, mcs, b.mvas + * + */ +public class SimpleTEDB implements DomainTEDB{ + + private Inet4Address domainID; + + private IT_Resources itResources; + + /** + * List of algorithms that will be notified when there are significant changes in the TED + */ + private ArrayList registeredAlgorithms; + /** + * List of algorithms SSON that will be notified when there are significant changes in the TED + */ + private ArrayList registeredAlgorithmssson; + /** + * Graph of the Network + */ + private SimpleDirectedWeightedGraph networkGraph; + + /** + * List of interdomain Links + */ + private LinkedList interDomainLinks = new LinkedList(); + + /* + * List of Intradomain Edges + * Please, It's not the same as intraDomainLinks + * This has been created to support multiedges between two nodes + */ + private LinkedList intraDomainEdges = new LinkedList(); + + + /** + * Reachability information + */ + private ReachabilityEntry reachabilityEntry; + /** + * Information about the labels in a WSON network. + */ + private WSONInformation WSONinfo=null; + /** + * Information about the labels in a SSON network. + */ + private SSONInformation SSONinfo=null; + + private Lock TEDBlock; + + private Hashtable NodeTable; + + private boolean multidomain=false;//By default, the TED has only one domain + Logger log; + public SimpleTEDB(){ + log=LoggerFactory.getLogger("TEDBParser"); + registeredAlgorithms= new ArrayList(); + registeredAlgorithmssson= new ArrayList(); + TEDBlock=new ReentrantLock(); + NodeTable = new Hashtable(); + } + + public SimpleDirectedWeightedGraph getDuplicatedNetworkGraph(){ + SimpleDirectedWeightedGraph graphCopy; + TEDBlock.lock(); + try{ + graphCopy= (SimpleDirectedWeightedGraph) networkGraph.clone(); + } finally{ + TEDBlock.unlock(); + } + return graphCopy; + } + public void createGraph(){ + networkGraph = new SimpleDirectedWeightedGraph(IntraDomainEdge.class); + reachabilityEntry = new ReachabilityEntry(); + } + + public void initializeFromFile(String file){ + initializeFromFile(file, null, false,0,Integer.MAX_VALUE, false,false); + } + public void initializeFromFile(String file, String layer){ + initializeFromFile(file, layer, false,0,Integer.MAX_VALUE, false,false); + } + public void initializeFromFile(String file, String layer, boolean multidomain){ + initializeFromFile(file, layer, multidomain,0,Integer.MAX_VALUE, false,false); + } + public void initializeFromFile(String file, String layer, boolean multidomain, boolean isSSON){ + initializeFromFile(file, layer, multidomain,0,Integer.MAX_VALUE, isSSON,false); + } + public void initializeFromFile(String file, String layer, boolean multidomain,int lambdaIni, int lambdaEnd){ + initializeFromFile(file, layer, multidomain,0,Integer.MAX_VALUE, false,false); + } + public void initializeFromFile(String file, String layer, boolean multidomain, int lambdaIni, int lambdaEnd, boolean isSSON,boolean readOnlyInterDomainLinks){ + initializeFromFile( file, layer, multidomain, lambdaIni, lambdaEnd, isSSON, readOnlyInterDomainLinks, false); + } + + public void initializeFromFile(String file, String layer, boolean multidomain, int lambdaIni, int lambdaEnd, boolean isSSON,boolean readOnlyInterDomainLinks, boolean isWLAN){ + domainID=FileTEDBUpdater.getDomainIDfromSimpleDomain(file); + if (readOnlyInterDomainLinks){ + log.info("Read Only Inter Domain Links"); + networkGraph = new SimpleDirectedWeightedGraph(IntraDomainEdge.class); + if (!multidomain){ + interDomainLinks = FileTEDBUpdater.readInterDomainLinks(file); + } + reachabilityEntry = new ReachabilityEntry(); + if (!multidomain){ + FileTEDBUpdater.getDomainReachabilityFromFile(file,reachabilityEntry); + } + if((isSSON==true)&(!isWLAN)){ + SSONinfo = FileTEDBUpdater.getSSONInformation(file); + }else if (isWLAN) + { + + } + else + { + WSONinfo = FileTEDBUpdater.getWSONInformation(file); + } + }else{ + if((isSSON==true)&&(!isWLAN)){ + networkGraph=FileTEDBUpdater.readNetwork(file,layer, multidomain,lambdaIni,lambdaEnd, isSSON); + SSONinfo = FileTEDBUpdater.getSSONInformation(file); + } + else if (isWLAN) + { + networkGraph=FileTEDBUpdater.readNetwork(file,layer, multidomain,lambdaIni,lambdaEnd, isSSON); + } + else{ + networkGraph=FileTEDBUpdater.readNetwork(file,layer, multidomain,lambdaIni,lambdaEnd); + WSONinfo = FileTEDBUpdater.getWSONInformation(file); + } + // if (lambdaEnd!=Integer.MAX_VALUE){ + // notifyAlgorithms( lambdaIni, lambdaEnd); + // } + Iterator itervertex=networkGraph.vertexSet().iterator(); + + /** Se podrian sacar a una funcion externa ambos 'while' + * Rellenar info table + * Rellenar info edge + * Preguntar a Oscar + */ + while (itervertex.hasNext()) { + Object address = itervertex.next(); + Node_Info ni = new Node_Info(); + if (address instanceof Inet4Address){ + ni.setIpv4AddressLocalNode((Inet4Address)address); + ni.setIpv4Address((Inet4Address)address);//de momento asumimos que aprendemos ospf + } else if (address instanceof DataPathID) { + ni.setDataPathLocalNode((DataPathID)address); + } + ni.setLearntFrom("Fom XML"); + ni.setAs_number(domainID); + NodeTable.put(address, ni); + } + + Iterator iteredge=networkGraph.edgeSet().iterator(); + while (iteredge.hasNext()) { + IntraDomainEdge id = (IntraDomainEdge) iteredge.next(); + try{ + Inet4Address ipSource = (Inet4Address) (id.getSource()); + Inet4Address ipDest = (Inet4Address) (id.getTarget()); + id.setLearntFrom("From XML"); + Node_Info origin = new Node_Info(); + Node_Info destination = new Node_Info(); + origin.setIpv4AddressLocalNode(ipSource); + origin.setAs_number(domainID); + origin.setLearntFrom("FromXML"); + destination.setIpv4AddressLocalNode(ipDest); + destination.setAs_number(domainID); + destination.setLearntFrom("FromXML"); + id.setLocal_Node_Info(origin); + id.setRemote_Node_Info(destination); + NodeTable.get(ipSource).setSID(id.getSrc_sid()); + NodeTable.get(ipDest).setSID(id.getDst_sid()); + }catch (Exception e1){ + DataPathID dpSource = (DataPathID) (id.getSource()); + DataPathID dpDest = (DataPathID) (id.getTarget()); + id.setLearntFrom("From XML"); + Node_Info origin = new Node_Info(); + Node_Info destination = new Node_Info(); + origin.setDataPathLocalNode(dpSource); + origin.setAs_number(domainID); + origin.setLearntFrom("FromXML"); + destination.setDataPathLocalNode(dpDest); + destination.setAs_number(domainID); + destination.setLearntFrom("FromXML"); + id.setLocal_Node_Info(origin); + id.setRemote_Node_Info(destination); + //NodeTableDataPath.get(dpSource).setSID(id.getSrc_sid()); + //NodeTableDataPath.get(dpDest).setSID(id.getDst_sid()); + } + + } + } + + + if (!multidomain){ + interDomainLinks = FileTEDBUpdater.readInterDomainLinks(file); + } + else { + interDomainLinks = new LinkedList(); + } + reachabilityEntry = new ReachabilityEntry(); + if (!multidomain){ + FileTEDBUpdater.getDomainReachabilityFromFile(file,reachabilityEntry); + } + + Iterator edgeIt = interDomainLinks.iterator(); + while (edgeIt.hasNext()) { + InterDomainEdge id = (InterDomainEdge) edgeIt.next(); + try { + Inet4Address ipSource = (Inet4Address) (id.src_router_id); + Inet4Address ipDest = (Inet4Address) (id.dst_router_id); + id.setLearntFrom("From XML"); + Node_Info origin = new Node_Info(); + Node_Info destination = new Node_Info(); + origin.setIpv4AddressLocalNode(ipSource); + origin.setAs_number(domainID); + origin.setLearntFrom("FromXML"); + destination.setIpv4AddressLocalNode(ipDest); + destination.setAs_number((Inet4Address) id.domain_dst_router); + destination.setLearntFrom("FromXML"); + id.setLocal_Node_Info(origin); + id.setRemote_Node_Info(destination); + } catch (Exception e) { + DataPathID dpSource = (DataPathID) (id.src_router_id); + DataPathID dpDest = (DataPathID) (id.dst_router_id); + id.setLearntFrom("From XML"); + Node_Info origin = new Node_Info(); + Node_Info destination = new Node_Info(); + origin.setDataPathLocalNode(dpSource); + origin.setAs_number(domainID); + origin.setLearntFrom("FromXML"); + destination.setDataPathLocalNode(dpDest); + destination.setAs_number((Inet4Address) id.domain_dst_router); + destination.setLearntFrom("FromXML"); + id.setLocal_Node_Info(origin); + id.setRemote_Node_Info(destination); + } + } + + } + + public void notifyAlgorithms( int lambdaIni,int lambdaEnd){ + LinkedList ipListScr = new LinkedList (); + LinkedList ipListDst = new LinkedList (); + Set it =this.networkGraph.edgeSet(); + int numLabels=0; + for (IntraDomainEdge edge:it){ + numLabels=edge.TE_info.getAvailableLabels().getLabelSet().getNumLabels(); + for (int i=0;i getIntraDomainEdges() { + return intraDomainEdges; + } + + public void setIntraDomainEdges(LinkedList intraDomainEdges) { + this.intraDomainEdges = intraDomainEdges; + } + + public ReachabilityEntry getReachabilityEntry() { + return reachabilityEntry; + } + + public void setReachabilityEntry(ReachabilityEntry reachabilityEntry) { + this.reachabilityEntry = reachabilityEntry; + } + + public SimpleDirectedWeightedGraph getNetworkGraph() { + return networkGraph; + } + + public void setNetworkGraph( + SimpleDirectedWeightedGraph networkGraph) { + this.networkGraph = networkGraph; + } + + public LinkedList getInterDomainLinks() { + return interDomainLinks; + } + public void setInterDomainLinks(LinkedList interDomainLinks) { + this.interDomainLinks = interDomainLinks; + } + + /** + * Return true if scr and dst are linked by an InterDomainLink + * @param src Source + * @param dst Destination + * @return true if scr and dst are linked by an InterDomainLink + */ + public InterDomainEdge getInterdomainLink(Object src, Object dst){ + + int size = interDomainLinks.size(); + InterDomainEdge edge= new InterDomainEdge(src,dst); + for (int i=0;i vetexSet= networkGraph.vertexSet(); + Iterator vertexIterator=vetexSet.iterator(); + topoString="Nodes: \r\n"; + while (vertexIterator.hasNext()){ + Object vertex= vertexIterator.next(); + topoString=topoString+"\t"+vertex.toString()+"\r\n"; + } + topoString=topoString+"Node Information Table::: \r\n"+NodeTable.toString()+"\r\n"; + Set edgeSet= networkGraph.edgeSet(); + if (edgeSet != null){ + Iterator edgeIterator=edgeSet.iterator(); + topoString=topoString+"Intradomain Link list: \r\n"; + while (edgeIterator.hasNext()){ + IntraDomainEdge edge= edgeIterator.next(); + topoString=topoString+"\t"+edge.toString()+"\n"; + } + } + if (interDomainLinks != null) + topoString=topoString+printInterDomainLinks(); + return topoString; + } + + public String printInterDomainLinks(){ + String topoString=""; + + int size = interDomainLinks.size(); + log.info("Size of InterDomainLinks: "+size); + topoString="Interdomain Link list: \r\n"; + for (int i=0;i sourceVertexList,LinkedList targetVertexList,LinkedList wlans, boolean bidirectional) + { + TEDBlock.lock(); + try { + for (int i=0;i sourceVertexList, LinkedList targetVertexList, int wavelength, boolean bidirectional){ + TEDBlock.lock(); + try { + for (int i=0;i sourceVertexList, LinkedList targetVertexList, int wavelength, boolean bidirectional, int m){ + TEDBlock.lock(); + try { + for (int j=0;j<2*m;j++){ + for (int i=0;i sourceVertexList, LinkedList targetVertexList, int wavelength, boolean bidirectional, int m){ + // TODO Auto-generated method stub + //Delete the resource reservation + TEDBlock.lock(); + try { + for (int j=0;j<2*m;j++){ + for (int i=0;i graph= ted.getNetworkGraph(); + IntraDomainEdge edge=networkGraph.getEdge(sourceVertexList.get(i),targetVertexList.get(i) ); + edge.getTE_info().setWavelengthUnReserved(wavelength-m+j); + //log.info("Derreserving in TEDB: "+edge.toString()); + if (bidirectional == true) + { + edge=networkGraph.getEdge(targetVertexList.get(i), sourceVertexList.get(i)); + edge.getTE_info().setWavelengthUnReserved(wavelength-m+j); + //log.info("Derreserving in TEDB: "+edge.toString()); + } + } + } + }finally{ + TEDBlock.unlock(); + } + for (int i=0;i sourceVertexList, LinkedList targetVertexList, int wavelength, boolean bidirectional){ + // TODO Auto-generated method stub + //Delete the resource reservation + TEDBlock.lock(); + try { + for (int i=0;i graph= ted.getNetworkGraph(); + IntraDomainEdge edge=networkGraph.getEdge(sourceVertexList.get(i),targetVertexList.get(i) ); + edge.getTE_info().setWavelengthUnReserved(wavelength); + //log.info(""+edge.toString()); + if (bidirectional == true) + { + edge=networkGraph.getEdge(targetVertexList.get(i), sourceVertexList.get(i)); + edge.getTE_info().setWavelengthUnReserved(wavelength); + //log.info(""+edge.toString()); + } + } + }finally{ + TEDBlock.unlock(); + } + for (int i=0;i getNodeTable() { + return NodeTable; + } + + public void setNodeTable(Hashtable nodeTable) { + NodeTable = nodeTable; + } + + public boolean isMultidomain() { + return multidomain; + } + + public void setMultidomain(boolean multidomain) { + this.multidomain = multidomain; + } + + public void registerSSON (SSONListener algo){ + registeredAlgorithmssson.add(algo); + } + + public void register (TEDListener algo){ + registeredAlgorithms.add(algo); + } + + @Override + public void notifyWavelengthChange(Object localInterfaceIPAddress, Object remoteInterfaceIPAddress, BitmapLabelSet previousBitmapLabelSet, BitmapLabelSet newBitmapLabelSet) { + for (int i=0;i edgeSet= networkGraph.edgeSet(); + Iterator edgeIterator=edgeSet.iterator(); + while (edgeIterator.hasNext()){ + IntraDomainEdge edge= edgeIterator.next(); + edge.TE_info.setAllWavelengtshUnReserved(); + } + }finally{ + TEDBlock.unlock(); + } + for (int i=0;i vetexSet= networkGraph.vertexSet(); + Iterator vertexIterator=vetexSet.iterator(); + topoString="NodesFEO: \r\n"; + while (vertexIterator.hasNext()){ + Object vertex= vertexIterator.next(); + topoString=topoString+"\t"+vertex.toString()+"\r\n"; + } + topoString=topoString+"Intradomain Link list: \r\n"; + Set edgeSet= networkGraph.edgeSet(); + Iterator edgeIterator=edgeSet.iterator(); + while (edgeIterator.hasNext()){ + IntraDomainEdge edge= edgeIterator.next(); + topoString=topoString+"\t"+edge.toString()+"\r\n"; + } + return topoString; + } + + @Override + public Inet4Address getDomainID() { + // TODO Auto-generated method stub + return domainID; + } + + public void setDomainID(Inet4Address domainID) { + this.domainID = domainID; + } + + @Override + public Set getIntraDomainLinks() { + return this.getNetworkGraph().edgeSet(); + } + + public Set getIntraDomainLinksvertexSet() { + return this.getNetworkGraph().vertexSet(); + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((domainID == null) ? 0 : domainID.hashCode()); + result = prime * result + ((intraDomainEdges == null) ? 0 : intraDomainEdges.hashCode()); + result = prime * result + ((networkGraph == null) ? 0 : networkGraph.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + SimpleTEDB other = (SimpleTEDB) obj; + if (intraDomainEdges == null) { + if (other.intraDomainEdges != null) + return false; + } else if (!intraDomainEdges.equals(other.intraDomainEdges)) + return false; + if (networkGraph == null) { + if (other.networkGraph != null) + return false; + } + for(Object v : networkGraph.vertexSet()){ + if(!other.networkGraph.containsVertex(v)) + return false; + } + + for(IntraDomainEdge e :networkGraph.edgeSet()){ + boolean flagEqual=false; + for(IntraDomainEdge otherE : other.networkGraph.edgeSet()){ + if(e.toString().equals(otherE.toString()))flagEqual=true; + } + if(flagEqual==false)return false; //edge not present in other + } + for(IntraDomainEdge e :other.networkGraph.edgeSet()){ + boolean flagEqual=false; + for(IntraDomainEdge otherE : networkGraph.edgeSet()){ + if(e.toString().equals(otherE.toString()))flagEqual=true; + } + if(flagEqual==false)return false; //edge not present in other + } + return true; + } + + public IT_Resources getItResources() { + return itResources; + } + + public void setItResources(IT_Resources itResources) { + this.itResources = itResources; + } + + +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/TEDB.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/TEDB.java new file mode 100644 index 0000000000000000000000000000000000000000..51fc3d8c1beab3bf13175459b5e27fc38780b4ac --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/TEDB.java @@ -0,0 +1,37 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.tedb; + +import java.util.LinkedList; + +/** + * Base Interface for a Generic Traffic Engineering Database + * @author ogondio + * + */ +public interface TEDB { + + public void initializeFromFile(String file); + + public void initializeFromFile(String file, String learnFrom); + + + public boolean isITtedb(); //FIXME: Remove! + + public String printTopology(); + + public LinkedList getInterDomainLinks(); + +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/TEDBUpdater.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/TEDBUpdater.java new file mode 100644 index 0000000000000000000000000000000000000000..fe261b80e8dc977e3bfa4cab01d9b64a08b99c3a --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/TEDBUpdater.java @@ -0,0 +1,19 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.tedb; + +public class TEDBUpdater { + +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/TEDListener.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/TEDListener.java new file mode 100644 index 0000000000000000000000000000000000000000..86e653ed07da9a46c2c63ab269cbeb86f61ef409 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/TEDListener.java @@ -0,0 +1,41 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.tedb; + +import java.util.LinkedList; + +import es.tid.ospf.ospfv2.lsa.tlv.subtlv.complexFields.BitmapLabelSet; + +public interface TEDListener { + + public void notifyNewVertex(Object vertex); + + public void notifyNewEdge(Object source, Object destination); + + public void notifyWavelengthStatusChange(Object source, Object destination, BitmapLabelSet previousBitmapLabelSet, BitmapLabelSet newBitmapLabelSet); + + public void notifyWavelengthReservation(LinkedList sourceVertexList, LinkedList targetVertexList, int wavelength); + + public void notifyWavelengthEndReservation(LinkedList sourceVertexList, LinkedList targetVertexList, int wavelength); + + public void notifyTEDBFullUpdate(); + + public void notifyNewEdgeIP(Object source, Object destination, TE_Information informationTEDB); + + public void notificationEdgeIP_AuxGraph(Object src, Object dst, TE_Information informationTEDB); + + public void notificationEdgeOPTICAL_AuxGraph(Object src, Object dst, int lambda); + +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/TE_Information.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/TE_Information.java new file mode 100644 index 0000000000000000000000000000000000000000..0e5476dfe56e4162c96fdf74f26a98478294635f --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/TE_Information.java @@ -0,0 +1,679 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.tedb; + +import es.tid.bgp.bgp4.update.tlv.linkstate_attribute_tlvs.DefaultTEMetricLinkAttribTLV; +import es.tid.bgp.bgp4.update.tlv.linkstate_attribute_tlvs.IPv4RouterIDLocalNodeLinkAttribTLV; +import es.tid.bgp.bgp4.update.tlv.linkstate_attribute_tlvs.IPv4RouterIDRemoteNodeLinkAttribTLV; +import es.tid.bgp.bgp4.update.tlv.linkstate_attribute_tlvs.LinkProtectionTypeLinkAttribTLV; +import es.tid.bgp.bgp4.update.tlv.linkstate_attribute_tlvs.MF_OTPAttribTLV; +import es.tid.bgp.bgp4.update.tlv.linkstate_attribute_tlvs.MetricLinkAttribTLV; +import es.tid.bgp.bgp4.update.tlv.linkstate_attribute_tlvs.TransceiverClassAndAppAttribTLV; +import es.tid.bgp.bgp4.update.tlv.node_link_prefix_descriptor_subTLVs.MinMaxUndirectionalLinkDelayDescriptorSubTLV; +import es.tid.bgp.bgp4.update.tlv.node_link_prefix_descriptor_subTLVs.UndirectionalAvailableBandwidthDescriptorSubTLV; +import es.tid.bgp.bgp4.update.tlv.node_link_prefix_descriptor_subTLVs.UndirectionalDelayVariationDescriptorSubTLV; +import es.tid.bgp.bgp4.update.tlv.node_link_prefix_descriptor_subTLVs.UndirectionalLinkDelayDescriptorSubTLV; +import es.tid.bgp.bgp4.update.tlv.node_link_prefix_descriptor_subTLVs.UndirectionalLinkLossDescriptorSubTLV; +import es.tid.bgp.bgp4.update.tlv.node_link_prefix_descriptor_subTLVs.UndirectionalResidualBandwidthDescriptorSubTLV; +import es.tid.bgp.bgp4.update.tlv.node_link_prefix_descriptor_subTLVs.UndirectionalUtilizedBandwidthDescriptorSubTLV; +import es.tid.ospf.ospfv2.lsa.tlv.subtlv.AdministrativeGroup; +import es.tid.ospf.ospfv2.lsa.tlv.subtlv.AvailableLabels; +import es.tid.ospf.ospfv2.lsa.tlv.subtlv.IPv4RemoteASBRID; +import es.tid.ospf.ospfv2.lsa.tlv.subtlv.InterfaceSwitchingCapabilityDescriptor; +import es.tid.ospf.ospfv2.lsa.tlv.subtlv.LinkLocalRemoteIdentifiers; +import es.tid.ospf.ospfv2.lsa.tlv.subtlv.LinkProtectionType; +import es.tid.ospf.ospfv2.lsa.tlv.subtlv.MaximumBandwidth; +import es.tid.ospf.ospfv2.lsa.tlv.subtlv.MaximumReservableBandwidth; +import es.tid.ospf.ospfv2.lsa.tlv.subtlv.RemoteASNumber; +import es.tid.ospf.ospfv2.lsa.tlv.subtlv.SharedRiskLinkGroup; +import es.tid.ospf.ospfv2.lsa.tlv.subtlv.TrafficEngineeringMetric; +import es.tid.ospf.ospfv2.lsa.tlv.subtlv.UnreservedBandwidth; +import es.tid.ospf.ospfv2.lsa.tlv.subtlv.complexFields.BitmapLabelSet; +import es.tid.rsvp.constructs.gmpls.DWDMWavelengthLabel; + +public class TE_Information { + + private TrafficEngineeringMetric trafficEngineeringMetric; + + private DefaultTEMetricLinkAttribTLV defaultTEMetric; + + private MaximumBandwidth maximumBandwidth; + + private MaximumReservableBandwidth maximumReservableBandwidth; + + private UnreservedBandwidth unreservedBandwidth; + + private AdministrativeGroup administrativeGroup; + + private LinkLocalRemoteIdentifiers linkLocalRemoteIdentifiers; + + private LinkProtectionType linkProtectionType; + + private LinkProtectionTypeLinkAttribTLV linkProtectionBGPLS; + + private InterfaceSwitchingCapabilityDescriptor interfaceSwitchingCapabilityDescriptor; + + private SharedRiskLinkGroup sharedRiskLinkGroup; + + private RemoteASNumber remoteASNumber; + + private IPv4RemoteASBRID iPv4RemoteASBRID; + + private IPv4RouterIDLocalNodeLinkAttribTLV iPv4LocalNode; + + private IPv4RouterIDRemoteNodeLinkAttribTLV iPv4RemoteNode; + + + private UndirectionalLinkDelayDescriptorSubTLV undirLinkDelay; + private MinMaxUndirectionalLinkDelayDescriptorSubTLV minMaxUndirLinkDelay; + private UndirectionalDelayVariationDescriptorSubTLV undirDelayVar; + private UndirectionalLinkLossDescriptorSubTLV undirLinkLoss; + private UndirectionalResidualBandwidthDescriptorSubTLV undirResidualBw; + private UndirectionalAvailableBandwidthDescriptorSubTLV undirAvailableBw; + private UndirectionalUtilizedBandwidthDescriptorSubTLV undirUtilizedBw; + + + private MetricLinkAttribTLV metric; + + private AvailableLabels availableLabels; + + private MF_OTPAttribTLV mfOTF; + + private TransceiverClassAndAppAttribTLV trans; + + private int NumberWLANs = 15; + + private boolean withWLANs = false; + + private boolean[] occupiedWLANs; + private boolean[] reservedWLANs; + + private boolean vlanLink = false; + + private int vlan; + + /** + * TEDB logger + */ + public TE_Information() + { + //initWLANs(); + } + + public AvailableLabels getAvailableLabels() { + return availableLabels; + } + + public void setAvailableLabels(AvailableLabels availableLabels) { + this.availableLabels = availableLabels; + } + + public TrafficEngineeringMetric getTrafficEngineeringMetric() { + return trafficEngineeringMetric; + } + + public void setTrafficEngineeringMetric( + TrafficEngineeringMetric trafficEngineeringMetric) { + this.trafficEngineeringMetric = trafficEngineeringMetric; + } + + public MaximumBandwidth getMaximumBandwidth() { + return maximumBandwidth; + } + + public void setMaximumBandwidth(MaximumBandwidth maximumBandwidth) { + this.maximumBandwidth = maximumBandwidth; + } + + public MaximumReservableBandwidth getMaximumReservableBandwidth() { + return maximumReservableBandwidth; + } + + public IPv4RouterIDRemoteNodeLinkAttribTLV getiPv4RemoteNode() { + return iPv4RemoteNode; + } + + public void setiPv4RemoteNode(IPv4RouterIDRemoteNodeLinkAttribTLV iPv4RemoteNode) { + this.iPv4RemoteNode = iPv4RemoteNode; + } + + public void setMaximumReservableBandwidth( + MaximumReservableBandwidth maximumReservableBandwidth) { + this.maximumReservableBandwidth = maximumReservableBandwidth; + } + + public UnreservedBandwidth getUnreservedBandwidth() { + return unreservedBandwidth; + } + + public void setUnreservedBandwidth(UnreservedBandwidth unreservedBandwidth) { + this.unreservedBandwidth = unreservedBandwidth; + } + + public UndirectionalLinkDelayDescriptorSubTLV getUndirLinkDelay() { + return undirLinkDelay; + } + + public void setUndirLinkDelay(UndirectionalLinkDelayDescriptorSubTLV undirLinkDelay) { + this.undirLinkDelay = undirLinkDelay; + } + + public MinMaxUndirectionalLinkDelayDescriptorSubTLV getMinMaxUndirLinkDelay() { + return minMaxUndirLinkDelay; + } + + public void setMinMaxUndirLinkDelay(MinMaxUndirectionalLinkDelayDescriptorSubTLV minMaxUndirLinkDelay) { + this.minMaxUndirLinkDelay = minMaxUndirLinkDelay; + } + + public UndirectionalDelayVariationDescriptorSubTLV getUndirDelayVar() { + return undirDelayVar; + } + + public void setUndirDelayVar(UndirectionalDelayVariationDescriptorSubTLV undirDelayVar) { + this.undirDelayVar = undirDelayVar; + } + + public UndirectionalLinkLossDescriptorSubTLV getUndirLinkLoss() { + return undirLinkLoss; + } + + public void setUndirLinkLoss(UndirectionalLinkLossDescriptorSubTLV undirLinkLoss) { + this.undirLinkLoss = undirLinkLoss; + } + + public UndirectionalResidualBandwidthDescriptorSubTLV getUndirResidualBw() { + return undirResidualBw; + } + + public void setUndirResidualBw(UndirectionalResidualBandwidthDescriptorSubTLV undirResidualBw) { + this.undirResidualBw = undirResidualBw; + } + + public UndirectionalAvailableBandwidthDescriptorSubTLV getUndirAvailableBw() { + return undirAvailableBw; + } + + public void setUndirAvailableBw(UndirectionalAvailableBandwidthDescriptorSubTLV undirAvailableBw) { + this.undirAvailableBw = undirAvailableBw; + } + + public UndirectionalUtilizedBandwidthDescriptorSubTLV getUndirUtilizedBw() { + return undirUtilizedBw; + } + + public void setUndirUtilizedBw(UndirectionalUtilizedBandwidthDescriptorSubTLV undirUtilizedBw) { + this.undirUtilizedBw = undirUtilizedBw; + } + + public AdministrativeGroup getAdministrativeGroup() { + return administrativeGroup; + } + + public void setAdministrativeGroup(AdministrativeGroup administrativeGroup) { + this.administrativeGroup = administrativeGroup; + } + + public LinkLocalRemoteIdentifiers getLinkLocalRemoteIdentifiers() { + return linkLocalRemoteIdentifiers; + } + + public void setLinkLocalRemoteIdentifiers( + LinkLocalRemoteIdentifiers linkLocalRemoteIdentifiers) { + this.linkLocalRemoteIdentifiers = linkLocalRemoteIdentifiers; + } + + public LinkProtectionType getLinkProtectionType() { + return linkProtectionType; + } + + public void setLinkProtectionType(LinkProtectionType linkProtectionType) { + this.linkProtectionType = linkProtectionType; + } + + public InterfaceSwitchingCapabilityDescriptor getInterfaceSwitchingCapabilityDescriptor() { + return interfaceSwitchingCapabilityDescriptor; + } + + public void setInterfaceSwitchingCapabilityDescriptor( + InterfaceSwitchingCapabilityDescriptor interfaceSwitchingCapabilityDescriptor) { + this.interfaceSwitchingCapabilityDescriptor = interfaceSwitchingCapabilityDescriptor; + } + + public SharedRiskLinkGroup getSharedRiskLinkGroup() { + return sharedRiskLinkGroup; + } + + public void setSharedRiskLinkGroup(SharedRiskLinkGroup sharedRiskLinkGroup) { + this.sharedRiskLinkGroup = sharedRiskLinkGroup; + } + + public RemoteASNumber getRemoteASNumber() { + return remoteASNumber; + } + + public void setRemoteASNumber(RemoteASNumber remoteASNumber) { + this.remoteASNumber = remoteASNumber; + } + + public IPv4RemoteASBRID getiPv4RemoteASBRID() { + return iPv4RemoteASBRID; + } + + public void setiPv4RemoteASBRID(IPv4RemoteASBRID iPv4RemoteASBRID) { + this.iPv4RemoteASBRID = iPv4RemoteASBRID; + } + + public int getNumberWLANs() { + return NumberWLANs; + } + + public void setNumberWLANs(int numberWLANs) { + NumberWLANs = numberWLANs; + } + + public boolean isWLANFree() + { + /* + for (int i = 0; i < reservedWLANs.length; i++) + { + if (reservedWLANs[i] == false) + { + return true; + } + } + return false; + */ + return true; + } + + public Integer getFreeWLAN() + { + for (int i = 0; i < reservedWLANs.length; i++) + { + if (reservedWLANs[i] == false) + { + return i; + } + } + return null; + } + + public void initWLANs() + { + withWLANs = true; + occupiedWLANs = new boolean[NumberWLANs]; + reservedWLANs = new boolean[NumberWLANs]; + for (int i = 0 ; i < NumberWLANs ; i++) + { + occupiedWLANs[i] = false; + reservedWLANs[i] = false; + } + } + + public void createBitmapLabelSet(int numLabels,int grid, int cs,int n){ + + createBitmapLabelSet(numLabels,grid,cs,n,0,numLabels); + } + public void createBitmapLabelSet(int numLabels,int grid, int cs,int n,int lambdaIni, int lambdaEnd){ + //FIXME: no hay problema de que se salga el ancho de banda + //log.info("Creamos bit map"); + BitmapLabelSet bitmapLabelSet = new BitmapLabelSet(); + DWDMWavelengthLabel dwdmWavelengthLabel = new DWDMWavelengthLabel(); + dwdmWavelengthLabel.setGrid(grid); + dwdmWavelengthLabel.setChannelSpacing(cs); + dwdmWavelengthLabel.setN(n); + bitmapLabelSet.setDwdmWavelengthLabel(dwdmWavelengthLabel); + + int numberBytes = getNumberBytes(numLabels); + + byte[] bytesBitMap = new byte[numberBytes]; + for (int i=0;i>>(num_wavelength%8))); + } + } + public void setWavelengthFree(int num_wavelength) + { + if (withWLANs) + { + occupiedWLANs[num_wavelength] = false; + reservedWLANs[num_wavelength] = false; + } + else + { + int num_byte=num_wavelength/8; + ((BitmapLabelSet)this.getAvailableLabels().getLabelSet()).getBytesBitMap()[num_byte]=(byte)(((BitmapLabelSet)this.getAvailableLabels().getLabelSet()).getBytesBitMap()[num_byte]&(0xFFFF7F>>>(num_wavelength%8))); + } + } + + public void setWavelengthReserved(int num_wavelength){ + if (withWLANs) + { + reservedWLANs[num_wavelength] = true; + } + else + { + int num_byte=num_wavelength/8; +// if ( this.getAvailableLabels()==null){ +// PCEServer.log.info("AvailableLabels ES NULL"); +// +// } +// if ( this.getAvailableLabels().getLabelSet()==null){ +// PCEServer.log.info("AvailableLabels LABEL SET ES NULL"); +// +// } +// if (((BitmapLabelSet)this.getAvailableLabels().getLabelSet()).getBytesBitmapReserved()==null){ +// PCEServer.log.info("BytesBitmapReserved ES NULL"); +// +// } + + ((BitmapLabelSet)this.getAvailableLabels().getLabelSet()).getBytesBitmapReserved()[num_byte]=(byte)((((BitmapLabelSet)this.getAvailableLabels().getLabelSet()).getBytesBitmapReserved()[num_byte])|(0x80>>>(num_wavelength%8))); + } + } + + public void setWavelengthUnReserved(int num_wavelength){ + if (withWLANs) + { + reservedWLANs[num_wavelength] = false; + } + else + { + int num_byte=num_wavelength/8; + ((BitmapLabelSet)this.getAvailableLabels().getLabelSet()).getBytesBitmapReserved()[num_byte]=(byte)(((BitmapLabelSet)this.getAvailableLabels().getLabelSet()).getBytesBitmapReserved()[num_byte]&(0xFFFF7F>>>(num_wavelength%8))); + } + } + public void setAllWavelengtshUnReserved(){ + if (withWLANs) + { + for (int i = 0; i < reservedWLANs.length; i++) + { + reservedWLANs[i] = false; + } + } + else + { + int num_bytes=((BitmapLabelSet)this.getAvailableLabels().getLabelSet()).getBytesBitmapReserved().length; + for (int i=0;i>>(num_wavelength%8)))==0); + } + + } + public boolean isWavelengthUnreserved(int num_wavelength){//si es true esta unreserved + if (withWLANs) + { + return (!reservedWLANs[num_wavelength]); + } + else + { + int num_byte=num_wavelength/8; + if (((BitmapLabelSet)this.getAvailableLabels().getLabelSet()).getBytesBitmapReserved()==null){ + return false; + } + else{ + return ((((BitmapLabelSet)this.getAvailableLabels().getLabelSet()).getBytesBitmapReserved()[num_byte]&(0x80>>>(num_wavelength%8)))==0); + } + } + } + + + public String toString(){ + String ret=""; +// if (linkType!=null){ +// ret=ret+linkType.toString()+"\t"; +// } +// if (linkID!=null){ +// ret=ret+linkID.toString()+"\t"; +// } +// if (localInterfaceIPAddress!=null){ +// ret=ret+localInterfaceIPAddress.toString()+"\r\n"; +// } +// if (remoteInterfaceIPAddress!=null){ +// ret=ret+remoteInterfaceIPAddress.toString()+"\r\n"; +// } + + if (maximumBandwidth!=null){ + ret=ret+maximumBandwidth.toStringShort()+"\t"; + } + if (maximumReservableBandwidth!=null){ + ret=ret+maximumReservableBandwidth.toString()+"\t"; + } + + if (unreservedBandwidth!=null){ + ret=ret+unreservedBandwidth.toStringShort()+"\t"; + } + + if (administrativeGroup!=null){ + ret=ret+administrativeGroup.toString()+"\t"; + } + + if (remoteASNumber!=null){ + ret=ret+remoteASNumber.toString()+"\t"; + } + + if (iPv4RemoteASBRID!=null){ + ret=ret+iPv4RemoteASBRID.toString()+"\t"; + } + + if (availableLabels!= null){ + ret=ret+availableLabels.toString()+"\r\n"; + } + + if (iPv4LocalNode!=null){ + ret=ret+iPv4LocalNode.toString()+"\r\n"; + } + + if (iPv4RemoteNode!=null){ + ret=ret+iPv4RemoteNode.toString()+"\r\n"; + } + + if(linkProtectionBGPLS!=null){ + ret=ret+linkProtectionBGPLS.toString()+"\r\n"; + } + + if(trafficEngineeringMetric!=null){ + ret=ret+trafficEngineeringMetric.toString()+"\r\n"; + } + + if(metric!=null){ + ret=ret+metric.toString()+"\r\n"; + } + + if(defaultTEMetric!=null){ + ret=ret+defaultTEMetric.toString()+"\r\n"; + } + + if(this.mfOTF !=null){ + ret=ret+mfOTF.toString()+"\r\n"; + } + + + if(this.trans !=null){ + ret=ret+trans.toString()+"\r\n"; + } + if(undirLinkDelay!=null){ + ret=ret+undirLinkDelay.toString()+"\r\n"; + } + if(minMaxUndirLinkDelay!=null){ + ret=ret+minMaxUndirLinkDelay.toString()+"\r\n"; + } + if(undirDelayVar!=null){ + ret=ret+undirDelayVar.toString()+"\r\n"; + } + + if(undirLinkLoss!=null){ + ret=ret+undirLinkLoss.toString()+"\r\n"; + } + if(undirResidualBw!=null){ + ret=ret+undirResidualBw.toString()+"\r\n"; + } + if(undirAvailableBw!=null){ + ret=ret+undirAvailableBw.toString()+"\r\n"; + } + + if(undirUtilizedBw!=null){ + ret=ret+undirUtilizedBw.toString()+"\r\n"; + } + + return ret; + } + + public boolean isVlanLink() { + return vlanLink; + } + + public void setVlanLink(boolean vlanLink) { + this.vlanLink = vlanLink; + } + + public int getVlan() { + return vlan; + } + + public void setVlan(int vlan) { + this.vlan = vlan; + } + + public void setiPv4LocalNode(IPv4RouterIDLocalNodeLinkAttribTLV iPv4RouterIDLocalNode) { + this.iPv4LocalNode = iPv4RouterIDLocalNode; + } + public IPv4RouterIDLocalNodeLinkAttribTLV getiPv4LocalNode() { + return iPv4LocalNode; + } + + public MetricLinkAttribTLV getMetric() { + return metric; + } + + public void setMetric(MetricLinkAttribTLV metric) { + this.metric = metric; + } + + public LinkProtectionTypeLinkAttribTLV getLinkProtectionBGPLS() { + return linkProtectionBGPLS; + } + + public void setLinkProtectionBGPLS(LinkProtectionTypeLinkAttribTLV linkProtectionBGPLS) { + this.linkProtectionBGPLS = linkProtectionBGPLS; + } + + public DefaultTEMetricLinkAttribTLV getDefaultTEMetric() { + return defaultTEMetric; + } + + public void setDefaultTEMetric(DefaultTEMetricLinkAttribTLV defaultTEMetric) { + this.defaultTEMetric = defaultTEMetric; + } + + public MF_OTPAttribTLV getMfOTF() { + return mfOTF; + } + + public void setMfOTF(MF_OTPAttribTLV mfOTF) { + this.mfOTF = mfOTF; + } + + public TransceiverClassAndAppAttribTLV getTrans() { + return trans; + } + + public void setTrans(TransceiverClassAndAppAttribTLV trans) { + this.trans = trans; + } + + + + +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/WSONInformation.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/WSONInformation.java new file mode 100644 index 0000000000000000000000000000000000000000..c67f3a8262daa218ed0fb2619513cbbb0f2fe07b --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/WSONInformation.java @@ -0,0 +1,74 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.tedb; + +import es.tid.ospf.ospfv2.lsa.tlv.subtlv.AvailableLabels; + +public class WSONInformation { + /** + * In case the Network is WSON, this is the list of available Labels + */ + private AvailableLabels commonAvailableLabels; + + /** + * In case the Network is WSON, this is the number of wavelengths. -1 means it is not WSON. + */ + private int numLambdas=-1; + int grid=0; + int cs=0; + int nMin=0; + + public int getGrid() { + return grid; + } + + public void setGrid(int grid) { + this.grid = grid; + } + + public int getCs() { + return cs; + } + + public void setCs(int cs) { + this.cs = cs; + } + + + public int getnMin() { + return nMin; + } + + public void setnMin(int nMin) { + this.nMin = nMin; + } + + public AvailableLabels getCommonAvailableLabels() { + return commonAvailableLabels; + } + + public void setCommonAvailableLabels(AvailableLabels commonAvailableLabels) { + this.commonAvailableLabels = commonAvailableLabels; + } + + public int getNumLambdas() { + return numLambdas; + } + + public void setNumLambdas(int numLambdas) { + this.numLambdas = numLambdas; + } + +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/WSONListener.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/WSONListener.java new file mode 100644 index 0000000000000000000000000000000000000000..31b35b441e2852547486070da4e1c45ec57682ae --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/WSONListener.java @@ -0,0 +1,19 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.tedb; + +public interface WSONListener { + +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/controllers/TEDUpdaterController.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/controllers/TEDUpdaterController.java new file mode 100644 index 0000000000000000000000000000000000000000..463e300c41b132a59ffad3d8d3fc18f224886582 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/controllers/TEDUpdaterController.java @@ -0,0 +1,272 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.tedb.controllers; + +import java.io.File; +import java.util.ArrayList; +import java.util.Hashtable; +import java.util.Iterator; +import java.util.Map; +import java.util.concurrent.locks.Lock; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; + +import org.jgrapht.graph.SimpleDirectedWeightedGraph; +import org.w3c.dom.CharacterData; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; + +import eu.teraflow.tid.tedb.DomainTEDB; +import eu.teraflow.tid.tedb.IntraDomainEdge; +import eu.teraflow.tid.tedb.SimpleTEDB; +import eu.teraflow.tid.tedb.TE_Information; +import eu.teraflow.tid.tedb.elements.RouterInfoPM; + +/** + * + * @author jaume i la humiltat + * + * + * Class that receives a DomainTED and updates. Then it dies. + */ + +public class TEDUpdaterController extends Thread +{ + protected Hashtable interDomainLinks = new Hashtable(); + protected ArrayList ips = null; + protected ArrayList ports = null; + protected String topologyPathNodes = ""; + protected String topologyPathLinks = ""; + protected SimpleTEDB TEDB; + protected Logger log; + protected Lock lock = null; + protected String interDomainFile = null; + + public TEDUpdaterController(){}; + + public TEDUpdaterController(String ip, String port, String topologyPathLinks, String topologyPathNodes,DomainTEDB ted, Logger log) + { + ips = new ArrayList(); + ports = new ArrayList(); + + ips.add(ip); + ports.add(port); + + this.topologyPathLinks = topologyPathLinks; + this.topologyPathNodes = topologyPathNodes; + this.TEDB = (SimpleTEDB)ted; + this.log = log; + } + + + public TEDUpdaterController(String ip, String port, String topologyPathLinks, String topologyPathNodes,DomainTEDB ted, Logger log, Lock lock) + { + ips = new ArrayList(); + ports = new ArrayList(); + + ips.add(ip); + ports.add(port); + + this.topologyPathLinks = topologyPathLinks; + this.topologyPathNodes = topologyPathNodes; + this.TEDB = (SimpleTEDB)ted; + this.log = log; + this.lock = lock; + } + + public TEDUpdaterController(ArrayList ips, ArrayListports , String topologyPathLinks, String topologyPathNodes,DomainTEDB ted, Logger log) + { + this.ips = ips; + this.ports = ports; + this.topologyPathLinks = topologyPathLinks; + this.topologyPathNodes = topologyPathNodes; + this.TEDB = (SimpleTEDB)ted; + this.log = log; + } + + public static void parseRemainingLinksFromXML(DomainTEDB TEDB, String interDomainFile) + { + Hashtable interDomainLinks = readInterDomainFile(interDomainFile); + Map map = interDomainLinks; + Iterator> it = map.entrySet().iterator(); + while (it.hasNext()) + { + Map.Entry entry = it.next(); + + MyEdge edgeAux = entry.getValue(); + + IntraDomainEdge edge= new IntraDomainEdge(); + edge.setSrc_if_id(new Long(edgeAux.source_port)); + edge.setDst_if_id(new Long(edgeAux.dest_port)); + + TE_Information tE_info = new TE_Information(); + tE_info.setNumberWLANs(15); + tE_info.initWLANs(); + + tE_info.setVlanLink(true); + tE_info.setVlan(edgeAux.vlan); + + edge.setTE_info(tE_info); + + + System.out.println("Adding InterDomain Edge!!::Vlan::"+edgeAux.vlan); + + + SimpleDirectedWeightedGraph sdwg = ((SimpleTEDB)TEDB).getNetworkGraph(); + if (!sdwg.containsVertex(new RouterInfoPM(edgeAux.source))) + { + sdwg.addVertex(new RouterInfoPM(edgeAux.source)); + } + + if (!sdwg.containsVertex(new RouterInfoPM(edgeAux.dest))) + { + sdwg.addVertex(new RouterInfoPM(edgeAux.dest)); + } + + + ((SimpleTEDB)TEDB).getNetworkGraph().addEdge(new RouterInfoPM(edgeAux.source), new RouterInfoPM(edgeAux.dest), edge); + } + } + + + public static Hashtable readInterDomainFile(String interDomainFile) + { + System.out.println("Parsing intradomain File"); + Hashtable interDomainLinks = new Hashtable(); + try + { + DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); + File confFile = new File(interDomainFile); + Document doc = builder.parse(confFile); + + NodeList list_nodes_Edges = doc.getElementsByTagName("edge"); + System.out.println("num edges: " + list_nodes_Edges.getLength()); + for (int i = 0; i < list_nodes_Edges.getLength(); i++) + { + Element nodes_servers = (Element) list_nodes_Edges.item(i); + String source = getCharacterDataFromElement((Element) nodes_servers.getElementsByTagName("source").item(0)); + String dest = getCharacterDataFromElement((Element) nodes_servers.getElementsByTagName("dest").item(0)); + Integer vlan = Integer.parseInt(getCharacterDataFromElement((Element) nodes_servers.getElementsByTagName("vlan").item(0))); + String direction = getCharacterDataFromElement((Element) nodes_servers.getElementsByTagName("direction").item(0)); + int source_port = Integer.parseInt(getCharacterDataFromElement((Element) nodes_servers.getElementsByTagName("source_port").item(0))); + int dest_port = Integer.parseInt(getCharacterDataFromElement((Element) nodes_servers.getElementsByTagName("dest_port").item(0))); + + System.out.println("Adding IntraDomain Link! source: "+source+", dest: "+dest+", source_port: "+source_port+", dest_port: "+dest_port); + + MyEdge auxEdge = new TEDUpdaterController().new MyEdge(source, dest, vlan, source_port, dest_port); + interDomainLinks.put(auxEdge.hashCode(), auxEdge); + + if (direction.equals("bidirectional")) + { + MyEdge reverseEdge = new TEDUpdaterController().new MyEdge(dest, source, vlan, source_port, dest_port); + interDomainLinks.put(reverseEdge.hashCode(), reverseEdge); + } + } + } + catch (Exception e) + { + System.out.println(e.toString()); + } + + return interDomainLinks; + } + + private static String getCharacterDataFromElement(Element e) + { + Node child = e.getFirstChild(); + if (child instanceof CharacterData) + { + CharacterData cd = (CharacterData) child; + return cd.getData(); + } + else + { + return "?"; + } + } + + public class MyEdge + { + String source; + String dest; + Integer source_port; + Integer dest_port; + Integer vlan; + + MyEdge(String source, String dest) + { + this.source = source; + this.dest = dest; + } + + MyEdge(String source, String dest, Integer vlan, Integer source_port, Integer dest_port) + { + this.source = source; + this.dest = dest; + this.source_port = source_port; + this.dest_port = dest_port; + this.vlan = vlan; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((dest == null) ? 0 : dest.hashCode()); + result = prime * result + + ((source == null) ? 0 : source.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + MyEdge other = (MyEdge) obj; + if (dest == null) { + if (other.dest != null) + return false; + } else if (!dest.equals(other.dest)) + return false; + if (source == null) { + if (other.source != null) + return false; + } else if (!source.equals(other.source)) + return false; + return true; + } + + } + + public String getInterDomainFile() + { + return interDomainFile; + } + + public void setInterDomainFile(String interDomainFile) + { + this.interDomainFile = interDomainFile; + } + +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/controllers/TEDUpdaterFloodlight.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/controllers/TEDUpdaterFloodlight.java new file mode 100644 index 0000000000000000000000000000000000000000..9bea224fa98cf5655e7154b1677d56bfab85fede --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/controllers/TEDUpdaterFloodlight.java @@ -0,0 +1,367 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.tedb.controllers; + +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.net.URL; +import java.net.URLConnection; +import java.util.ArrayList; +import java.util.Hashtable; +import java.util.Iterator; +import java.util.concurrent.locks.Lock; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import org.json.simple.JSONArray; +import org.json.simple.JSONObject; +import org.json.simple.parser.JSONParser; +import org.w3c.dom.CharacterData; +import org.w3c.dom.Element; +import org.w3c.dom.Node; + +import eu.teraflow.tid.tedb.DomainTEDB; +import eu.teraflow.tid.tedb.IntraDomainEdge; +import eu.teraflow.tid.tedb.SimpleTEDB; +import eu.teraflow.tid.tedb.TE_Information; +import eu.teraflow.tid.tedb.elements.RouterInfoPM; + +/** + * Thread that reads topology from Openflow controller and from XML if there are intradomain links + * @author jaume + * + */ + +public class TEDUpdaterFloodlight extends TEDUpdaterController +{ + public static String controllerName = "Floodlight"; + + + private String topologyPathLinks = "/wm/topology/links/json"; + private String topologyPathNodes = "/wm/core/controller/switches/json"; + + public TEDUpdaterFloodlight(String ip,String port, String topologyPathLinks, String topologyPathNodes,DomainTEDB ted, Logger log) + { + super(); + ips = new ArrayList(); + ports = new ArrayList(); + + ips.add(ip); + ports.add(port); + this.TEDB = (SimpleTEDB)ted; + this.log = log; + } + + public TEDUpdaterFloodlight(String ip, String port, String topologyPathLinks, String topologyPathNodes,DomainTEDB ted, Logger log, Lock lock) + { + super( ip, port, topologyPathLinks, topologyPathNodes, ted, log, lock); + } + + public TEDUpdaterFloodlight(ArrayList ips, ArrayListports , String topologyPathLinks, String topologyPathNodes,DomainTEDB ted, Logger log) + { + super(ips, ports , topologyPathLinks, topologyPathNodes, ted, log); + } + + + + + + + @Override + public void run() + { + + if(interDomainFile != null) + { + interDomainLinks = TEDUpdaterController.readInterDomainFile(interDomainFile); + } + + String responseLinks = ""; + String responseNodes = ""; + + try + { + //log.info("TopologyUpdaterWLAN thread, Updating TEDB"); + + Hashtable nodes = new Hashtable(); + + + log.info("ips.size():"+ips.size()); + + for (int i = 0; i < ips.size(); i++) + { + responseNodes = queryForNodes(ips.get(i), ports.get(i)); + parseNodes(responseNodes, nodes, ips.get(i), ports.get(i)); + log.info("responseNodes:::"+responseNodes); + } + + for (int i = 0; i < ips.size(); i++) + { + responseLinks = queryForLinks(ips.get(i), ports.get(i)); + + log.info("responseLinks:::"+responseLinks); + + lock(); + parseLinks(responseLinks, nodes); + unlock(); + + } + + + //parseJSON("[{\"src-switch\":\"00:14:2c:59:e5:5e:2b:00\",\"src-port\":20,\"src-port-state\":0,\"dst-switch\":\"00:14:2c:59:e5:64:21:00\",\"dst-port\":19,\"dst-port-state\":0,\"type\":\"internal\"},{\"src-switch\":\"00:14:2c:59:e5:64:21:00\",\"src-port\":19,\"src-port-state\":0,\"dst-switch\":\"00:14:2c:59:e5:5e:2b:00\",\"dst-port\":20,\"dst-port-state\":0,\"type\":\"internal\"},{\"src-switch\":\"00:14:2c:59:e5:66:ed:00\",\"src-port\":9,\"src-port-state\":0,\"dst-switch\":\"00:14:2c:59:e5:64:21:00\",\"dst-port\":20,\"dst-port-state\":0,\"type\":\"internal\"},{\"src-switch\":\"00:14:2c:59:e5:64:21:00\",\"src-port\":20,\"src-port-state\":0,\"dst-switch\":\"00:14:2c:59:e5:66:ed:00\",\"dst-port\":9,\"dst-port-state\":0,\"type\":\"internal\"}]"); + //System.out.println(response); + } + catch (Exception e) + { + log.info(e.toString()); + } + } + + + + private void parseNodes(String response, Hashtable routerInfoList, String ip, String port) + { + try + { + JSONParser parser = new JSONParser(); + Object obj = parser.parse(response); + + JSONArray msg = (JSONArray) obj; + Iterator iterator = msg.iterator(); + while (iterator.hasNext()) + { + JSONObject jsonObject = (JSONObject) iterator.next(); + + RouterInfoPM rInfo = new RouterInfoPM(); + rInfo.setMacAddress((String)jsonObject.get("mac")); + rInfo.setRouterID((String)jsonObject.get("dpid")); + rInfo.setControllerType(TEDUpdaterFloodlight.controllerName); + + + JSONArray ports = (JSONArray) jsonObject.get("ports"); + Iterator portIterator = ports.iterator(); + while (portIterator.hasNext()) + { + JSONObject jsonPortObject = (JSONObject) portIterator.next(); + rInfo.setMacAddress((String)jsonPortObject.get("hardwareAddress")); + } + + log.info("(String)((JSONObject)jsonObject.get(description)).get(manufacturer)::"+(String)((JSONObject)jsonObject.get("description")).get("manufacturer")); + rInfo.setRouterType((String)((JSONObject)jsonObject.get("description")).get("manufacturer")); + rInfo.setConfigurationMode("Openflow"); + + rInfo.setControllerIdentifier(ip, port); + rInfo.setControllerIP(ip); + rInfo.setControllerPort(port); + rInfo.setHardware((String)((JSONObject)jsonObject.get("description")).get("hardware")); + + routerInfoList.put(rInfo.getRouterID(),rInfo); + + + log.info("Adding Vertex::"+rInfo); + ((SimpleTEDB)TEDB).getNetworkGraph().addVertex(rInfo); + } + } + catch (Exception e) + { + log.info(e.toString()); + } + } + + private void parseLinks(String links,Hashtable nodes) + { + try { + //log.info("Inside parseJSON"); + JSONParser parser = new JSONParser(); + Object obj = parser.parse(links); + + JSONArray msg = (JSONArray) obj; + Iterator iterator = msg.iterator(); + while (iterator.hasNext()) + { + JSONObject jsonObject = (JSONObject) iterator.next(); + //System.out.println(jsonObject.get("src-switch")); + IntraDomainEdge edge= new IntraDomainEdge(); + + RouterInfoPM source = nodes.get(jsonObject.get("src-switch")); + RouterInfoPM dest = nodes.get(jsonObject.get("dst-switch")); + + + //((SimpleTEDB)TEDB).getNetworkGraph().addVertex(source); + //((SimpleTEDB)TEDB).getNetworkGraph().addVertex(dest); + + log.info("Adding Vertex->"+source+" hashcode:"+source.hashCode()); + log.info("Adding Vertex->"+dest+" hashcode:"+dest.hashCode()); + + edge.setSrc_if_id((Long)jsonObject.get("src-port")); + edge.setDst_if_id((Long)jsonObject.get("dst-port")); + + + // This is a big problem because info is not initialized from file + // and the controller doesn't give information about how many wlans + // the are + + TE_Information tE_info = new TE_Information(); + tE_info.setNumberWLANs(15); + tE_info.initWLANs(); + + if (interDomainFile != null) + { + completeTE_Information(tE_info, source.getRouterID(), dest.getRouterID()); + } + + edge.setTE_info(tE_info); + + String isBidirectional = (String)jsonObject.get("direction"); + + + + //log.info("isBidirectional::"+isBidirectional); + + if ((1==1)||(isBidirectional != null) && (isBidirectional.equals("bidirectional"))) + { + //((SimpleTEDB)TEDB).getNetworkGraph().addEdge(source, dest, edge); + + TE_Information tE_infoOtherWay = new TE_Information(); + tE_infoOtherWay.setNumberWLANs(15); + tE_infoOtherWay.initWLANs(); + IntraDomainEdge edgeOtherWay= new IntraDomainEdge(); + + edgeOtherWay.setSrc_if_id((Long)jsonObject.get("dst-port")); + edgeOtherWay.setDst_if_id((Long)jsonObject.get("src-port")); + edgeOtherWay.setTE_info(tE_infoOtherWay); + + ((SimpleTEDB)TEDB).getNetworkGraph().addEdge(source, dest, edge); + ((SimpleTEDB)TEDB).getNetworkGraph().addEdge(dest, source, edgeOtherWay); + + completeTE_Information(tE_info, dest.getRouterID(), source.getRouterID()); + + log.info("source::"+source); + log.info("dest::"+dest); + log.info("edgeOtherWay::"+edgeOtherWay); + log.info("edge::"+edge); + //log.info("Adding two!"); + } + else + { + ((SimpleTEDB)TEDB).getNetworkGraph().addEdge(source, dest, edge); + } + + //log.info("Edge added:"+edge); + //log.info(((SimpleTEDB)TEDB).getIntraDomainLinks().toString()); + } + //parseRemainingLinksFromXML(nodes); + + } + catch (Exception e) + { + log.info(e.toString()); + } + } + + private void completeTE_Information(TE_Information tE_info, String source, String dest) + { + MyEdge auxEdge = new MyEdge(source, dest); + MyEdge completEdge = interDomainLinks.get(auxEdge.hashCode()); + if ((completEdge != null)&&(completEdge.vlan != null)) + { + tE_info.setVlanLink(true); + tE_info.setVlan(completEdge.vlan); + //If it has been found it will be removed so the rest can be proccessed later + interDomainLinks.remove(completEdge.vlan); + } + else + { + tE_info.setVlanLink(false); + } + } + + private String queryForLinks(String ip, String port) + { + String response = ""; + try + { + URL topoplogyURL = new URL("http://"+ip+":"+port+topologyPathLinks); + + //log.info("URL::"+"http://"+ip+":"+port+topologyPathLinks); + + URLConnection yc = topoplogyURL.openConnection(); + BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream())); + String inputLine; + + while ((inputLine = in.readLine()) != null) + { + response = response + inputLine; + } + } + catch (Exception e) + { + log.info(e.toString()); + } + return response; + } + + private String queryForNodes(String ip, String port) + { + String response = ""; + try + { + URL topoplogyURL = new URL("http://"+ip+":"+port+topologyPathNodes); + + log.info("http://+port+topologyPathNodes:::"+"http://"+ip+":"+port+topologyPathNodes); + + URLConnection yc = topoplogyURL.openConnection(); + BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream())); + + String inputLine; + while ((inputLine = in.readLine()) != null) + { + response = response + inputLine; + } + in.close(); + } + catch (Exception e) + { + log.info(e.toString()); + } + return response; + } + + private void lock() + { + if (lock != null) + { + lock.lock(); + } + } + + private void unlock() + { + if (lock != null) + { + lock.unlock(); + } + } + + private String getCharacterDataFromElement(Element e) { + Node child = e.getFirstChild(); + if (child instanceof CharacterData) { + CharacterData cd = (CharacterData) child; + return cd.getData(); + } else { + return "?"; + } + } +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/controllers/TEDUpdaterNOX.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/controllers/TEDUpdaterNOX.java new file mode 100644 index 0000000000000000000000000000000000000000..fb2c3c51d0c05299f501b1112779a6a54737caa9 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/controllers/TEDUpdaterNOX.java @@ -0,0 +1,419 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.tedb.controllers; + +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.net.URL; +import java.net.URLConnection; +import java.util.ArrayList; +import java.util.Hashtable; +import java.util.Iterator; +import java.util.concurrent.locks.Lock; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import eu.teraflow.tid.tedb.DomainTEDB; +import eu.teraflow.tid.tedb.IntraDomainEdge; +import eu.teraflow.tid.tedb.SimpleTEDB; +import eu.teraflow.tid.tedb.TE_Information; +import eu.teraflow.tid.tedb.elements.RouterInfoPM; + +import org.json.simple.JSONArray; +import org.json.simple.JSONObject; +import org.json.simple.parser.JSONParser; + +public class TEDUpdaterNOX extends TEDUpdaterController +{ + public static String controllerName = "NOX"; + private Hashtable interDomainLinks = new Hashtable(); + + + //Overwritten father variables and fixing the topology urls in code + private String topologyPathNodes = "/get_vtopology/"; + private String topologyPathLinks = "/get_graph/";//?? + + public TEDUpdaterNOX(String ip, String port, String topologyPathLinks, String topologyPathNodes,DomainTEDB ted, Logger log) + { + super( ip, port, topologyPathLinks, topologyPathNodes, ted, log); + } + + public TEDUpdaterNOX(String ip, String port, String topologyPathLinks, String topologyPathNodes,DomainTEDB ted, Logger log, Lock lock) + { + super( ip, port, topologyPathLinks, topologyPathNodes, ted, log, lock); + } + + public TEDUpdaterNOX(ArrayList ips, ArrayListports , String topologyPathLinks, String topologyPathNodes,DomainTEDB ted, Logger log) + { + super(ips, ports , topologyPathLinks, topologyPathNodes, ted, log); + } + + + @Override + public void run() + { + + if(interDomainFile != null) + { + interDomainLinks = TEDUpdaterController.readInterDomainFile(interDomainFile); + } + + String responseLinks = ""; + String responseNodes = ""; + + try + { + + Hashtable nodes = new Hashtable(); + + for (int i = 0; i < ips.size(); i++) + { + responseNodes = queryForNodes(ips.get(i), ports.get(i));//query for topology + parseNodes(responseNodes, nodes, ips.get(i), ports.get(i)); + log.info("responseNodes:::"+responseNodes); + } + + } + catch (Exception e) + { + log.info(e.toString()); + } + } + + + private String BristoltoFloodlight(String BristolFormat) + { + String floodFormat = new String(BristolFormat); + //Por algo se me conoce como el hacker + for (int i = 2; i < floodFormat.length(); i += 3) + { + floodFormat = floodFormat.substring(0, i) + ":" + floodFormat.substring(i, floodFormat.length()); + } + log.info("BristolFormat--> " + BristolFormat + ", floodFormat-->" + floodFormat); + return floodFormat; + } + + private void parseNodes(String response, Hashtable routerInfoList, String ip, String port) + { + try + { + JSONParser parser = new JSONParser(); + Object obj = parser.parse(response); + + JSONObject jsonaux=(JSONObject) obj; + Iterator iterkeys=jsonaux.keySet().iterator(); + Hashtable nodes= new Hashtable(); + while (iterkeys.hasNext()) { + String dpid = iterkeys.next(); + System.out.println("Key: "+dpid.replace("-", ":")); + RouterInfoPM rInfo = new RouterInfoPM(); + + rInfo.setRouterID(dpid.replace("-", ":"));//Bristol to floodlight? + rInfo.setConfigurationMode("Openflow"); + rInfo.setControllerType(TEDUpdaterNOX.controllerName); + + rInfo.setControllerIdentifier(ip, port); + rInfo.setControllerIP(ip); + rInfo.setControllerPort(port); + + routerInfoList.put(rInfo.getRouterID(),rInfo); + nodes.put(dpid.replace("-", ":"),rInfo); + ((SimpleTEDB)TEDB).getNetworkGraph().addVertex(rInfo); + } + //Getting Links + Iterator nodeiter=nodes.keySet().iterator(); + while (nodeiter.hasNext()){ + String node= nodeiter.next(); + parseLinks(node, (String)jsonaux.get(node.replace(":", "-")).toString(), nodes); + } + //parseLinks(dpid, jsonarray) + } + catch (Exception e) + { + log.info(e.toString()); + } + } + + private void parseLinks(String dpid,String links, Hashtable nodes) + { + try { + //log.info("Inside parseJSON"); + JSONParser parser = new JSONParser(); + Object obj = parser.parse(links); + + JSONArray msg = (JSONArray) obj; + Iterator iterator = msg.iterator(); + while (iterator.hasNext()) + { + JSONObject jsonObject = (JSONObject) iterator.next(); + //System.out.println(jsonObject.get("src-switch")); + IntraDomainEdge edge= new IntraDomainEdge(); + + String labels = (String) jsonObject.get("labels");//?? + String destnode = ((String) jsonObject.get("peer_node")).replace("-", ":"); + String type = (String) jsonObject.get("port_type"); + + RouterInfoPM source = nodes.get(dpid); + RouterInfoPM dest = nodes.get(destnode); + + //((SimpleTEDB)TEDB).getNetworkGraph().addVertex(source); + //((SimpleTEDB)TEDB).getNetworkGraph().addVertex(dest); + + System.out.println("Srcnode: "+dpid); + System.out.println("Dstnode: "+destnode); + + System.out.println("Srcport: "+jsonObject.get("port_id")); + System.out.println("Dstport: "+jsonObject.get("peer_port")); + + if ((dest!= null)&&(source!=null)){ + + + edge.setSrc_if_id(Long.parseLong((String)jsonObject.get("port_id"))); + edge.setDst_if_id(Long.parseLong((String)jsonObject.get("peer_port"))); + + edge.setType(type); + + // This is a big problem because info is not initialized from file + // and the controller doesn't give information about how many wlans + // the are + + TE_Information tE_info = new TE_Information(); + System.out.println("Labels: Original ("+labels+") and Parsed ("+labels.substring(labels.indexOf(",")+1,labels.indexOf("]"))+")"); + tE_info.setNumberWLANs(Integer.parseInt(labels.substring(labels.indexOf(",")+1,labels.indexOf("]")))); + tE_info.initWLANs(); + + if (interDomainFile != null) + { + completeTE_Information(tE_info, source.getRouterID(), dest.getRouterID()); + } + + edge.setTE_info(tE_info); + + + edge.setDirectional(true); + //Bidirectional case? See other TEDUpdaters. + + ((SimpleTEDB)TEDB).getNetworkGraph().addEdge(source, dest, edge); + + } else { + System.out.println("Link with an unknown node. Ingnoring..."); + } + //log.info("Edge added:"+edge); + //log.info(((SimpleTEDB)TEDB).getIntraDomainLinks().toString()); + } + //parseRemainingLinksFromXML(nodes); + + + } + catch (Exception e) + { + log.info(e.toString()); + } + } + + +// private void parseLinks(String links,Hashtable nodes) +// { +// try { +// //log.info("Inside parseJSON"); +// JSONParser parser = new JSONParser(); +// Object obj = parser.parse(links); +// +// JSONArray msg = (JSONArray) obj; +// Iterator iterator = msg.iterator(); +// while (iterator.hasNext()) +// { +// JSONObject jsonObject = (JSONObject) iterator.next(); +// //System.out.println(jsonObject.get("src-switch")); +// IntraDomainEdge edge= new IntraDomainEdge(); +// +// JSONObject jsonObject_src = (JSONObject) jsonObject.get("src"); +// JSONObject jsonObject_dst = (JSONObject) jsonObject.get("dst"); +// +// RouterInfoPM source = nodes.get(BristoltoFloodlight((String)jsonObject_src.get("dpid"))); +// RouterInfoPM dest = nodes.get(BristoltoFloodlight((String)jsonObject_dst.get("dpid"))); +// +// //((SimpleTEDB)TEDB).getNetworkGraph().addVertex(source); +// //((SimpleTEDB)TEDB).getNetworkGraph().addVertex(dest); +// +// log.info("Adding Vertex->"+source+" hashcode:"+source.hashCode()); +// log.info("Adding Vertex->"+dest+" hashcode:"+dest.hashCode()); +// +// edge.setSrc_if_id((Long)jsonObject_src.get("port_no")); +// edge.setDst_if_id((Long)jsonObject_dst.get("port_no")); +// +// +// // This is a big problem because info is not initialized from file +// // and the controller doesn't give information about how many wlans +// // the are +// +// TE_Information tE_info = new TE_Information(); +// tE_info.setNumberWLANs(15); +// tE_info.initWLANs(); +// +// if (interDomainFile != null) +// { +// completeTE_Information(tE_info, source.getRouterID(), dest.getRouterID()); +// } +// +// edge.setTE_info(tE_info); +// +// String isBidirectional = (String)jsonObject.get("direction"); +// +// +// // En Bristol los enlaces son unidirecctionales, pero asumimos que hay uno en una direccion +// // esta el otro +// isBidirectional = "bidirectional"; +// +// //log.info("isBidirectional::"+isBidirectional); +// +// if ((1==1)||(isBidirectional != null) && (isBidirectional.equals("bidirectional"))) +// { +// //((SimpleTEDB)TEDB).getNetworkGraph().addEdge(source, dest, edge); +// +// TE_Information tE_infoOtherWay = new TE_Information(); +// tE_infoOtherWay.setNumberWLANs(15); +// tE_infoOtherWay.initWLANs(); +// IntraDomainEdge edgeOtherWay= new IntraDomainEdge(); +// +// edgeOtherWay.setSrc_if_id((Long)jsonObject_src.get("port_no")); +// edgeOtherWay.setDst_if_id((Long)jsonObject_dst.get("port_no")); +// edgeOtherWay.setTE_info(tE_infoOtherWay); +// +// ((SimpleTEDB)TEDB).getNetworkGraph().addEdge(source, dest, edge); +// ((SimpleTEDB)TEDB).getNetworkGraph().addEdge(dest, source, edgeOtherWay); +// +// completeTE_Information(tE_info, dest.getRouterID(), source.getRouterID()); +// +// log.info("source::"+source); +// log.info("dest::"+dest); +// log.info("edgeOtherWay::"+edgeOtherWay); +// log.info("edge::"+edge); +// //log.info("Adding two!"); +// } +// else +// { +// ((SimpleTEDB)TEDB).getNetworkGraph().addEdge(source, dest, edge); +// } +// +// //log.info("Edge added:"+edge); +// //log.info(((SimpleTEDB)TEDB).getIntraDomainLinks().toString()); +// } +// //parseRemainingLinksFromXML(nodes); +// +// +// } +// catch (Exception e) +// { +// log.info(UtilsFunctions.exceptionToString(e)); +// } +// } + + private void completeTE_Information(TE_Information tE_info, String source, String dest) + { + MyEdge auxEdge = new MyEdge(source, dest); + MyEdge completEdge = interDomainLinks.get(auxEdge.hashCode()); + if ((completEdge != null)&&(completEdge.vlan != null)) + { + tE_info.setVlanLink(true); + tE_info.setVlan(completEdge.vlan); + //If it has been found it will be removed so the rest can be proccessed later + interDomainLinks.remove(completEdge.vlan); + } + else + { + tE_info.setVlanLink(false); + } + } + + private String queryForLinks(String ip, String port) + { + String response = ""; + try + { + URL topoplogyURL = new URL("http://"+ip+":"+port+topologyPathLinks); + + log.info("URL::"+"http://"+ip+":"+port+topologyPathLinks); + + URLConnection yc = topoplogyURL.openConnection(); + BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream())); + String inputLine; + + while ((inputLine = in.readLine()) != null) + { + response = response + inputLine; + } + } + catch (Exception e) + { + log.info(e.toString()); + } + return response; + } + + private String queryForNodes(String ip, String port) + { + String response = ""; + try + { + URL topoplogyURL = new URL("http://"+ip+":"+port+topologyPathNodes); + + log.info("http://+port+topologyPathNodes:::"+"http://"+ip+":"+port+topologyPathNodes); + + URLConnection yc = topoplogyURL.openConnection(); + BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream())); + + String inputLine; + while ((inputLine = in.readLine()) != null) + { + response = response + inputLine; + } + in.close(); + } + catch (Exception e) + { + log.info(e.toString()); + } + return response; + } + + public String getInterDomainFile() + { + return interDomainFile; + } + + public void setInterDomainFile(String interDomainFile) + { + this.interDomainFile = interDomainFile; + } + + + private void lock() + { + if (lock != null) + { + lock.lock(); + } + } + + private void unlock() + { + if (lock != null) + { + lock.unlock(); + } + } +} + diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/controllers/TEDUpdaterODL.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/controllers/TEDUpdaterODL.java new file mode 100644 index 0000000000000000000000000000000000000000..a1a8c0e6fdbad5a4aa7e5f31338f5ca150451587 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/controllers/TEDUpdaterODL.java @@ -0,0 +1,351 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.tedb.controllers; + +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.net.HttpURLConnection; +import java.net.URL; +import java.net.URLConnection; +import java.util.ArrayList; +import java.util.Hashtable; +import java.util.Iterator; +import java.util.concurrent.locks.Lock; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import org.json.simple.JSONArray; +import org.json.simple.JSONObject; +import org.json.simple.parser.JSONParser; +import org.w3c.dom.CharacterData; +import org.w3c.dom.Element; +import org.w3c.dom.Node; + +import eu.teraflow.tid.tedb.DomainTEDB; +import eu.teraflow.tid.tedb.IntraDomainEdge; +import eu.teraflow.tid.tedb.SimpleTEDB; +import eu.teraflow.tid.tedb.TE_Information; +import eu.teraflow.tid.tedb.elements.RouterInfoPM; + + + +/** + * Thread that reads topology from Openflow controller and from XML if there are intradomain links + * @author jaume + * + */ + +public class TEDUpdaterODL extends TEDUpdaterController +{ + public static String controllerName = "ODL"; + + + private String topologyPathLinks = "/controller/nb/v2/topology/default"; + private String topologyPathNodes = "/controller/nb/v2/switchmanager/default/nodes"; + + public TEDUpdaterODL(String ip,String port, String topologyPathLinks, String topologyPathNodes,DomainTEDB ted, Logger log) + { + super(); + ips = new ArrayList(); + ports = new ArrayList(); + + ips.add(ip); + ports.add(port); + this.TEDB = (SimpleTEDB)ted; + this.log = log; + } + + public TEDUpdaterODL(String ip, String port, String topologyPathLinks, String topologyPathNodes,DomainTEDB ted, Logger log, Lock lock) + { + super( ip, port, topologyPathLinks, topologyPathNodes, ted, log, lock); + } + + public TEDUpdaterODL(ArrayList ips, ArrayListports , String topologyPathLinks, String topologyPathNodes,DomainTEDB ted, Logger log) + { + super(ips, ports , topologyPathLinks, topologyPathNodes, ted, log); + } + + + + + + + @Override + public void run() + { + + if(interDomainFile != null) + { + interDomainLinks = TEDUpdaterController.readInterDomainFile(interDomainFile); + } + + String responseLinks = ""; + String responseNodes = ""; + + try + { + + Hashtable nodes = new Hashtable(); + + + log.info("ips.size():"+ips.size()); + log.info("ODL updates_______________________________________________________START____"); + for (int i = 0; i < ips.size(); i++) + { + responseNodes = queryForNodes(ips.get(i), ports.get(i)); + parseNodes(responseNodes, nodes, ips.get(i), ports.get(i)); + } + + for (int i = 0; i < ips.size(); i++) + { + responseLinks = queryForLinks(ips.get(i), ports.get(i)); + lock(); + parseLinks(responseLinks, nodes); + unlock(); + + } + log.info("ODL updates_______________________________________________________END____"); + + + //parseJSON("[{\"src-switch\":\"00:14:2c:59:e5:5e:2b:00\",\"src-port\":20,\"src-port-state\":0,\"dst-switch\":\"00:14:2c:59:e5:64:21:00\",\"dst-port\":19,\"dst-port-state\":0,\"type\":\"internal\"},{\"src-switch\":\"00:14:2c:59:e5:64:21:00\",\"src-port\":19,\"src-port-state\":0,\"dst-switch\":\"00:14:2c:59:e5:5e:2b:00\",\"dst-port\":20,\"dst-port-state\":0,\"type\":\"internal\"},{\"src-switch\":\"00:14:2c:59:e5:66:ed:00\",\"src-port\":9,\"src-port-state\":0,\"dst-switch\":\"00:14:2c:59:e5:64:21:00\",\"dst-port\":20,\"dst-port-state\":0,\"type\":\"internal\"},{\"src-switch\":\"00:14:2c:59:e5:64:21:00\",\"src-port\":20,\"src-port-state\":0,\"dst-switch\":\"00:14:2c:59:e5:66:ed:00\",\"dst-port\":9,\"dst-port-state\":0,\"type\":\"internal\"}]"); + //System.out.println(response); + } + catch (Exception e) + { + log.info(e.toString()); + } + } + + + + private void parseNodes(String response, Hashtable routerInfoList, String ip, String port) + { + try + { + JSONParser parser = new JSONParser(); + Object obj = parser.parse(response); + + JSONArray msg = (JSONArray) ((JSONObject) obj).get("nodeProperties"); + Iterator iterator = msg.iterator(); + while (iterator.hasNext()) + { + JSONObject jsonObject = iterator.next(); + + RouterInfoPM rInfo = new RouterInfoPM(); + + String dpid = (String) (((JSONObject) jsonObject.get("node")).get("id")); + + rInfo.setRouterID(dpid); + rInfo.setConfigurationMode("Openflow"); + rInfo.setControllerType(TEDUpdaterODL.controllerName); + rInfo.setControllerIdentifier(ip, port); + rInfo.setControllerIP(ip); + rInfo.setControllerPort(port); + + routerInfoList.put(rInfo.getRouterID(),rInfo); + log.info("Adding Vertex::"+rInfo); + ((SimpleTEDB)TEDB).getNetworkGraph().addVertex(rInfo); + + + + } + } + catch (Exception e) + { + log.info(e.toString()); + } + } + + private void parseLinks(String links,Hashtable nodes) + { + try { + JSONParser parser = new JSONParser(); + Object obj = parser.parse(links); + + JSONArray msg = (JSONArray) ((JSONObject) obj).get("edgeProperties"); + Iterator iterator = msg.iterator(); + while (iterator.hasNext()) + { + JSONObject jsonObject = (JSONObject) iterator.next().get("edge"); + JSONObject jSrc = (JSONObject) jsonObject.get("headNodeConnector"); + JSONObject jDst = (JSONObject) jsonObject.get("tailNodeConnector"); + + + + IntraDomainEdge edge= new IntraDomainEdge(); + + RouterInfoPM source = nodes.get(((JSONObject) jSrc.get("node")).get("id"));// jsonObject.get("src-switch")); + RouterInfoPM dest = nodes.get(((JSONObject) jDst.get("node")).get("id"));// jsonObject.get("dst-switch")); + + + + edge.setSrc_if_id(Long.parseLong((String)jSrc.get("id"))); //jsonObject.get("src-port")); + edge.setDst_if_id(Long.parseLong((String)jDst.get("id"))); //jsonObject.get("dst-port")); + + // This is a big problem because info is not initialized from file + // and the controller doesn't give information about how many wlans + // the are + + TE_Information tE_info = new TE_Information(); + tE_info.setNumberWLANs(15); + tE_info.initWLANs(); + + if (interDomainFile != null) + { + completeTE_Information(tE_info, source.getRouterID(), dest.getRouterID()); + } + + edge.setTE_info(tE_info); + + String isBidirectional = (String)jsonObject.get("direction"); + + + + //log.info("isBidirectional::"+isBidirectional); + + if ((1==1)||(isBidirectional != null) && (isBidirectional.equals("bidirectional"))) + { + //((SimpleTEDB)TEDB).getNetworkGraph().addEdge(source, dest, edge); + + TE_Information tE_infoOtherWay = new TE_Information(); + tE_infoOtherWay.setNumberWLANs(15); + tE_infoOtherWay.initWLANs(); + IntraDomainEdge edgeOtherWay= new IntraDomainEdge(); + + edgeOtherWay.setSrc_if_id(Long.parseLong((String)jDst.get("id"))); + edgeOtherWay.setDst_if_id(Long.parseLong((String)jSrc.get("id"))); + edgeOtherWay.setTE_info(tE_infoOtherWay); + + ((SimpleTEDB)TEDB).getNetworkGraph().addEdge(source, dest, edge); + ((SimpleTEDB)TEDB).getNetworkGraph().addEdge(dest, source, edgeOtherWay); + + completeTE_Information(tE_info, dest.getRouterID(), source.getRouterID()); + + log.info("________EDGE_____"); + log.info("source::"+source); + log.info("dest::"+dest); + log.info("edgeOtherWay::"+edgeOtherWay); + log.info("edge::"+edge); + log.info("--------EDGE-----"); + } + else + { + ((SimpleTEDB)TEDB).getNetworkGraph().addEdge(source, dest, edge); + } + + //log.info("Edge added:"+edge); + //log.info(((SimpleTEDB)TEDB).getIntraDomainLinks().toString()); + } + //parseRemainingLinksFromXML(nodes); + + } + catch (Exception e) + { + log.info(e.toString()); + } + } + + private void completeTE_Information(TE_Information tE_info, String source, String dest) + { + MyEdge auxEdge = new MyEdge(source, dest); + MyEdge completEdge = interDomainLinks.get(auxEdge.hashCode()); + if ((completEdge != null)&&(completEdge.vlan != null)) + { + tE_info.setVlanLink(true); + tE_info.setVlan(completEdge.vlan); + //If it has been found it will be removed so the rest can be proccessed later + interDomainLinks.remove(completEdge.vlan); + } + else + { + tE_info.setVlanLink(false); + } + } + + private String queryForLinks(String ip, String port) + { + return query("http://"+ip+":"+port+topologyPathLinks); + } + + private String queryForNodes(String ip, String port) + { + return query("http://"+ip+":"+port+topologyPathNodes); + } + + private String query(String url) + { + log.info("Attempting to curl: "+url); + String response = ""; + try + { + String credentials = "admin:admin"; + String credentialsEncoded = "YWRtaW46YWRtaW4="; + + URL topoplogyURL = new URL(url); + URLConnection yc = topoplogyURL.openConnection(); + + HttpURLConnection httpcon = (HttpURLConnection) yc; + httpcon.setDoOutput(true); + httpcon.setRequestProperty("Content-Type", "application/json"); + httpcon.setRequestProperty("Authorization", "Basic "+credentialsEncoded); + + BufferedReader in = new BufferedReader( + new InputStreamReader( + httpcon.getInputStream())); + String inputLine; + + while ((inputLine = in.readLine()) != null) + { + response = response + inputLine; + } + in.close(); + return response; + } + catch (Exception e) + { + log.info(e.toString()); + } + + return ""; + + } + + + private void lock() + { + if (lock != null) + { + lock.lock(); + } + } + + private void unlock() + { + if (lock != null) + { + lock.unlock(); + } + } + + private String getCharacterDataFromElement(Element e) { + Node child = e.getFirstChild(); + if (child instanceof CharacterData) { + CharacterData cd = (CharacterData) child; + return cd.getData(); + } else { + return "?"; + } + } +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/controllers/TEDUpdaterRYU.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/controllers/TEDUpdaterRYU.java new file mode 100644 index 0000000000000000000000000000000000000000..c1383b8b2e7c13de155163cf2f53622ea2d70003 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/controllers/TEDUpdaterRYU.java @@ -0,0 +1,355 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.tedb.controllers; + +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.net.URL; +import java.net.URLConnection; +import java.util.ArrayList; +import java.util.Hashtable; +import java.util.Iterator; +import java.util.concurrent.locks.Lock; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import eu.teraflow.tid.tedb.DomainTEDB; +import eu.teraflow.tid.tedb.IntraDomainEdge; +import eu.teraflow.tid.tedb.SimpleTEDB; +import eu.teraflow.tid.tedb.TE_Information; +import eu.teraflow.tid.tedb.elements.RouterInfoPM; + +import org.json.simple.JSONArray; +import org.json.simple.JSONObject; +import org.json.simple.parser.JSONParser; + +/** + * Thread that reads topology from Openflow controller and from XML if there are intradomain links + * @author jaume + * + */ + + +public class TEDUpdaterRYU extends TEDUpdaterController +{ + public static String controllerName = "RYU"; + private Hashtable interDomainLinks = new Hashtable(); + + + //Overwritten father variables and fixing the topology urls in code + private String topologyPathNodes = "/v1.0/topology/switches"; + private String topologyPathLinks = "/v1.0/topology/links"; + + public TEDUpdaterRYU(String ip, String port, String topologyPathLinks, String topologyPathNodes,DomainTEDB ted, Logger log) + { + super( ip, port, topologyPathLinks, topologyPathNodes, ted, log); + } + + public TEDUpdaterRYU(String ip, String port, String topologyPathLinks, String topologyPathNodes,DomainTEDB ted, Logger log, Lock lock) + { + super( ip, port, topologyPathLinks, topologyPathNodes, ted, log, lock); + } + + public TEDUpdaterRYU(ArrayList ips, ArrayListports , String topologyPathLinks, String topologyPathNodes,DomainTEDB ted, Logger log) + { + super(ips, ports , topologyPathLinks, topologyPathNodes, ted, log); + } + + + @Override + public void run() + { + + if(interDomainFile != null) + { + interDomainLinks = TEDUpdaterController.readInterDomainFile(interDomainFile); + } + + String responseLinks = ""; + String responseNodes = ""; + + try + { + + Hashtable nodes = new Hashtable(); + + for (int i = 0; i < ips.size(); i++) + { + responseNodes = queryForNodes(ips.get(i), ports.get(i)); + parseNodes(responseNodes, nodes, ips.get(i), ports.get(i)); + log.info("responseNodes:::"+responseNodes); + } + + for (int i = 0; i < ips.size(); i++) + { + responseLinks = queryForLinks(ips.get(i), ports.get(i)); + + log.info("responseLinks:::"+responseLinks); + + lock(); + parseLinks(responseLinks, nodes); + unlock(); + + } + + //parseJSON("[{\"src-switch\":\"00:14:2c:59:e5:5e:2b:00\",\"src-port\":20,\"src-port-state\":0,\"dst-switch\":\"00:14:2c:59:e5:64:21:00\",\"dst-port\":19,\"dst-port-state\":0,\"type\":\"internal\"},{\"src-switch\":\"00:14:2c:59:e5:64:21:00\",\"src-port\":19,\"src-port-state\":0,\"dst-switch\":\"00:14:2c:59:e5:5e:2b:00\",\"dst-port\":20,\"dst-port-state\":0,\"type\":\"internal\"},{\"src-switch\":\"00:14:2c:59:e5:66:ed:00\",\"src-port\":9,\"src-port-state\":0,\"dst-switch\":\"00:14:2c:59:e5:64:21:00\",\"dst-port\":20,\"dst-port-state\":0,\"type\":\"internal\"},{\"src-switch\":\"00:14:2c:59:e5:64:21:00\",\"src-port\":20,\"src-port-state\":0,\"dst-switch\":\"00:14:2c:59:e5:66:ed:00\",\"dst-port\":9,\"dst-port-state\":0,\"type\":\"internal\"}]"); + //System.out.println(response); + } + catch (Exception e) + { + log.info(e.toString()); + } + } + + + private String RYUtoFloodlight(String RYUFormat) + { + String floodFormat = new String(RYUFormat); + //Por algo se me conoce como el hacker + for (int i = 2; i < floodFormat.length(); i += 3) + { + floodFormat = floodFormat.substring(0, i) + ":" + floodFormat.substring(i, floodFormat.length()); + } + log.info("RYUFormat--> " + RYUFormat + ", floodFormat-->" + floodFormat); + return floodFormat; +} + + private void parseNodes(String response, Hashtable routerInfoList, String ip, String port) + { + try + { + JSONParser parser = new JSONParser(); + Object obj = parser.parse(response); + + JSONArray msg = (JSONArray) obj; + Iterator iterator = msg.iterator(); + while (iterator.hasNext()) + { + JSONObject jsonObject = (JSONObject) iterator.next(); + + log.info("(String)jsonObject.get(dpid)::"+(String)jsonObject.get("dpid")); + + RouterInfoPM rInfo = new RouterInfoPM(); + + rInfo.setRouterID(RYUtoFloodlight((String)jsonObject.get("dpid"))); + rInfo.setConfigurationMode("Openflow"); + rInfo.setControllerType(TEDUpdaterRYU.controllerName); + + rInfo.setControllerIdentifier(ip, port); + rInfo.setControllerIP(ip); + rInfo.setControllerPort(port); + + routerInfoList.put(rInfo.getRouterID(),rInfo); + + ((SimpleTEDB)TEDB).getNetworkGraph().addVertex(rInfo); + } + } + catch (Exception e) + { + log.info(e.toString()); + } + } + + private void parseLinks(String links,Hashtable nodes) + { + try { + //log.info("Inside parseJSON"); + JSONParser parser = new JSONParser(); + Object obj = parser.parse(links); + + JSONArray msg = (JSONArray) obj; + Iterator iterator = msg.iterator(); + while (iterator.hasNext()) + { + JSONObject jsonObject = (JSONObject) iterator.next(); + //System.out.println(jsonObject.get("src-switch")); + IntraDomainEdge edge= new IntraDomainEdge(); + + JSONObject jsonObject_src = (JSONObject) jsonObject.get("src"); + JSONObject jsonObject_dst = (JSONObject) jsonObject.get("dst"); + + RouterInfoPM source = nodes.get(RYUtoFloodlight((String)jsonObject_src.get("dpid"))); + RouterInfoPM dest = nodes.get(RYUtoFloodlight((String)jsonObject_dst.get("dpid"))); + + //((SimpleTEDB)TEDB).getNetworkGraph().addVertex(source); + //((SimpleTEDB)TEDB).getNetworkGraph().addVertex(dest); + + log.info("Adding Vertex->"+source+" hashcode:"+source.hashCode()); + log.info("Adding Vertex->"+dest+" hashcode:"+dest.hashCode()); + + edge.setSrc_if_id(Long.parseLong((String) jsonObject_src.get("port_no"))); + edge.setDst_if_id(Long.parseLong((String) jsonObject_dst.get("port_no"))); + + + // This is a big problem because info is not initialized from file + // and the controller doesn't give information about how many wlans + // the are + + TE_Information tE_info = new TE_Information(); + tE_info.setNumberWLANs(15); + tE_info.initWLANs(); + + if (interDomainFile != null) + { + completeTE_Information(tE_info, source.getRouterID(), dest.getRouterID()); + } + + edge.setTE_info(tE_info); + + String isBidirectional = (String)jsonObject.get("direction"); + + + // En RYU los enlaces son unidirecctionales, pero asumimos que hay uno en una direccion + // esta el otro + isBidirectional = "bidirectional"; + + //log.info("isBidirectional::"+isBidirectional); + + if ((1==1)||(isBidirectional != null) && (isBidirectional.equals("bidirectional"))) + { + //((SimpleTEDB)TEDB).getNetworkGraph().addEdge(source, dest, edge); + + TE_Information tE_infoOtherWay = new TE_Information(); + tE_infoOtherWay.setNumberWLANs(15); + tE_infoOtherWay.initWLANs(); + IntraDomainEdge edgeOtherWay= new IntraDomainEdge(); + + edgeOtherWay.setSrc_if_id(Long.parseLong((String) jsonObject_src.get("port_no"))); + edgeOtherWay.setDst_if_id(Long.parseLong((String) jsonObject_dst.get("port_no"))); + edgeOtherWay.setTE_info(tE_infoOtherWay); + + ((SimpleTEDB)TEDB).getNetworkGraph().addEdge(source, dest, edge); + ((SimpleTEDB)TEDB).getNetworkGraph().addEdge(dest, source, edgeOtherWay); + + completeTE_Information(tE_info, dest.getRouterID(), source.getRouterID()); + + log.info("source::"+source); + log.info("dest::"+dest); + log.info("edgeOtherWay::"+edgeOtherWay); + log.info("edge::"+edge); + } + else + { + ((SimpleTEDB)TEDB).getNetworkGraph().addEdge(source, dest, edge); + } + + //log.info("Edge added:"+edge); + //log.info(((SimpleTEDB)TEDB).getIntraDomainLinks().toString()); + } + //parseRemainingLinksFromXML(nodes); + + + } + catch (Exception e) + { + log.info(e.toString()); + } + } + + private void completeTE_Information(TE_Information tE_info, String source, String dest) + { + MyEdge auxEdge = new MyEdge(source, dest); + MyEdge completEdge = interDomainLinks.get(auxEdge.hashCode()); + if ((completEdge != null)&&(completEdge.vlan != null)) + { + tE_info.setVlanLink(true); + tE_info.setVlan(completEdge.vlan); + //If it has been found it will be removed so the rest can be proccessed later + interDomainLinks.remove(completEdge.vlan); + } + else + { + tE_info.setVlanLink(false); + } + } + + private String queryForLinks(String ip, String port) + { + String response = ""; + try + { + URL topoplogyURL = new URL("http://"+ip+":"+port+topologyPathLinks); + + log.info("URL::"+"http://"+ip+":"+port+topologyPathLinks); + + URLConnection yc = topoplogyURL.openConnection(); + BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream())); + String inputLine; + + while ((inputLine = in.readLine()) != null) + { + response = response + inputLine; + } + } + catch (Exception e) + { + log.info(e.toString()); + } + return response; + } + + private String queryForNodes(String ip, String port) + { + String response = ""; + try + { + URL topoplogyURL = new URL("http://"+ip+":"+port+topologyPathNodes); + + log.info("http://+port+topologyPathNodes:::"+"http://"+ip+":"+port+topologyPathNodes); + + URLConnection yc = topoplogyURL.openConnection(); + BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream())); + + String inputLine; + while ((inputLine = in.readLine()) != null) + { + response = response + inputLine; + } + in.close(); + } + catch (Exception e) + { + log.info(e.toString()); + } + return response; + } + + public String getInterDomainFile() + { + return interDomainFile; + } + + public void setInterDomainFile(String interDomainFile) + { + this.interDomainFile = interDomainFile; + } + + + private void lock() + { + if (lock != null) + { + lock.lock(); + } + } + + private void unlock() + { + if (lock != null) + { + lock.unlock(); + } + } +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/controllers/TEDUpdaterTREMA.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/controllers/TEDUpdaterTREMA.java new file mode 100644 index 0000000000000000000000000000000000000000..a87fc3790b39b0aea1e25b56e235acc8a09b5cb6 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/controllers/TEDUpdaterTREMA.java @@ -0,0 +1,449 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.tedb.controllers; + +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.net.URL; +import java.net.URLConnection; +import java.util.ArrayList; +import java.util.Hashtable; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.concurrent.locks.Lock; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import org.json.simple.JSONArray; +import org.json.simple.JSONObject; +import org.json.simple.parser.JSONParser; + +import com.metaparadigm.jsonrpc.JSONSerializer; + +import eu.teraflow.tid.tedb.DomainTEDB; +import eu.teraflow.tid.tedb.IntraDomainEdge; +import eu.teraflow.tid.tedb.SimpleTEDB; +import eu.teraflow.tid.tedb.TE_Information; +import eu.teraflow.tid.tedb.controllers.TEDUpdaterController.MyEdge; +import eu.teraflow.tid.tedb.elements.RouterInfoPM; + +public class TEDUpdaterTREMA extends TEDUpdaterController +{ + public static String controllerName = "TREMA"; + private Hashtable interDomainLinks = new Hashtable(); + + + //Overwritten father variables and fixing the topology urls in code + private String topologyPathNodes = "/get_topology/"; + private String topologyPathLinks = "/get_graph/";//?? + + public TEDUpdaterTREMA(String ip, String port, String topologyPathLinks, String topologyPathNodes,DomainTEDB ted, Logger log) + { + super( ip, port, topologyPathLinks, topologyPathNodes, ted, log); + } + + public TEDUpdaterTREMA(String ip, String port, String topologyPathLinks, String topologyPathNodes,DomainTEDB ted, Logger log, Lock lock) + { + super( ip, port, topologyPathLinks, topologyPathNodes, ted, log, lock); + } + + public TEDUpdaterTREMA(ArrayList ips, ArrayListports , String topologyPathLinks, String topologyPathNodes,DomainTEDB ted, Logger log) + { + super(ips, ports , topologyPathLinks, topologyPathNodes, ted, log); + } + + + @Override + public void run() + { + + if(interDomainFile != null) + { + interDomainLinks = TEDUpdaterController.readInterDomainFile(interDomainFile); + } + + String responseLinks = ""; + String responseNodes = ""; + + try + { + + Hashtable nodes = new Hashtable(); + + for (int i = 0; i < ips.size(); i++) + { + responseNodes = queryForNodes(ips.get(i), ports.get(i));//query for topology + parseNodes(responseNodes, nodes, ips.get(i), ports.get(i)); + log.info("responseNodes:::"+responseNodes); + } + + } + catch (Exception e) + { + log.info(e.toString()); + } + } + + + private String KDDItoFloodlight(String BristolFormat) + { + String floodFormat = new String(BristolFormat); + //Por algo se me conoce como el hacker + for (int i = 2; i < floodFormat.length(); i += 3) + { + floodFormat = floodFormat.substring(0, i) + ":" + floodFormat.substring(i, floodFormat.length()); + } + log.info("BristolFormat--> " + BristolFormat + ", floodFormat-->" + floodFormat); + return floodFormat; + } + + private void parseNodes(String response, Hashtable routerInfoList, String ip, String port) + { + try + { + JSONParser parser = new JSONParser(); + Object obj = parser.parse(response); + + JSONObject jsonaux=(JSONObject) obj; + String host=(String)jsonaux.get("hostConfig").toString(); + obj=parser.parse(host); + JSONObject jsonhost=(JSONObject) obj; + + //FIXME: This info has been taken from TREMA controller but is not used. Take a look if it's necessary + String OPS_Label=(String)jsonhost.get("OPS label"); + String Port_id=(String)jsonhost.get("Port_id"); + String reach_nodes=(String)jsonhost.get("Reachable nodes"); + String node_type=(String)jsonhost.get("nodeType");//Used for RouterType + + RouterInfoPM rInfo = new RouterInfoPM(); + String dpid=((String)jsonhost.get("Virtual_node_id")).replace("-", ":"); + rInfo.setRouterID(dpid);//Bristol to floodlight? + rInfo.setConfigurationMode("Openflow"); + rInfo.setControllerType(TEDUpdaterNOX.controllerName); + rInfo.setRouterType(node_type); + + rInfo.setReachable_nodes(parseReachability(reach_nodes)); + + rInfo.setControllerIdentifier(ip, port); + rInfo.setControllerIP(ip); + rInfo.setControllerPort(port); + + routerInfoList.put(rInfo.getRouterID(),rInfo); + ((SimpleTEDB)TEDB).getNetworkGraph().addVertex(rInfo); + //Getting Links + //parseLinks(???); + //parseLinks(dpid, jsonarray) + } + catch (Exception e) + { + log.info(e.toString()); + } + } + + private LinkedList parseReachability(String reach_nodes) { + boolean end=false; + int beginIndex=0; + LinkedList nodes= new LinkedList(); + reach_nodes=reach_nodes.replace(" ", ""); + System.out.println("Reachable Nodes:"+reach_nodes); + while (!end){ + int pointer=reach_nodes.indexOf(","); + if (pointer==-1) + end=true; + else { + String node=reach_nodes.substring(beginIndex, pointer); + System.out.println("Reachable Node:"+node); + reach_nodes=reach_nodes.substring(pointer+1); + nodes.add(node); + } + } + if (reach_nodes.length()>0){ + System.out.println("Reachable Node:"+reach_nodes); + nodes.add(reach_nodes); + } + return nodes; + } + + private void parseLinks(String dpid,String links, Hashtable nodes) //NOX Parse Links. it's not used in TREMA + { + try { + //log.info("Inside parseJSON"); + JSONParser parser = new JSONParser(); + Object obj = parser.parse(links); + + JSONArray msg = (JSONArray) obj; + Iterator iterator = msg.iterator(); + while (iterator.hasNext()) + { + JSONObject jsonObject = (JSONObject) iterator.next(); + //System.out.println(jsonObject.get("src-switch")); + IntraDomainEdge edge= new IntraDomainEdge(); + + String labels = (String) jsonObject.get("labels");//?? + String destnode = ((String) jsonObject.get("peer_node")).replace("-", ":"); + String type = (String) jsonObject.get("port_type"); + + RouterInfoPM source = nodes.get(dpid); + RouterInfoPM dest = nodes.get(destnode); + + //((SimpleTEDB)TEDB).getNetworkGraph().addVertex(source); + //((SimpleTEDB)TEDB).getNetworkGraph().addVertex(dest); + + System.out.println("Srcnode: "+dpid); + System.out.println("Dstnode: "+destnode); + + System.out.println("Srcport: "+jsonObject.get("port_id")); + System.out.println("Dstport: "+jsonObject.get("peer_port")); + + if ((dest!= null)&&(source!=null)){ + + + edge.setSrc_if_id(Long.parseLong((String)jsonObject.get("port_id"))); + edge.setDst_if_id(Long.parseLong((String)jsonObject.get("peer_port"))); + + edge.setType(type); + + // This is a big problem because info is not initialized from file + // and the controller doesn't give information about how many wlans + // the are + + TE_Information tE_info = new TE_Information(); + System.out.println("Labels: Original ("+labels+") and Parsed ("+labels.substring(labels.indexOf(",")+1,labels.indexOf("]"))+")"); + tE_info.setNumberWLANs(Integer.parseInt(labels.substring(labels.indexOf(",")+1,labels.indexOf("]")))); + tE_info.initWLANs(); + + if (interDomainFile != null) + { + completeTE_Information(tE_info, source.getRouterID(), dest.getRouterID()); + } + + edge.setTE_info(tE_info); + + + edge.setDirectional(true); + //Bidirectional case? See other TEDUpdaters. + + ((SimpleTEDB)TEDB).getNetworkGraph().addEdge(source, dest, edge); + + } else { + System.out.println("Link with an unknown node. Ingnoring..."); + } + //log.info("Edge added:"+edge); + //log.info(((SimpleTEDB)TEDB).getIntraDomainLinks().toString()); + } + //parseRemainingLinksFromXML(nodes); + + + } + catch (Exception e) + { + log.info(e.toString()); + } + } + + +// private void parseLinks(String links,Hashtable nodes) +// { +// try { +// //log.info("Inside parseJSON"); +// JSONParser parser = new JSONParser(); +// Object obj = parser.parse(links); +// +// JSONArray msg = (JSONArray) obj; +// Iterator iterator = msg.iterator(); +// while (iterator.hasNext()) +// { +// JSONObject jsonObject = (JSONObject) iterator.next(); +// //System.out.println(jsonObject.get("src-switch")); +// IntraDomainEdge edge= new IntraDomainEdge(); +// +// JSONObject jsonObject_src = (JSONObject) jsonObject.get("src"); +// JSONObject jsonObject_dst = (JSONObject) jsonObject.get("dst"); +// +// RouterInfoPM source = nodes.get(BristoltoFloodlight((String)jsonObject_src.get("dpid"))); +// RouterInfoPM dest = nodes.get(BristoltoFloodlight((String)jsonObject_dst.get("dpid"))); +// +// //((SimpleTEDB)TEDB).getNetworkGraph().addVertex(source); +// //((SimpleTEDB)TEDB).getNetworkGraph().addVertex(dest); +// +// log.info("Adding Vertex->"+source+" hashcode:"+source.hashCode()); +// log.info("Adding Vertex->"+dest+" hashcode:"+dest.hashCode()); +// +// edge.setSrc_if_id((Long)jsonObject_src.get("port_no")); +// edge.setDst_if_id((Long)jsonObject_dst.get("port_no")); +// +// +// // This is a big problem because info is not initialized from file +// // and the controller doesn't give information about how many wlans +// // the are +// +// TE_Information tE_info = new TE_Information(); +// tE_info.setNumberWLANs(15); +// tE_info.initWLANs(); +// +// if (interDomainFile != null) +// { +// completeTE_Information(tE_info, source.getRouterID(), dest.getRouterID()); +// } +// +// edge.setTE_info(tE_info); +// +// String isBidirectional = (String)jsonObject.get("direction"); +// +// +// // En Bristol los enlaces son unidirecctionales, pero asumimos que hay uno en una direccion +// // esta el otro +// isBidirectional = "bidirectional"; +// +// //log.info("isBidirectional::"+isBidirectional); +// +// if ((1==1)||(isBidirectional != null) && (isBidirectional.equals("bidirectional"))) +// { +// //((SimpleTEDB)TEDB).getNetworkGraph().addEdge(source, dest, edge); +// +// TE_Information tE_infoOtherWay = new TE_Information(); +// tE_infoOtherWay.setNumberWLANs(15); +// tE_infoOtherWay.initWLANs(); +// IntraDomainEdge edgeOtherWay= new IntraDomainEdge(); +// +// edgeOtherWay.setSrc_if_id((Long)jsonObject_src.get("port_no")); +// edgeOtherWay.setDst_if_id((Long)jsonObject_dst.get("port_no")); +// edgeOtherWay.setTE_info(tE_infoOtherWay); +// +// ((SimpleTEDB)TEDB).getNetworkGraph().addEdge(source, dest, edge); +// ((SimpleTEDB)TEDB).getNetworkGraph().addEdge(dest, source, edgeOtherWay); +// +// completeTE_Information(tE_info, dest.getRouterID(), source.getRouterID()); +// +// log.info("source::"+source); +// log.info("dest::"+dest); +// log.info("edgeOtherWay::"+edgeOtherWay); +// log.info("edge::"+edge); +// //log.info("Adding two!"); +// } +// else +// { +// ((SimpleTEDB)TEDB).getNetworkGraph().addEdge(source, dest, edge); +// } +// +// //log.info("Edge added:"+edge); +// //log.info(((SimpleTEDB)TEDB).getIntraDomainLinks().toString()); +// } +// //parseRemainingLinksFromXML(nodes); +// +// +// } +// catch (Exception e) +// { +// log.info(UtilsFunctions.exceptionToString(e)); +// } +// } + + private void completeTE_Information(TE_Information tE_info, String source, String dest) + { + MyEdge auxEdge = new MyEdge(source, dest); + MyEdge completEdge = interDomainLinks.get(auxEdge.hashCode()); + if ((completEdge != null)&&(completEdge.vlan != null)) + { + tE_info.setVlanLink(true); + tE_info.setVlan(completEdge.vlan); + //If it has been found it will be removed so the rest can be proccessed later + interDomainLinks.remove(completEdge.vlan); + } + else + { + tE_info.setVlanLink(false); + } + } + + private String queryForLinks(String ip, String port) + { + String response = ""; + try + { + URL topoplogyURL = new URL("http://"+ip+":"+port+topologyPathLinks); + + log.info("URL::"+"http://"+ip+":"+port+topologyPathLinks); + + URLConnection yc = topoplogyURL.openConnection(); + BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream())); + String inputLine; + + while ((inputLine = in.readLine()) != null) + { + response = response + inputLine; + } + } + catch (Exception e) + { + log.info(e.toString()); + } + return response; + } + + private String queryForNodes(String ip, String port) + { + String response = ""; + try + { + URL topoplogyURL = new URL("http://"+ip+":"+port+topologyPathNodes); + + log.info("http://+port+topologyPathNodes:::"+"http://"+ip+":"+port+topologyPathNodes); + + URLConnection yc = topoplogyURL.openConnection(); + BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream())); + + String inputLine; + while ((inputLine = in.readLine()) != null) + { + response = response + inputLine; + } + in.close(); + } + catch (Exception e) + { + log.info(e.toString()); + } + return response; + } + + public String getInterDomainFile() + { + return interDomainFile; + } + + public void setInterDomainFile(String interDomainFile) + { + this.interDomainFile = interDomainFile; + } + + + private void lock() + { + if (lock != null) + { + lock.lock(); + } + } + + private void unlock() + { + if (lock != null) + { + lock.unlock(); + } + } +} + diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/AuthInfo.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/AuthInfo.java new file mode 100644 index 0000000000000000000000000000000000000000..aec4c98c0c0eb4ef4c8ea884deec66face342b18 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/AuthInfo.java @@ -0,0 +1,52 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.tedb.elements; + +public class AuthInfo { + /**User ID to be used for authentication */ + private String userID; + + /**password assicoated with the user ID*/ + private String passwd; + + /** + * @return the userID + */ + public String getUserID() { + return userID; + } + + /** + * @param userID the userID to set + */ + public void setUserID(String userID) { + this.userID = userID; + } + + /** + * @return the passwd + */ + public String getPasswd() { + return passwd; + } + + /** + * @param passwd the passwd to set + */ + public void setPasswd(String passwd) { + this.passwd = passwd; + } + +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/Bandwidth.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/Bandwidth.java new file mode 100644 index 0000000000000000000000000000000000000000..0fb657e279d384cb1b3bfe8847bf4bea0deb8977 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/Bandwidth.java @@ -0,0 +1,63 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.tedb.elements; + + public class Bandwidth { + + double maxBandwidth; + double unreservedBw; + + + public Bandwidth (double initBandwidth){ + maxBandwidth = initBandwidth; + unreservedBw = initBandwidth; + } + + + public Bandwidth (double max, double unresv){ + maxBandwidth = max; + unreservedBw = unresv; + } + + + public String toString(){ + return "Unreserved Bw = " + unreservedBw + ", Max Bandwidth = " + maxBandwidth; + } + + /** + * @return the maxBandwidth + */ + public double getMaxBandwidth() { + return maxBandwidth; + } + /** + * @param maxBandwidth the maxBandwidth to set + */ + public void setMaxBandwidth(double maxBandwidth) { + this.maxBandwidth = maxBandwidth; + } + /** + * @return the unreservedBw + */ + public double getUnreservedBw() { + return unreservedBw; + } + /** + * @param unreservedBw the unreservedBw to set + */ + public void setUnreservedBw(double unreservedBw) { + this.unreservedBw = unreservedBw; + } + } diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/BgpParams.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/BgpParams.java new file mode 100644 index 0000000000000000000000000000000000000000..98c529e6524d1a81717f57688eccbfbebbc3ac73 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/BgpParams.java @@ -0,0 +1,19 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.tedb.elements; + +public class BgpParams { + +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/EndPoint.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/EndPoint.java new file mode 100644 index 0000000000000000000000000000000000000000..27a4c0ffcf76fd7ba02e449bd7f45d078e70c623 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/EndPoint.java @@ -0,0 +1,81 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.tedb.elements; + +public class EndPoint { + String node; + + String intf; + + public EndPoint(String node, String intf){ + this.node = node; + this.intf = intf; + } + + /** + * @return the node + */ + public String getNode() { + return node; + } + + /** + * @param node the node to set + */ + public void setNode(String node) { + this.node = node; + } + + /** + * @return the intf + */ + public String getIntf() { + return intf; + } + + /** + * @param intf the intf to set + */ + public void setIntf(String intf) { + this.intf = intf; + } + + + public int compareTo(EndPoint arg0) { + if ((arg0.intf.compareTo(this.intf)==0) && (arg0.node.compareTo(this.node)==0)) + return 0; + else + return 1; + } + @Override + public boolean equals(Object obj) { + if ((this.node.equals(((EndPoint)obj).getNode()))&& + (this.intf.equals(((EndPoint)obj).getIntf()))) + return true; + return false; + } + + @Override + public String toString() { + // TODO Auto-generated method stub + String temp=""; + temp += "Node = " + node + " - "; + temp += "Interface = " + intf ; + return temp; + } + + + +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/IPNodeParams.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/IPNodeParams.java new file mode 100644 index 0000000000000000000000000000000000000000..6bd26cf484aaa8ed6f3407936dc94a5c351eaccb --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/IPNodeParams.java @@ -0,0 +1,23 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.tedb.elements; +import java.util.ArrayList; + +public class IPNodeParams { + ArrayList staticRoutingParams; + ArrayList bgpParams; + ArrayList isisParams; + ArrayList ospfParams; +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/Intf.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/Intf.java new file mode 100644 index 0000000000000000000000000000000000000000..23f619fa5c71a7debf843e1a2753f191aff90662 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/Intf.java @@ -0,0 +1,211 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.tedb.elements; + +import java.util.ArrayList; + +public class Intf { + + String name; + + //TODO should the address not be mapped to a layer ?? + ArrayList address; + + //TODO should the list of layers in an interface be selected using an ENUM + ArrayList layering; + + //TODO should the list of supported Counters be an ENUM + ArrayList supportedCounters; + + Boolean isPhysical; + + //TODO for a virtual interface, should there be an association with a parent interface + String parentInterfaceName; + + Boolean intfUp; + + int label; + + public int getLabel() { + return label; + } + + public void setLabel(int label) { + this.label = label; + } + + /** + * @return the name + */ + public String getName() { + return name; + } + + /** + * @param name the name to set + */ + public void setName(String name) { + this.name = name; + } + + /** + * @return the address + */ + public ArrayList getAddress() { + return address; + } + + /** + * @param address the address to set + */ + public void setAddress(ArrayList address) { + this.address = address; + } + + /** + * @return the layering + */ + public ArrayList getLayering() { + return layering; + } + + /** + * @param layering the layering to set + */ + public void setLayering(ArrayList layering) { + this.layering = layering; + } + + /** + * @return the supportedCounters + */ + public ArrayList getSupportedCounters() { + return supportedCounters; + } + + /** + * @param supportedCounters the supportedCounters to set + */ + public void setSupportedCounters(ArrayList supportedCounters) { + this.supportedCounters = supportedCounters; + } + + /** + * @return the isPhysical + */ + public Boolean isPhysical() { + return isPhysical; + } + + /** + * @param isPhysical the isPhysical to set + */ + public void setPhysical(Boolean isPhysical) { + this.isPhysical = isPhysical; + } + + /** + * @return the parentInterfaceName + */ + public String getParentInterfaceName() { + return parentInterfaceName; + } + + /** + * @param parentInterfaceName the parentInterfaceName to set + */ + public void setParentInterfaceName(String parentInterfaceName) { + this.parentInterfaceName = parentInterfaceName; + } + + public Boolean isIntfUp() { + return intfUp; + } + + public void setIntfUp(Boolean intfUp) { + this.intfUp = intfUp; + } + + @Override + public boolean equals(Object arg0) { + // TODO Auto-generated method stub + if (((Intf)arg0).getName().equals(this.name) + //&&((Intf)arg0).isPhysical() == (this.isPhysical) + //&&((Intf)arg0).getParentInterfaceName().equals(this.parentInterfaceName) + &&(this.address.size() == ((Intf)arg0).getAddress().size())){ + for (int i =0; i< address.size();i++){ + if (!((Intf)arg0).getAddress().get(i).equals(address.get(i))){ + return false; + } + } + if((supportedCounters!= null)&&(((Intf)arg0).getSupportedCounters() != null)){ + if (supportedCounters.size() == (((Intf)arg0).getSupportedCounters().size())) + for (int i =0; i< supportedCounters.size(); i++){ + if (!((Intf)arg0).getSupportedCounters().get(i).equals(supportedCounters.get(i))){ + return false; + } + } + else{ + return false; + } + } + if (((Intf)arg0).getLayering() != null){ + if (layering.size() == (((Intf)arg0).getLayering().size())){ + for (int i =0; i< layering.size(); i++){ + if (!((Intf)arg0).getLayering().get(i).equals(layering.get(i))){ + return false; + } + } + } + else + return false; + } + + } + else{ + return false; + } + return true; + + } + + public String toString(){ + String temp=""; + temp += "Name = " + name + " "; + temp += "Address = ("; + for (int i=0;i address; + boolean isPhysical; + ArrayList intfList; + int domain; + Location location; + IPNodeParams ipParams; + String parentRouter; + String layer; + String configurationMode; + String dataPathID; + /**Router Vendor Type*/ + String routerType; + String controllerIP; + String controllerPort; + /**IOS version*/ + String rotuerModel; + ArrayList unnumberedIntfList=null; + + public ArrayList getUnnumberedIntfList() { + return unnumberedIntfList; + } + public void setUnnumberedIntfList(ArrayList unnumberedIntfList) { + this.unnumberedIntfList = unnumberedIntfList; + } + public String getDataPathID() { + return dataPathID; + } + public void setDataPathID(String dpid) { + this.dataPathID = dpid; + } + public String getConfigurationMode() { + return configurationMode; + } + public void setConfigurationMode(String configurationMode) { + this.configurationMode = configurationMode; + } + public String getRouterType() { + return routerType; + } + public void setRouterType(String routerType) { + this.routerType = routerType; + } + public Object getControllerIP() { + return controllerIP; + } + public void setControllerIP(String controllerIP) { + this.controllerIP = controllerIP; + } + public Object getControllerPort() { + return controllerPort; + } + public void setControllerPort(String controllerPort) { + this.controllerPort = controllerPort; + } + public String getRotuerModel() { + return rotuerModel; + } + public void setRotuerModel(String iosVersion) { + this.rotuerModel = iosVersion; + } + /** + * @return the nodeID + */ + public String getNodeID() { + return nodeID; + } + /** + * @param nodeID the nodeID to set + */ + public void setNodeID(String nodeID) { + this.nodeID = nodeID; + } + /** + * @return the address + */ + public ArrayList getAddress() { + return address; + } + /** + * @param address the address to set + */ + public void setAddress(ArrayList address) { + this.address = address; + } + /** + * @return the isPhysical + */ + public boolean isPhysical() { + return isPhysical; + } + /** + * @param isPhysical the isPhysical to set + */ + public void setPhysical(boolean isPhysical) { + this.isPhysical = isPhysical; + } + /** + * @return the intfList + */ + public ArrayList getIntfList() { + return intfList; + } + /** + * @param intfList the intfList to set + */ + public void setIntfList(ArrayList intfList) { + this.intfList = intfList; + } + /** + * @return the domain + */ + public int getDomain() { + return domain; + } + /** + * @param domain the domain to set + */ + public void setDomain(int domain) { + this.domain = domain; + } + /** + * @return the location + */ + public Location getLocation() { + return location; + } + /** + * @param location the location to set + */ + public void setLocation(Location location) { + this.location = location; + } + /** + * @return the ipParams + */ + public IPNodeParams getIpParams() { + return ipParams; + } + /** + * @param ipParams the ipParams to set + */ + public void setIpParams(IPNodeParams ipParams) { + this.ipParams = ipParams; + } + /** + * @return the parentRouter + */ + public String getParentRouter() { + return parentRouter; + } + /** + * @param parentRouter the parentRouter to set + */ + public void setParentRouter(String parentRouter) { + this.parentRouter = parentRouter; + } + + public String getLayer() { + return layer; + } + public void setLayer(String layer) { + this.layer = layer; + } + public String toString(){ + String temp = ""; + temp += "NodeID = " + nodeID +" " ; + if (location!=null) + temp += "Location = (" + location.xCoord + ", " + location.yCoord + ")" + " " ; + temp+= "Addresses ("; + for (int i=0;i (); + address = new ArrayList (); + } + +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/OspfParams.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/OspfParams.java new file mode 100644 index 0000000000000000000000000000000000000000..3e383487e9eb8084e9eca04e416ecc05551eb3f6 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/OspfParams.java @@ -0,0 +1,19 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.tedb.elements; + +public class OspfParams { + +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/Path.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/Path.java new file mode 100644 index 0000000000000000000000000000000000000000..1ff00d3c662a35a346e40494e210c82114426e2f --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/Path.java @@ -0,0 +1,67 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.tedb.elements; + +import java.util.ArrayList; + +public class Path { + //TODO change to enumeration with values working/protection + String pathType; + + ArrayList links; + + public String toString(){ + String temp = ""; + if (links!=null){ + for (int i=0;i" + links.get(i).getDest() ; + } + return temp; + } + + public Path(ArrayList links){ + this.links = links; + } + + /** + * @return the pathType + */ + public String getPathType() { + return pathType; + } + + /** + * @param pathType the pathType to set + */ + public void setPathType(String pathType) { + this.pathType = pathType; + } + + /** + * @return the links + */ + public ArrayList getLinks() { + return links; + } + + /** + * @param links the links to set + */ + public void setLinks(ArrayList links) { + this.links = links; + } + + +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/PhyLinkParams.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/PhyLinkParams.java new file mode 100644 index 0000000000000000000000000000000000000000..7c6e003c8a6b4a6cd5e5613cb4cce3e40576f003 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/PhyLinkParams.java @@ -0,0 +1,55 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.tedb.elements; + +public class PhyLinkParams { + //Create parameters for Physical Link + double transmissionDelay; + + boolean isActive; + + public PhyLinkParams(double delay, boolean active){ + isActive = active; + transmissionDelay = delay; + } + + /** + * @return the transmissionDelay + */ + public double getTransmissionDelay() { + return transmissionDelay; + } + + /** + * @param transmissionDelay the transmissionDelay to set + */ + public void setTransmissionDelay(double transmissionDelay) { + this.transmissionDelay = transmissionDelay; + } + + /** + * @return the isActive + */ + public boolean isActive() { + return isActive; + } + + /** + * @param isActive the isActive to set + */ + public void setActive(boolean isActive) { + this.isActive = isActive; + } +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/RouterDesc.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/RouterDesc.java new file mode 100644 index 0000000000000000000000000000000000000000..4bfc3e9fa718c3f029f66601b92ea92433839672 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/RouterDesc.java @@ -0,0 +1,133 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.tedb.elements; + +import java.net.Inet4Address; + +public class RouterDesc { + + /**ID for the router*/ + protected String routerID; + + /**Description of the physical Location */ + private String phyDesc; + + /**Addres for the configuration of the router*/ + private Inet4Address managementAddress; + + private int configurationPort; + + /**Authentication Info for configuring the router*/ + private AuthInfo authInfo; + + /**Router Vendor Type*/ + private String routerType; + + /**IOS version*/ + private String iosVersion; + + private String macAddress; + /** + * @return the routerID + */ + public String getRouterID() { + return routerID; + } + /** + * @param routerID the routerID to set + */ + public void setRouterID(String routerID) { + this.routerID = routerID; + } + /** + * @return the phyDesc + */ + public String getPhyDesc() { + return phyDesc; + } + /** + * @param phyDesc the phyDesc to set + */ + public void setPhyDesc(String phyDesc) { + this.phyDesc = phyDesc; + } +/* *//** + * @return the confAddress + *//* + public Address getConfAddress() { + return confAddress; + } + *//** + * @param confAddress the confAddress to set + *//* + public void setConfAddress(Address confAddress) { + this.confAddress = confAddress; + }*/ + /** + * @return the authInfo + */ + public AuthInfo getAuthInfo() { + return authInfo; + } + /** + * @param authInfo the authInfo to set + */ + public void setAuthInfo(AuthInfo authInfo) { + this.authInfo = authInfo; + } + /** + * @return the routerType + */ + public String getRouterType() { + return routerType; + } + /** + * @param routerType the routerType to set + */ + public void setRouterType(String routerType) { + this.routerType = routerType; + } + /** + * @return the iosVersion + */ + public String getIosVersion() { + return iosVersion; + } + /** + * @param iosVersion the iosVersion to set + */ + public void setIosVersion(String iosVersion) { + this.iosVersion = iosVersion; + } + public Inet4Address getManagementAddress() { + return managementAddress; + } + public void setManagementAddress(Inet4Address managementAddress) { + this.managementAddress = managementAddress; + } + public int getConfigurationPort() { + return configurationPort; + } + public void setConfigurationPort(int configurationPort) { + this.configurationPort = configurationPort; + } + public String getMacAddress() { + return macAddress; + } + public void setMacAddress(String macAddress) { + this.macAddress = macAddress; + } + +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/RouterInfoPM.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/RouterInfoPM.java new file mode 100644 index 0000000000000000000000000000000000000000..a967ef88ff71657545bdbc3cdc5ed11528692c03 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/RouterInfoPM.java @@ -0,0 +1,243 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.tedb.elements; + +import java.net.Inet4Address; +import java.net.UnknownHostException; +import java.util.LinkedList; + +/** + * + * @author Anonimo + * + */ + +public class RouterInfoPM extends RouterDesc +{ + private String configurationMode; + private Inet4Address oppositeInterface; + private String controllerId; + private String controllerIP; + private String controllerPort; + private String controllerType; + private String routerModel; + private String routerType_Son; + private String layer; + private Intf srcIntf; + private String hardware; + private LinkedList reachable_nodes; + private Intf dstIntf; + + public void logAllInfo(){ + System.out.println("configurationMode: "+this.getConfigurationMode()+" Reachable_nodes: "+this.getReachable_nodes()+" SrcIntf: "+this.getSrcIntf()+" DstIntf: "+this.getDstIntf()+" OppositeInterface: "+this.getOppositeInterface()+" RouterModel: "+this.getRouterModel()+" Layer: "+this.getLayer()+" getControllerId: "+this.getControllerId()+" getControllerIP: "+this.getControllerIP()+" ControllerPort: "+this.getControllerPort()+" Hardware: "+this.getHardware()+" ControllerType: "+this.getControllerType()); + } + + public LinkedList getReachable_nodes() + { + return this.reachable_nodes; + } + + public void setReachable_nodes(LinkedList reachable_nodes) { + this.reachable_nodes = reachable_nodes; + } + + public Intf getSrcIntf() { + return this.srcIntf; + } + + public void setSrcIntf(Intf srcIntf) { + this.srcIntf = srcIntf; + } + + public Intf getDstIntf() { + return this.dstIntf; + } + + public void setDstIntf(Intf dstIntf) { + this.dstIntf = dstIntf; + } + + public RouterInfoPM() + { + } + + public RouterInfoPM(String id) + { + this.routerID = id; + } + + public String getConfigurationMode() { + return this.configurationMode; + } + + public void setConfigurationMode(String configurationMode) { + this.configurationMode = configurationMode; + } + + public Inet4Address getOppositeInterface() { + return this.oppositeInterface; + } + + public void setOppositeInterface(Inet4Address oppositeInterface) { + this.oppositeInterface = oppositeInterface; + } + + public void fromNode(Node node) { + this.configurationMode = node.getConfigurationMode(); + this.routerType_Son = node.getRouterType(); + this.routerModel = node.getRotuerModel(); + this.layer = node.getLayer(); + setConfigurationMode(node.getConfigurationMode()); + setRouterID(node.getNodeID()); + try + { + setManagementAddress((Inet4Address)Inet4Address.getByName((String)node.getAddress().get(0))); + } + catch (UnknownHostException e) { + e.printStackTrace(); + } + } + + public String getRouterModel() { + return this.routerModel; + } + + public void setRouterModel(String routerModel) { + this.routerModel = routerModel; + } + + public String getRouterType() { + return this.routerType_Son; + } + + public void setRouterType(String routerType) { + this.routerType_Son = routerType; + } + + public String getLayer() { + return this.layer; + } + + public void setLayer(String layer) { + this.layer = layer; + } + + public int hashCode() + { + int prime = 31; + int result = 1; + if (this.routerID == null) + { + return 0; + } + String idAux = this.routerID.substring(0, 17); + + result = 31 * result + (idAux == null ? 0 : idAux.hashCode()); + + return result; + } + + public boolean equals(Object obj) + { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + RouterInfoPM other = (RouterInfoPM)obj; + + if ((this.routerID.contains(other.getRouterID())) || (other.getRouterID().contains(this.routerID))) + { + return true; + } + + if (this.routerID == null) + { + if (other.routerID != null) + { + return false; + } + } + else if (!this.routerID.equals(other.routerID)) + { + return false; + } + + return true; + } + + public String toString() + { + if (this.oppositeInterface != null) + return "[RouterInfoPM]->" + this.routerID + " [OppositeInterface]->" + this.oppositeInterface; + return "[RouterInfoPM]->" + this.routerID; + } + + public void setControllerIdentifier(String ip, String port) + { + this.controllerId = getUniqueIdentifierForController(ip, port); + } + + public void setControllerIP(String ip) + { + this.controllerIP = ip; + } + + public void setControllerPort(String port) + { + this.controllerPort = port; + } + + public String getControllerId() + { + return this.controllerId; + } + + public String getControllerIP() + { + return this.controllerIP; + } + + public String getControllerPort() + { + return this.controllerPort; + } + + private String getUniqueIdentifierForController(String ip, String port) + { + return ip + ":" + port; + } + + public String getHardware() + { + return this.hardware; + } + + public void setHardware(String hardware) + { + this.hardware = hardware; + } + + public String getControllerType() + { + return this.controllerType; + } + + public void setControllerType(String controllerType) + { + this.controllerType = controllerType; + } +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/Service.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/Service.java new file mode 100644 index 0000000000000000000000000000000000000000..423b71ee3af1a531982de1faf46b5b234e6d3e03 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/Service.java @@ -0,0 +1,177 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.tedb.elements; + +import java.util.ArrayList; + +public class Service { + + //TODO change to enumeration with possible values active/potential + String status; + + //TODO change to enumeration with possible services like Ethernet/OTN etc. (or based on the layering available in interfaces + String serviceType; + + Bandwidth bw; + + //Change to Enumeration based on protection types + String protection; + + EndPoint source; + + EndPoint dest; + + Path servicePath; + + ArrayList srlg; + + String baseEncapsulation; + + /** + * @return the status + */ + public String getStatus() { + return status; + } + + public String toString(){ + String temp = ""; + temp += "\n\t ServiceType = " + serviceType; + temp += "\n\t Status = " + status; + temp += "\n\t Protection = " + protection; + temp += "\n\t Path = " + servicePath; + temp += "\n\t Bandwidth = " + bw; + return temp; + } + + /** + * @param status the status to set + */ + public void setStatus(String status) { + this.status = status; + } + + /** + * @return the serviceType + */ + public String getServiceType() { + return serviceType; + } + + /** + * @param serviceType the serviceType to set + */ + public void setServiceType(String serviceType) { + this.serviceType = serviceType; + } + + /** + * @return the bw + */ + public Bandwidth getBw() { + return bw; + } + + /** + * @param bw the bw to set + */ + public void setBw(Bandwidth bw) { + this.bw = bw; + } + + /** + * @return the protection + */ + public String getProtection() { + return protection; + } + + /** + * @param protection the protection to set + */ + public void setProtection(String protection) { + this.protection = protection; + } + + /** + * @return the source + */ + public EndPoint getSource() { + return source; + } + + /** + * @param source the source to set + */ + public void setSource(EndPoint source) { + this.source = source; + } + + /** + * @return the dest + */ + public EndPoint getDest() { + return dest; + } + + /** + * @param dest the dest to set + */ + public void setDest(EndPoint dest) { + this.dest = dest; + } + + /** + * @return the servicePath + */ + public Path getServicePath() { + return servicePath; + } + + /** + * @param servicePath the servicePath to set + */ + public void setServicePath(Path servicePath) { + this.servicePath = servicePath; + } + + /** + * @return the srlg + */ + public ArrayList getSrlg() { + return srlg; + } + + /** + * @param srlg the srlg to set + */ + public void setSrlg(ArrayList srlg) { + this.srlg = srlg; + } + + /** + * @return the baseEncapsulation + */ + public String getBaseEncapsulation() { + return baseEncapsulation; + } + + /** + * @param baseEncapsulation the baseEncapsulation to set + */ + public void setBaseEncapsulation(String baseEncapsulation) { + this.baseEncapsulation = baseEncapsulation; + } +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/StaticRoutingParams.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/StaticRoutingParams.java new file mode 100644 index 0000000000000000000000000000000000000000..c6db597fcfe26d408932acb461d4c8be0f747276 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/StaticRoutingParams.java @@ -0,0 +1,19 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 eu.teraflow.tid.tedb.elements; + +public class StaticRoutingParams { + +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/proto/grpcService.proto b/src/bgpls_speaker/service/java/netphony-topology/src/main/proto/grpcService.proto new file mode 100644 index 0000000000000000000000000000000000000000..ec8accd8b29b84bc4493bf2bebdfac04cd19e093 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/proto/grpcService.proto @@ -0,0 +1,80 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// +// 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. + +syntax = "proto3"; +package src.main.proto; + +message updateRequest { + + string addressFamilyID = 1; + string nextHop = 2; + string asPathSegment = 3; + + repeated nodeInfo node = 4; + // repeated : se da la posibilidad de mandar 0 o varios + repeated linkInfo link = 5; + + } + +message nodeInfo{ + string nodeName=1; + string igpID=2; + string bgplsID=3; + int32 asID=4; + string learntFrom = 5; +} + +message linkInfo{ + + string remoteID=1; + string localID=2; + + string remoteIPv4ID=3; + string localIPv4ID=4; + + NodeDescriptors local=5; + NodeDescriptors remote=6; + + float availableBw=7; + float residualBw = 8; + float utilized = 9; + + float maxLinkDelay = 10; + float minLinkDelay = 11; + float delayVariation = 12; + float delay = 13; + + int32 TEDefaultMetric = 14; + string adjacencySid = 15; + + string learntFrom = 16; + +} + +message NodeDescriptors{ + + string asNumber=1; + string bgplsID=2; + +} + +message updateResponse { + string ack = 1; +} + +// Defining a Service, a Service can have multiple RPC operations +service updateService { + // MODIFY HERE: Update the return to streaming return. + rpc update(updateRequest) returns (updateResponse); +} \ No newline at end of file diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/TM_COP_example1/TMConfCOP.xml b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/TM_COP_example1/TMConfCOP.xml new file mode 100644 index 0000000000000000000000000000000000000000..e048daf06f442c06652e1f16fb0b64d2d1ec14b1 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/TM_COP_example1/TMConfCOP.xml @@ -0,0 +1,27 @@ + + + + + localhost + 5008 + + 8089 + + + TM + fromXML + target/TM_COP_example1/network1.xml + + diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/TM_COP_example1/network1.xml b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/TM_COP_example1/network1.xml new file mode 100644 index 0000000000000000000000000000000000000000..ab5cd50d99ef306f8bd10a9fe482a89423fab6df --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/TM_COP_example1/network1.xml @@ -0,0 +1,220 @@ + + + + + + + + + 0.0.0.1 + + 172.16.101.0 + 29 + + + + 172.16.101.101 + + + 172.16.101.102 + + + 172.16.101.103 + + + + 172.16.101.104 + + + + 99 + + 23 + 43 + + 1 + 102 + 802 + 500 + 436 + + + + + 172.16.101.101 + 1 + + + 172.16.101.104 + 1 + + 3.35 + 99 + + 23 + 43 + + 1 + 102 + 802 + 500 + 436 + + + + 172.16.101.104 + 1 + + + 172.16.101.101 + 1 + + + + + 172.16.101.101 + 2 + + + 172.16.101.102 + 1 + + + + + 172.16.101.102 + 1 + + + 172.16.101.101 + 2 + + + + + 172.16.101.102 + 2 + + + 172.16.101.103 + 1 + + 102103 + + + + 172.16.101.103 + 1 + + + 172.16.101.102 + 2 + + + + + 172.16.101.103 + 2 + + + 172.16.101.104 + 2 + + + + + 172.16.101.104 + 2 + + + 172.16.101.103 + 2 + + + + + + 172.16.101.102 + 3 + + + 172.16.101.104 + 3 + + + + + 172.16.101.104 + 3 + + + 172.16.101.102 + 3 + + + + + + 172.16.101.104 + 13 + + + 172.16.102.101 + 11 + + 1 + + + + + + + + + + 0.0.0.2 + + 172.16.102.0 + 29 + + + + + https://UC3MController.5Gex.com/url + 222 + 222Gbyte + 222Tbyte + + + + 172.16.102.101 + + + 172.16.102.102 + + + + 172.16.102.101 + 14 + + + 172.16.102.102 + 13 + + 2 + + + + diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/TM_TAPI_example1/TMConfTAPI.xml b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/TM_TAPI_example1/TMConfTAPI.xml new file mode 100644 index 0000000000000000000000000000000000000000..26b41837f925b217c2799445739f57a047522660 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/TM_TAPI_example1/TMConfTAPI.xml @@ -0,0 +1,27 @@ + + + + + localhost + 5008 + + 8089 + + + TM + fromXML + target/TM_TAPI_example1/network1.xml + + diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/TM_TAPI_example1/network1.xml b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/TM_TAPI_example1/network1.xml new file mode 100644 index 0000000000000000000000000000000000000000..1ddfdb1ab15613b55e0afe7c22e88c617dc9f2c9 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/TM_TAPI_example1/network1.xml @@ -0,0 +1,171 @@ + + + + + + + + + 0.0.0.1 + + 172.16.101.0 + 29 + + + + 172.16.101.101 + + + 172.16.101.102 + + + 172.16.101.103 + + + + 172.16.101.104 + + + + 99 + + 23 + 43 + + 1 + 102 + 802 + 500 + 436 + + + + + 172.16.101.101 + 1 + + + 172.16.101.104 + 1 + + 3.35 + 99 + + 23 + 43 + + 1 + 102 + 802 + 500 + 436 + + + + 172.16.101.104 + 1 + + + 172.16.101.101 + 1 + + + + + 172.16.101.101 + 2 + + + 172.16.101.102 + 1 + + + + + 172.16.101.102 + 1 + + + 172.16.101.101 + 2 + + + + + 172.16.101.102 + 2 + + + 172.16.101.103 + 1 + + 102103 + + + + 172.16.101.103 + 1 + + + 172.16.101.102 + 2 + + + + + 172.16.101.103 + 2 + + + 172.16.101.104 + 2 + + + + + 172.16.101.104 + 2 + + + 172.16.101.103 + 2 + + + + + + 172.16.101.102 + 3 + + + 172.16.101.104 + 3 + + + + + 172.16.101.104 + 3 + + + 172.16.101.102 + 3 + + + + + + + diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/bgpls_example1/BGP4Parameters_1.xml b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/bgpls_example1/BGP4Parameters_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..fa47d6172dfa24ace6602daab8d1cf29646ce43c --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/bgpls_example1/BGP4Parameters_1.xml @@ -0,0 +1,67 @@ + + + + + + 11179 + 10.95.205.12 + + 1111 + + + localhost + true + false + 22179 + + + BGP4Parser.log + BGP4Client.log + BGP4Server.log + + true + + 40000 + false + + + 180 + + 4 + + 1 + + + + true + + 5000 + + true + + fromXML + + target/bgpls_example1/network1.xml + + + + 0.0.0.0 + diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/bgpls_example1/BGP4Parameters_2.xml b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/bgpls_example1/BGP4Parameters_2.xml new file mode 100644 index 0000000000000000000000000000000000000000..a5ceea7e7921709b1a758a11f707200b4cec4506 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/bgpls_example1/BGP4Parameters_2.xml @@ -0,0 +1,66 @@ + + + + + + 22179 + 1.1.1.1 + + 1112 + + + localhost + false + true + 11179 + + + + BGP4Parser2.log + BGP4Client2.log + BGP4Server2.log + + true + + 40000 + true + + + 180 + + 4 + + 1 + + + + false + + true + + fromBGP + + + + + + 0.0.0.0 + diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/bgpls_example1/network1.xml b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/bgpls_example1/network1.xml new file mode 100644 index 0000000000000000000000000000000000000000..ab5cd50d99ef306f8bd10a9fe482a89423fab6df --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/bgpls_example1/network1.xml @@ -0,0 +1,220 @@ + + + + + + + + + 0.0.0.1 + + 172.16.101.0 + 29 + + + + 172.16.101.101 + + + 172.16.101.102 + + + 172.16.101.103 + + + + 172.16.101.104 + + + + 99 + + 23 + 43 + + 1 + 102 + 802 + 500 + 436 + + + + + 172.16.101.101 + 1 + + + 172.16.101.104 + 1 + + 3.35 + 99 + + 23 + 43 + + 1 + 102 + 802 + 500 + 436 + + + + 172.16.101.104 + 1 + + + 172.16.101.101 + 1 + + + + + 172.16.101.101 + 2 + + + 172.16.101.102 + 1 + + + + + 172.16.101.102 + 1 + + + 172.16.101.101 + 2 + + + + + 172.16.101.102 + 2 + + + 172.16.101.103 + 1 + + 102103 + + + + 172.16.101.103 + 1 + + + 172.16.101.102 + 2 + + + + + 172.16.101.103 + 2 + + + 172.16.101.104 + 2 + + + + + 172.16.101.104 + 2 + + + 172.16.101.103 + 2 + + + + + + 172.16.101.102 + 3 + + + 172.16.101.104 + 3 + + + + + 172.16.101.104 + 3 + + + 172.16.101.102 + 3 + + + + + + 172.16.101.104 + 13 + + + 172.16.102.101 + 11 + + 1 + + + + + + + + + + 0.0.0.2 + + 172.16.102.0 + 29 + + + + + https://UC3MController.5Gex.com/url + 222 + 222Gbyte + 222Tbyte + + + + 172.16.102.101 + + + 172.16.102.102 + + + + 172.16.102.101 + 14 + + + 172.16.102.102 + 13 + + 2 + + + + diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf1wayTest/BGPLS1.xml b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf1wayTest/BGPLS1.xml new file mode 100644 index 0000000000000000000000000000000000000000..14c471570c0f1a26829bb3816f9ac7a7980e0408 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf1wayTest/BGPLS1.xml @@ -0,0 +1,74 @@ + + + + + + 179 + 10.0.0.2 + + 1111 + + + + 10.0.0.1 + true + false + 1790 + + + BGP4Parser-BGPLS1.log + BGP4Client-BGPLS1.log + BGP4Server-BGPLS1.log + + true + true + + 40000 + false + + + 180 + + 4 + + 65522 + + + + true + + 5000 + + true + + fromBGP + + + + + + 0.0.0.0 + diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf1wayTest/BGPLS2.xml b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf1wayTest/BGPLS2.xml new file mode 100644 index 0000000000000000000000000000000000000000..fe2668c5dbdeb8b0212466c1b769d9edc9882029 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf1wayTest/BGPLS2.xml @@ -0,0 +1,80 @@ + + + + + + 22179 + 2.2.2.2 + + 1112 + + + + localhost + true + false + 11179 + + + localhost + false + true + 33179 + + + BGP4Parser-BGPLS2.log + BGP4Client-BGPLS2.log + BGP4Server-BGPLS2.log + + true + true + + 40000 + false + + + 180 + + 4 + + 1 + + + + true + + 5000 + + true + + fromBGP + + + + + + 0.0.0.0 + diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf1wayTest/BGPLS3.xml b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf1wayTest/BGPLS3.xml new file mode 100644 index 0000000000000000000000000000000000000000..37913a907b1b740adae20c75c7ae639d383fdf01 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf1wayTest/BGPLS3.xml @@ -0,0 +1,80 @@ + + + + + + 33179 + 3.3.3.3 + + 1113 + + + + localhost + true + false + 11179 + + + localhost + true + false + 22179 + + + BGP4Parser-BGPLS3.log + BGP4Client-BGPLS3.log + BGP4Server-BGPLS3.log + + true + true + + 40000 + false + + + 180 + + 4 + + 1 + + + + true + + 5000 + + true + + fromBGP + + + + + + 0.0.0.0 + diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf1wayTest/TM1.xml b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf1wayTest/TM1.xml new file mode 100644 index 0000000000000000000000000000000000000000..2f48b1c27f183f14c0ece5c057d3b4e26f92fcd4 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf1wayTest/TM1.xml @@ -0,0 +1,41 @@ + + + + + localhost + 5001 + + + TM + target/conf1wayTest/network1.xml + 1.1.1.1> + + + initFromXML + + + + 8087 + + + True + True + target/conf1wayTest/BGPLS1.xml + + + diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf1wayTest/TM2.xml b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf1wayTest/TM2.xml new file mode 100644 index 0000000000000000000000000000000000000000..50bcc73a671a3e279b0cdfcd4d479889fae385bb --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf1wayTest/TM2.xml @@ -0,0 +1,41 @@ + + + + + localhost + 5002 + + + TM + target/conf1wayTest/network2.xml + 2.2.2.2> + + + initFromXML + + + + 8088 + + + True + True + target/conf1wayTest/BGPLS2.xml + + + diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf1wayTest/TM3.xml b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf1wayTest/TM3.xml new file mode 100644 index 0000000000000000000000000000000000000000..fa2eed81180fa403d9bfb5ef669b3b27802ee3c1 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf1wayTest/TM3.xml @@ -0,0 +1,41 @@ + + + + + localhost + 5003 + + + TM + target/conf1wayTest/network3.xml + 3.3.3.3> + + + initFromXML + + + + 8089 + + + True + True + target/conf1wayTest/BGPLS3.xml + + + diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf1wayTest/TMConfiguration_BGPLSreader_UNIFYwriter.xml b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf1wayTest/TMConfiguration_BGPLSreader_UNIFYwriter.xml new file mode 100644 index 0000000000000000000000000000000000000000..7e14e7a008b9cad875a83a03fda1269b9410533b --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf1wayTest/TMConfiguration_BGPLSreader_UNIFYwriter.xml @@ -0,0 +1,40 @@ + + + + + localhost + 5001 + + + + initFromXML + + + localhost + 9876 + + + 8088 + + + True + False + conf/TM1.xml + + + diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf1wayTest/network1.xml b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf1wayTest/network1.xml new file mode 100644 index 0000000000000000000000000000000000000000..700e9b9da1cf882a42d02b17995218a599d6bc7e --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf1wayTest/network1.xml @@ -0,0 +1,233 @@ + + + + + + + + + 0.0.0.1 + + 172.16.101.0 + 24 + + + + + 172.16.101.101 + + + 172.16.101.102 + + + 172.16.101.103 + + + 172.16.101.104 + + + + 172.16.101.101 + 1 + + + 172.16.101.104 + 1 + + 99 + + 23 + 250 + + + + + 172.16.101.104 + 1 + + + 172.16.101.101 + 1 + + 99 + + 23 + 250 + + + + + 172.16.101.101 + 2 + + + 172.16.101.102 + 1 + + 3000 + + 150 + 4000 + + + + + 172.16.101.102 + 1 + + + 172.16.101.101 + 2 + + 3000 + + 150 + 4000 + + + + + 172.16.101.102 + 2 + + + 172.16.101.103 + 1 + + 1003 + + 150 + 4000 + + + + + 172.16.101.103 + 1 + + + 172.16.101.102 + 2 + + 1003 + + 150 + 4000 + + + + + 172.16.101.103 + 2 + + + 172.16.101.104 + 2 + + 323 + + 150 + 4000 + + + + + 172.16.101.104 + 2 + + + 172.16.101.103 + 2 + + 323 + + 150 + 4000 + + + + + 172.16.101.102 + 3 + + + 172.16.101.104 + 3 + + 2232 + + 150 + 4000 + + + + + 172.16.101.104 + 3 + + + 172.16.101.102 + 3 + + 2232 + + 150 + 4000 + + + + + 172.16.101.104 + 13 + + + 172.16.102.101 + 11 + + 102 + + + + 172.16.101.103 + 13 + + + 172.16.102.102 + 11 + + 230 + + + + + + + + + + 0.0.0.2 + + 172.16.102.0 + 24 + + + 172.16.102.101 + + + 172.16.102.102 + + + + \ No newline at end of file diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf1wayTest/network2.xml b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf1wayTest/network2.xml new file mode 100644 index 0000000000000000000000000000000000000000..db0918d26eb30303edc6452a0069055a2ed0f946 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf1wayTest/network2.xml @@ -0,0 +1,274 @@ + + + + + + + + + 0.0.0.2 + + 172.16.102.0 + 24 + + + + https://openstack2.5Gex.com/url + 200 + 200GByte + 200TByte + + + + 172.16.102.101 + + + 172.16.102.102 + + + 172.16.102.103 + + + 172.16.102.104 + + + + 172.16.102.101 + 1 + + + 172.16.102.104 + 1 + + 99 + + 23 + 250 + + + + + 172.16.102.104 + 1 + + + 172.16.102.101 + 1 + + 99 + + 23 + 250 + + + + + 172.16.102.101 + 2 + + + 172.16.102.102 + 1 + + 3000 + + 150 + 4000 + + + + + 172.16.102.102 + 1 + + + 172.16.102.101 + 2 + + 3000 + + 150 + 4000 + + + + + 172.16.102.102 + 2 + + + 172.16.102.103 + 1 + + 1003 + + 150 + 4000 + + + + + 172.16.102.103 + 1 + + + 172.16.102.102 + 2 + + 1003 + + 150 + 4000 + + + + + 172.16.102.103 + 2 + + + 172.16.102.104 + 2 + + 323 + + 150 + 4000 + + + + + 172.16.102.104 + 2 + + + 172.16.102.103 + 2 + + 323 + + 150 + 4000 + + + + + 172.16.102.102 + 3 + + + 172.16.102.104 + 3 + + 2232 + + 150 + 4000 + + + + + 172.16.102.104 + 3 + + + 172.16.102.102 + 3 + + 2232 + + 150 + 4000 + + + + + 172.16.102.101 + 13 + + + 172.16.101.104 + 11 + + 102 + + + + 172.16.102.102 + 13 + + + 172.16.101.103 + 11 + + 230 + + + + 172.16.102.104 + 13 + + + 172.16.103.101 + 11 + + 102 + + + + 172.16.102.103 + 13 + + + 172.16.103.102 + 11 + + 230 + + + + + + + 0.0.0.1 + + 172.16.101.0 + 24 + + + 172.16.101.103 + + + 172.16.101.104 + + + + + + 0.0.0.3 + + 172.16.103.0 + 24 + + + 172.16.103.101 + + + 172.16.103.102 + + + + + \ No newline at end of file diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf1wayTest/network3.xml b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf1wayTest/network3.xml new file mode 100644 index 0000000000000000000000000000000000000000..6ab738a970e4f023e5790012cd235d358c35d380 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf1wayTest/network3.xml @@ -0,0 +1,239 @@ + + + + + + + + + 0.0.0.3 + + 172.16.103.0 + 24 + + + + https://openstack3.5Gex.com/url + 300 + 300Gbyte + 300Tbyte + + + + 172.16.103.101 + + + 172.16.103.102 + + + 172.16.103.103 + + + 172.16.103.104 + + + + 172.16.103.101 + 1 + + + 172.16.103.104 + 1 + + 99 + + 23 + 250 + + + + + 172.16.103.104 + 1 + + + 172.16.103.101 + 1 + + 99 + + 23 + 250 + + + + + 172.16.103.101 + 2 + + + 172.16.103.102 + 1 + + 3000 + + 150 + 4000 + + + + + 172.16.103.102 + 1 + + + 172.16.103.101 + 2 + + 3000 + + 150 + 4000 + + + + + 172.16.103.102 + 2 + + + 172.16.103.103 + 1 + + 1003 + + 150 + 4000 + + + + + 172.16.103.103 + 1 + + + 172.16.103.102 + 2 + + 1003 + + 150 + 4000 + + + + + 172.16.103.103 + 2 + + + 172.16.103.104 + 2 + + 323 + + 150 + 4000 + + + + + 172.16.103.104 + 2 + + + 172.16.103.103 + 2 + + 323 + + 150 + 4000 + + + + + 172.16.103.102 + 3 + + + 172.16.103.104 + 3 + + 2232 + + 150 + 4000 + + + + + 172.16.103.104 + 3 + + + 172.16.103.102 + 3 + + 2232 + + 150 + 4000 + + + + + 172.16.103.101 + 13 + + + 172.16.102.104 + 11 + + 102 + + + + 172.16.103.102 + 13 + + + 172.16.102.103 + 11 + + 230 + + + + + + + + + + 0.0.0.2 + + 172.16.102.0 + 24 + + + 172.16.102.103 + + + 172.16.102.104 + + + + \ No newline at end of file diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf2waysReal/BGPLS1_2way.xml b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf2waysReal/BGPLS1_2way.xml new file mode 100644 index 0000000000000000000000000000000000000000..09258d6385c0053ed5821c956defa266929875b1 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf2waysReal/BGPLS1_2way.xml @@ -0,0 +1,68 @@ + + + + + + 179 + 172.17.11.201 + + 1111 + + + 172.17.11.202 + true + true + 179 + + + BGP4Parser-BGPLS1.log + BGP4Client-BGPLS1.log + BGP4Server-BGPLS1.log + + true + false + + 40000 + false + + + 180 + + 4 + + 1 + + + + true + + 5000 + + true + + fromBGP + + + + + + 0.0.0.0 + diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf2waysReal/BGPLS2_2way.xml b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf2waysReal/BGPLS2_2way.xml new file mode 100644 index 0000000000000000000000000000000000000000..482e8410e83ca2f17fbece53bd7fbd884e852c64 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf2waysReal/BGPLS2_2way.xml @@ -0,0 +1,74 @@ + + + + + + 179 + 172.17.11.202 + + 1112 + + + 172.17.11.201 + true + true + 179 + + + 172.17.11.203 + true + true + 179 + + + BGP4Parser-BGPLS2.log + BGP4Client-BGPLS2.log + BGP4Server-BGPLS2.log + + true + false + + 40000 + false + + + 180 + + 4 + + 2 + + + + true + + 5000 + + true + + fromBGP + + + + + + 0.0.0.0 + diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf2waysReal/BGPLS3_2way.xml b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf2waysReal/BGPLS3_2way.xml new file mode 100644 index 0000000000000000000000000000000000000000..09cc365fa9710987308ba5be99472337ccbfe2f0 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf2waysReal/BGPLS3_2way.xml @@ -0,0 +1,68 @@ + + + + + + 179 + 172.17.11.203 + + 1113 + + + 172.17.11.202 + true + true + 179 + + + BGP4Parser-BGPLS3.log + BGP4Client-BGPLS3.log + BGP4Server-BGPLS3.log + + true + false + + 40000 + false + + + 180 + + 4 + + 3 + + + + true + + 5000 + + true + + fromBGP + + + + + + 0.0.0.0 + diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf2waysReal/README b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf2waysReal/README new file mode 100644 index 0000000000000000000000000000000000000000..000493f681b3b0bc339f7be17181796a8e0dd8e0 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf2waysReal/README @@ -0,0 +1,37 @@ +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +# 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. + +#put the conf folder in the root directory of topology project +mv conf/ ~/netphony-topology/ + +cd ~/netphony-topology/ + +#update the BGP4SessionsInformation.java file to permit multiple connection with the same ip address +cp conf/BGP4SessionsInformation.java src/main/java/es/tid/bgp/bgp4Peer/bgp4session/ + +#compile again the project +mvn clean package -P generate-full-jar -P bgp-ls-speaker assembly:single + +#run the Topology Module for MdO1, only a TM can be present within a single VM +java -jar target/topology-1.3.2-shaded.jar conf/TMConfiguration_BGPLSreader_UNIFYwriter.xml + +#run the BGPLS speaker for MdO1 +java -Dlog4j.configurationFile=log4j2.xml -jar target/bgp-ls-speaker-jar-with-dependencies.jar conf/BGPLS1.xml + +#run the BGPLS speaker for MdO2 +java -Dlog4j.configurationFile=log4j2.xml -jar target/bgp-ls-speaker-jar-with-dependencies.jar conf/BGPLS2.xml + +#run the BGPLS speaker for MdO3 +java -Dlog4j.configurationFile=log4j2.xml -jar target/bgp-ls-speaker-jar-with-dependencies.jar conf/BGPLS3.xml + diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf2waysReal/TM1.xml b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf2waysReal/TM1.xml new file mode 100644 index 0000000000000000000000000000000000000000..21fe573ee7f1dcdc52ecd7b633bb77169fabc692 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf2waysReal/TM1.xml @@ -0,0 +1,41 @@ + + + + + localhost + 5001 + + + TM + target/conf2waysReal/network1.xml + 172.17.11.201 + + + initFromXML + + + + 8088 + + + True + True + target/conf2waysReal/BGPLS1_2way.xml + + + diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf2waysReal/TM2.xml b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf2waysReal/TM2.xml new file mode 100644 index 0000000000000000000000000000000000000000..5fec256fce82b7328572ffdde605ff49f553be52 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf2waysReal/TM2.xml @@ -0,0 +1,41 @@ + + + + + localhost + 5001 + + + TM + target/conf2waysReal/network2.xml + 172.17.11.202 + + + initFromXML + + + + 8088 + + + True + True + target/conf2waysReal/BGPLS2_2way.xml + + + diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf2waysReal/TM3.xml b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf2waysReal/TM3.xml new file mode 100644 index 0000000000000000000000000000000000000000..4c7281a242ed18f977107fd4bf10d464c312059e --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf2waysReal/TM3.xml @@ -0,0 +1,41 @@ + + + + + localhost + 5001 + + + TM + target/conf2waysReal/network3.xml + 172.17.11.203 + + + initFromXML + + + + 8088 + + + True + True + target/conf2waysReal/BGPLS3_2way.xml + + + diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf2waysReal/network1.xml b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf2waysReal/network1.xml new file mode 100644 index 0000000000000000000000000000000000000000..98703fb52a318aedf258034c93959004f91695b1 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf2waysReal/network1.xml @@ -0,0 +1,239 @@ + + + + + + + + + 0.0.0.1 + + 172.16.101.0 + 24 + + + + https://openstack.5Gex.com/url + 100 + 100Gbyte + 100Tbyte + + + + 172.16.101.101 + + + 172.16.101.102 + + + 172.16.101.103 + + + 172.16.101.104 + + + + 172.16.101.101 + 1 + + + 172.16.101.104 + 1 + + 99 + + 23 + 250 + + + + + 172.16.101.104 + 1 + + + 172.16.101.101 + 1 + + 99 + + 23 + 250 + + + + + 172.16.101.101 + 2 + + + 172.16.101.102 + 1 + + 3000 + + 150 + 4000 + + + + + 172.16.101.102 + 1 + + + 172.16.101.101 + 2 + + 3000 + + 150 + 4000 + + + + + 172.16.101.102 + 2 + + + 172.16.101.103 + 1 + + 1003 + + 150 + 4000 + + + + + 172.16.101.103 + 1 + + + 172.16.101.102 + 2 + + 1003 + + 150 + 4000 + + + + + 172.16.101.103 + 2 + + + 172.16.101.104 + 2 + + 323 + + 150 + 4000 + + + + + 172.16.101.104 + 2 + + + 172.16.101.103 + 2 + + 323 + + 150 + 4000 + + + + + 172.16.101.102 + 3 + + + 172.16.101.104 + 3 + + 2232 + + 150 + 4000 + + + + + 172.16.101.104 + 3 + + + 172.16.101.102 + 3 + + 2232 + + 150 + 4000 + + + + + 172.16.101.104 + 13 + + + 172.16.102.101 + 11 + + 102 + + + + 172.16.101.103 + 13 + + + 172.16.102.102 + 11 + + 230 + + + + + + + + + + 0.0.0.2 + + 172.16.102.0 + 24 + + + 172.16.102.101 + + + 172.16.102.102 + + + + \ No newline at end of file diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf2waysReal/network2.xml b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf2waysReal/network2.xml new file mode 100644 index 0000000000000000000000000000000000000000..db0918d26eb30303edc6452a0069055a2ed0f946 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf2waysReal/network2.xml @@ -0,0 +1,274 @@ + + + + + + + + + 0.0.0.2 + + 172.16.102.0 + 24 + + + + https://openstack2.5Gex.com/url + 200 + 200GByte + 200TByte + + + + 172.16.102.101 + + + 172.16.102.102 + + + 172.16.102.103 + + + 172.16.102.104 + + + + 172.16.102.101 + 1 + + + 172.16.102.104 + 1 + + 99 + + 23 + 250 + + + + + 172.16.102.104 + 1 + + + 172.16.102.101 + 1 + + 99 + + 23 + 250 + + + + + 172.16.102.101 + 2 + + + 172.16.102.102 + 1 + + 3000 + + 150 + 4000 + + + + + 172.16.102.102 + 1 + + + 172.16.102.101 + 2 + + 3000 + + 150 + 4000 + + + + + 172.16.102.102 + 2 + + + 172.16.102.103 + 1 + + 1003 + + 150 + 4000 + + + + + 172.16.102.103 + 1 + + + 172.16.102.102 + 2 + + 1003 + + 150 + 4000 + + + + + 172.16.102.103 + 2 + + + 172.16.102.104 + 2 + + 323 + + 150 + 4000 + + + + + 172.16.102.104 + 2 + + + 172.16.102.103 + 2 + + 323 + + 150 + 4000 + + + + + 172.16.102.102 + 3 + + + 172.16.102.104 + 3 + + 2232 + + 150 + 4000 + + + + + 172.16.102.104 + 3 + + + 172.16.102.102 + 3 + + 2232 + + 150 + 4000 + + + + + 172.16.102.101 + 13 + + + 172.16.101.104 + 11 + + 102 + + + + 172.16.102.102 + 13 + + + 172.16.101.103 + 11 + + 230 + + + + 172.16.102.104 + 13 + + + 172.16.103.101 + 11 + + 102 + + + + 172.16.102.103 + 13 + + + 172.16.103.102 + 11 + + 230 + + + + + + + 0.0.0.1 + + 172.16.101.0 + 24 + + + 172.16.101.103 + + + 172.16.101.104 + + + + + + 0.0.0.3 + + 172.16.103.0 + 24 + + + 172.16.103.101 + + + 172.16.103.102 + + + + + \ No newline at end of file diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf2waysReal/network3.xml b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf2waysReal/network3.xml new file mode 100644 index 0000000000000000000000000000000000000000..6ab738a970e4f023e5790012cd235d358c35d380 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/conf2waysReal/network3.xml @@ -0,0 +1,239 @@ + + + + + + + + + 0.0.0.3 + + 172.16.103.0 + 24 + + + + https://openstack3.5Gex.com/url + 300 + 300Gbyte + 300Tbyte + + + + 172.16.103.101 + + + 172.16.103.102 + + + 172.16.103.103 + + + 172.16.103.104 + + + + 172.16.103.101 + 1 + + + 172.16.103.104 + 1 + + 99 + + 23 + 250 + + + + + 172.16.103.104 + 1 + + + 172.16.103.101 + 1 + + 99 + + 23 + 250 + + + + + 172.16.103.101 + 2 + + + 172.16.103.102 + 1 + + 3000 + + 150 + 4000 + + + + + 172.16.103.102 + 1 + + + 172.16.103.101 + 2 + + 3000 + + 150 + 4000 + + + + + 172.16.103.102 + 2 + + + 172.16.103.103 + 1 + + 1003 + + 150 + 4000 + + + + + 172.16.103.103 + 1 + + + 172.16.103.102 + 2 + + 1003 + + 150 + 4000 + + + + + 172.16.103.103 + 2 + + + 172.16.103.104 + 2 + + 323 + + 150 + 4000 + + + + + 172.16.103.104 + 2 + + + 172.16.103.103 + 2 + + 323 + + 150 + 4000 + + + + + 172.16.103.102 + 3 + + + 172.16.103.104 + 3 + + 2232 + + 150 + 4000 + + + + + 172.16.103.104 + 3 + + + 172.16.103.102 + 3 + + 2232 + + 150 + 4000 + + + + + 172.16.103.101 + 13 + + + 172.16.102.104 + 11 + + 102 + + + + 172.16.103.102 + 13 + + + 172.16.102.103 + 11 + + 230 + + + + + + + + + + 0.0.0.2 + + 172.16.102.0 + 24 + + + 172.16.102.103 + + + 172.16.102.104 + + + + \ No newline at end of file diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/BGP4Parameters.xml b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/BGP4Parameters.xml new file mode 100644 index 0000000000000000000000000000000000000000..c76e035f4fde6fc299766133bb19de27fd130390 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/BGP4Parameters.xml @@ -0,0 +1,69 @@ + + + + + + 179 + 10.95.205.12 + + 1111 + + + 10.95.86.37 + false + true + 179 + + + BGP4Parser.log + BGP4Client.log + BGP4Server.log + + true + + 40000 + false + + + 180 + + 4 + + 1 + + + + true + + 5000 + + false + + fromXML + + network1.xml + + + + + + 0.0.0.0 + diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/BGP4ParametersRX.xml b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/BGP4ParametersRX.xml new file mode 100644 index 0000000000000000000000000000000000000000..fd8c7bb2be7ba090edc62dec24d33ead35cae12e --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/BGP4ParametersRX.xml @@ -0,0 +1,68 @@ + + + + + + 11179 + 1.1.1.1 + + 1111 + + + localhost + false + true + 22179 + + + BGP4Parser.log + BGP4Client.log + BGP4Server.log + + true + + 40000 + false + + + 180 + + 4 + + 1 + + + + true + + 5000 + + true + + fromXML + + + total.xml + + + + 0.0.0.0 + diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/BGP4ParametersTX.xml b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/BGP4ParametersTX.xml new file mode 100644 index 0000000000000000000000000000000000000000..9bd3f7b265f4adb91fcd7503123116d1d3aab453 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/BGP4ParametersTX.xml @@ -0,0 +1,68 @@ + + + + + + 33179 + 3.3.3.3 + + 1113 + + + localhost + true + false + 22179 + + + BGP4Parser.log + BGP4Client.log + BGP4Server.log + + true + + 40000 + false + + + 180 + + 4 + + 1 + + + + true + + 5000 + + true + + fromXML + + + total101.xml + + + + 0.0.0.0 + diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/BGP4ParametersTXRX.xml b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/BGP4ParametersTXRX.xml new file mode 100644 index 0000000000000000000000000000000000000000..559d7dabd78028ce06ade69f524d72b49f1eb3fe --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/BGP4ParametersTXRX.xml @@ -0,0 +1,74 @@ + + + + + + 22179 + 2.2.2.2 + + 1112 + + + localhost + true + false + 11179 + + + localhost + false + true + 33179 + + + BGP4Parser.log + BGP4Client.log + BGP4Server.log + + true + + 40000 + false + + + 180 + + 4 + + 1 + + + + true + + 5000 + + true + + fromXML + + + total10v2.xml + + + + 0.0.0.0 + diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/BGP4Parameters_1.xml b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/BGP4Parameters_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..07dc3b377d36712f76ff182ef7df9d1c16cd39c5 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/BGP4Parameters_1.xml @@ -0,0 +1,67 @@ + + + + + + 11179 + 10.95.205.12 + + 1111 + + + localhost + true + false + 22179 + + + BGP4Parser.log + BGP4Client.log + BGP4Server.log + + true + + 40000 + false + + + 180 + + 4 + + 1 + + + + true + + 5000 + + true + + fromXML + + src/test/resources/network1.xml + + + + 0.0.0.0 + diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/BGP4Parameters_1_IT.xml b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/BGP4Parameters_1_IT.xml new file mode 100644 index 0000000000000000000000000000000000000000..1774fccc9c5fb85538718ca70d0b284b2ddd7181 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/BGP4Parameters_1_IT.xml @@ -0,0 +1,67 @@ + + + + + + 11179 + 10.95.205.12 + + 1111 + + + docker_host + true + false + 22179 + + + BGP4Parser.log + BGP4Client.log + BGP4Server.log + + true + + 40000 + false + + + 180 + + 4 + + 1 + + + + true + + 5000 + + true + + fromXML + + src/test/resources/network1.xml + + + + 0.0.0.0 + diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/BGP4Parameters_2.xml b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/BGP4Parameters_2.xml new file mode 100644 index 0000000000000000000000000000000000000000..a5ceea7e7921709b1a758a11f707200b4cec4506 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/BGP4Parameters_2.xml @@ -0,0 +1,66 @@ + + + + + + 22179 + 1.1.1.1 + + 1112 + + + localhost + false + true + 11179 + + + + BGP4Parser2.log + BGP4Client2.log + BGP4Server2.log + + true + + 40000 + true + + + 180 + + 4 + + 1 + + + + false + + true + + fromBGP + + + + + + 0.0.0.0 + diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/BGP4Parameters_PCE.xml b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/BGP4Parameters_PCE.xml new file mode 100644 index 0000000000000000000000000000000000000000..c6390f73a90ed558d54693c77404cdad5d8c187f --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/BGP4Parameters_PCE.xml @@ -0,0 +1,67 @@ + + + + + + 11179 + 10.95.205.12 + + 1111 + + + localhost + true + false + 22179 + + + BGP4Parser.log + BGP4Client.log + BGP4Server.log + + true + + 40000 + false + + + 180 + + 4 + + 1 + + + + true + + 5000 + + true + + fromXML + + src/test/resources/network1_pce.xml + + + + 0.0.0.0 + diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/BGP4Parameters_TM.xml b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/BGP4Parameters_TM.xml new file mode 100644 index 0000000000000000000000000000000000000000..de0ea84b82238253d2e839f991b54c46063a45f5 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/BGP4Parameters_TM.xml @@ -0,0 +1,67 @@ + + + + + + 11179 + 10.95.205.12 + + 1111 + + + localhost + true + false + 22179 + + + BGP4Parser.log + BGP4Client.log + BGP4Server.log + + true + + 10000 + false + + + 180 + + 4 + + 1 + + + + true + + 5000 + + true + + + + + + + + 0.0.0.0 + diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/EmulatedTopology.xml b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/EmulatedTopology.xml new file mode 100644 index 0000000000000000000000000000000000000000..f8dd4933ff6d20f5d981117d00ccfb37359a47a7 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/EmulatedTopology.xml @@ -0,0 +1,604 @@ + + + + + + + + 0.0.0.1 + + 192.168.0.0 + 12 + + + + + Source + +
10.0.50.3
+
+ 10.0.50.3 + true + transport + COPMode + Discus + localhost + 8080 + + + 1 + + + 50.50.50.1 + + + transport + + + true + + + + 2 + + + 50.50.50.1 + + + transport + + + true + + + + 1 + + 2 + 1 + + + +
+ + + + TN1 + +
192.168.1.1
+
+ 192.168.1.1 + true + transport + COPMode + Idealist + pceserver + 4445 + + + 1 + + + 51.51.51.1 + + + transport + + + true + + + + 2 + + + 51.51.51.1 + + + transport + + + true + + + + 1 + + 2 + 1 + + + +
+ + + + TN2 + +
192.168.1.2
+
+ 192.168.1.2 + true + transport + COPMode + Idealist + pceserver + 4445 + + + 1 + + + 51.51.51.1 + + + transport + + + true + + + + 2 + + + 51.51.51.1 + + + transport + + + true + + + + 1 + + 2 + 1 + + + +
+ + + + TN3 + +
192.168.1.3
+
+ 192.168.1.3 + true + transport + COPMode + Idealist + pceserver + 4445 + + + 1 + + + 51.51.51.1 + + + transport + + + true + + + + 2 + + + 51.51.51.1 + + + transport + + + true + + + + 1 + + 2 + 1 + + + +
+ + + + OLT1 + +
10.0.50.2
+
+ 00:00:00:00:00:00:03:04 + true + transport + COPMode + Discus + localhost + 8080 + + + 1 + + + 50.50.50.1 + + + transport + + + true + + + + 2 + + + 50.50.50.1 + + + transport + + + true + + + + 1 + + 2 + 1 + + + +
+ + + + + ONU + +
10.0.50.1
+
+ 00:00:00:00:00:00:03:03 + true + transport + COPMode + Discus + localhost + 8080 + + + 1 + + + 51.51.51.1 + + + transport + + + true + + + + 2 + + + 51.51.51.1 + + + transport + + + true + + + + 1 + + 2 + 1 + + + +
+ + + + + GPU_rendition + +
10.0.50.4
+
+ 00:00:00:00:00:00:00:10 + true + transport + COPMode + Discus + localhost + 8080 + + + 1 + + + 51.51.51.1 + + + transport + + + true + + + + 2 + + + 51.51.51.1 + + + transport + + + true + + + + 1 + + 2 + 1 + + + +
+ + + + + + + + + + + + + + Source_1_TN1_1 + true + + Source + 1 + + + TN1 + 1 + + transport + transport + + + + TN1_1_Source_1 + true + + TN1 + 1 + + + Source + 1 + + transport + transport + + + + + TN1_2_TN2_1 + true + + TN1 + 2 + + + TN2 + 1 + + transport + transport + + + TN2_1_TN1_2 + true + + TN2 + 1 + + + TN1 + 2 + + transport + transport + + + + + TN2_2_OLT1_1 + true + + TN2 + 2 + + + OLT1 + 1 + + transport + transport + + + OLT1_1_TN2_2 + true + + OLT1 + 1 + + + TN2 + 2 + + transport + transport + + + + + OLT1_2_ONU_1 + true + + OLT1 + 2 + + + ONU + 1 + + transport + transport + + + ADVA_1_OLT1_2 + true + + ONU + 1 + + + OLT1 + 2 + + transport + transport + + + + + ONU_2_GPU_rendition_2 + true + + ONU + 2 + + + GPU_rendition + 2 + + transport + transport + + + CTTC_2_ONU_2 + true + + GPU_rendition + 2 + + + ONU + 2 + + transport + transport + + + +
+
diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/EmulatedTopologyECOC.xml b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/EmulatedTopologyECOC.xml new file mode 100644 index 0000000000000000000000000000000000000000..50dde5f86834d05718dd2550ecb23daaa6d0dc4c --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/EmulatedTopologyECOC.xml @@ -0,0 +1,340 @@ + + + + + + + + 0.0.0.1 + + 192.168.0.0 + 12 + + + + + + UNIVBRIS + +
200.0.0.3
+
+ 00:00:00:00:00:00:03:04 + true + transport + COPMode + BRISTOL + 10.0.34.106 + 8080 + + + 1 + + + 50.50.50.1 + + + transport + + + true + + + + 2 + + + 50.50.50.1 + + + transport + + + true + + + + 1 + + 2 + 1 + + + +
+ + + + + CTTC + +
200.0.0.4
+
+ 00:00:00:00:00:00:03:03 + true + transport + COPMode + CTTC + 10.0.34.128 + 8080 + + + 1 + + + 51.51.51.1 + + + transport + + + true + + + + 2 + + + 51.51.51.1 + + + transport + + + true + + + + 1 + + 2 + 1 + + + +
+ + + + + ADVA + +
20.0.0.5
+
+ 00:00:00:00:00:00:00:10 + true + transport + COPMode + ADVA + 10.0.34.104 + 8080 + + + 1 + + + 51.51.51.1 + + + transport + + + true + + + + 2 + + + 51.51.51.1 + + + transport + + + true + + + + 1 + + 2 + 1 + + + +
+ + + + + + + + + + + + + + + + + + + UNIVBRIS_2_CTTC_1 + true + + UNIVBRIS + 2 + + + CTTC + 1 + + transport + transport + + + CTTC_1_UNIVBRIS_2 + true + + CTTC + 1 + + + UNIVBRIS + 2 + + transport + transport + + + + + + + + ADVA_2_CTTC_2 + true + + ADVA + 2 + + + CTTC + 2 + + transport + transport + + + CTTC_2_ADVA_2 + true + + CTTC + 2 + + + ADVA + 2 + + transport + transport + + + +
+
diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/TMConfiguration.xml b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/TMConfiguration.xml new file mode 100644 index 0000000000000000000000000000000000000000..5754c00aca9b5e494eca102fccc96c92bdc902cd --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/TMConfiguration.xml @@ -0,0 +1,40 @@ + + + + + localhost + 5007 + + + IP + src/test/resources/EmulatedTopology.xml + + + initFromXML + + + localhost + 9876 + + + 8087 + + + + diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/TMConfiguration2.xml b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/TMConfiguration2.xml new file mode 100644 index 0000000000000000000000000000000000000000..2aa0cc84d9d1df8f6e5311557a60975c5cf2b3e1 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/TMConfiguration2.xml @@ -0,0 +1,34 @@ + + + + + localhost + 5007 + + + IP + src/test/resources/EmulatedTopology.xml + + + 8086 + + + localhost + 9876 + + + initFromXML + + diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/TMConfigurationCOP.xml b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/TMConfigurationCOP.xml new file mode 100644 index 0000000000000000000000000000000000000000..11d63ed1a41b3402212132de7aa04ee08c99de6b --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/TMConfigurationCOP.xml @@ -0,0 +1,36 @@ + + + + + localhost + 5008 + + + localhost + 8087 + 8088 + + + localhost + 8086 + + + localhost + 9877 + + + initFromXML + + diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/TMConfiguration_BGPLSreader_COPwriter.xml b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/TMConfiguration_BGPLSreader_COPwriter.xml new file mode 100644 index 0000000000000000000000000000000000000000..c6bd97b73b5f09fc9190c9c6b9c40baea52dabce --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/TMConfiguration_BGPLSreader_COPwriter.xml @@ -0,0 +1,40 @@ + + + + + localhost + 5008 + + + + initFromXML + + + localhost + 9876 + + + 8088 + + + True + False + src/test/resources/BGP4Parameters_2.xml + + + diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/TMConfiguration_BGPLSreader_IETFwriter.xml b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/TMConfiguration_BGPLSreader_IETFwriter.xml new file mode 100644 index 0000000000000000000000000000000000000000..f7b09d91b17908ac3a3e751f69d7ed5412571dc9 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/TMConfiguration_BGPLSreader_IETFwriter.xml @@ -0,0 +1,40 @@ + + + + + localhost + 5008 + + + + initFromXML + + + localhost + 9876 + + + 8088 + + + True + False + src/test/resources/BGP4Parameters_2.xml + + + diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/TMConfiguration_BGPLSreader_UNIFYwriter.xml b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/TMConfiguration_BGPLSreader_UNIFYwriter.xml new file mode 100644 index 0000000000000000000000000000000000000000..729c7295de93551784fcea40eb62efd689557f60 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/TMConfiguration_BGPLSreader_UNIFYwriter.xml @@ -0,0 +1,40 @@ + + + + + localhost + 5008 + + + + initFromXML + + + localhost + 9876 + + + 8088 + + + True + False + src/test/resources/BGP4Parameters_2.xml + + + diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/TMConfiguration_COPreader_BGPLSsender.xml b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/TMConfiguration_COPreader_BGPLSsender.xml new file mode 100644 index 0000000000000000000000000000000000000000..2f5ce356d40102414d93621cca0114751ed1f6e8 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/TMConfiguration_COPreader_BGPLSsender.xml @@ -0,0 +1,42 @@ + + + + + localhost + 5008 + + + + initFromXML + + + localhost + 9876 + + + 8088 + 10.95.86.27 + 8070 + + + False + True + src/test/resources/BGP4Parameters_TM.xml + + + diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/TMConfiguration_COPsender.xml b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/TMConfiguration_COPsender.xml new file mode 100644 index 0000000000000000000000000000000000000000..5754c00aca9b5e494eca102fccc96c92bdc902cd --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/TMConfiguration_COPsender.xml @@ -0,0 +1,40 @@ + + + + + localhost + 5007 + + + IP + src/test/resources/EmulatedTopology.xml + + + initFromXML + + + localhost + 9876 + + + 8087 + + + + diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/log4j2.xml b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/log4j2.xml new file mode 100644 index 0000000000000000000000000000000000000000..e07970922e4b3d3d56dc469b4ef2bd6768770fd5 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/log4j2.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/network1_pce.xml b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/network1_pce.xml new file mode 100644 index 0000000000000000000000000000000000000000..69ea53d28b2c2750347f3bc871f2e1f39c5dff80 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/network1_pce.xml @@ -0,0 +1,172 @@ + + + + + + + + 0.0.0.1 + + 192.168.1.0 + 12 + + + + 192.168.1.1 + + + 192.168.1.2 + + + 192.168.1.3 + + + + + 160 + + + + + + + + + + + 192.168.1.1 + 2 + + + 192.168.1.3 + 1 + + + 3.14 + + + 100 + + + 100 + + + + + + + 192.168.1.3 + 1 + + + 192.168.1.1 + 2 + + + 3.14 + + + 100 + + + 100 + + + + + + + 192.168.1.2 + 2 + + + 192.168.1.3 + 2 + + + 3.13 + + + 100 + + + 100 + + + + + + + 192.168.1.3 + 2 + + + 192.168.1.2 + 2 + + + 3.13 + + + 100 + + + 100 + + + + + + + 192.168.1.1 + 1 + + + 192.168.1.2 + 1 + + + 3.12 + + + 100 + + + 100 + + + + + + + 192.168.1.2 + 1 + + + 192.168.1.1 + 1 + + + 3.12 + + + 100 + + + 100 + + + + diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/total.xml b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/total.xml new file mode 100644 index 0000000000000000000000000000000000000000..3d9767c7be47d0ea37a9f64b8043b73882c67841 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/total.xml @@ -0,0 +1,213 @@ + + + + + + +1.0.0.103 + +172.16.0.0 +24 + + + + https://openstack1.5Gex.com/url + 111 + 111Gbyte + 111Tbyte + + + + + +172.16.0.1 + + +172.16.0.2 + + +172.16.0.3 + + +172.16.0.4 + + + +172.16.0.1 +1 + + +172.16.10.1 +1 + +72 + +100 +3560 + + + + +172.16.0.2 +1 + + +172.16.10.2 +1 + +150 + +100 +3560 + + + + +172.16.0.1 +1 + + +172.16.0.3 +1 + +303 + +100 +3560 + + + + +172.16.0.3 +1 + + +172.16.0.1 +1 + +303 + +100 +3560 + + + + +172.16.0.1 +1 + + +172.16.0.4 +1 + +542 + +100 +3560 + + + + +172.16.0.4 +1 + + +172.16.0.1 +1 + +542 + +100 +3560 + + + + +172.16.0.2 +1 + + +172.16.0.3 +1 + +221 + +100 +3560 + + + + +172.16.0.3 +1 + + +172.16.0.2 +1 + +221 + +100 +3560 + + + + +172.16.0.2 +1 + + +172.16.0.4 +1 + +198 + +100 +3560 + + + + +172.16.0.4 +1 + + +172.16.0.2 +1 + +198 + +100 +3560 + + + + + + + +0.0.0.10 + +172.16.10.0 +24 + + +172.16.10.1 + + +172.16.10.2 + + + diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/total101.xml b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/total101.xml new file mode 100644 index 0000000000000000000000000000000000000000..8f2eb49f9501e7239e2792240aa964ab29b5ae23 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/total101.xml @@ -0,0 +1,144 @@ + + + + + + +0.0.0.101 + +10.19.1.0 +24 + + +10.19.1.1 + + +10.19.1.2 + + +10.19.1.5 + + + +10.19.1.1 + 1 + + +10.19.1.5 + 1 + +422 + +100 +3560 + + + + +10.19.1.5 + 1 + + +10.19.1.1 + 1 + +422 + +100 +3560 + + + + + +10.19.1.2 + 1 + + +10.19.1.5 + 1 + +722 + +100 +3560 + + + + +10.19.1.5 + 1 + + +10.19.1.2 + 1 + +722 + +100 +3560 + + + + + +10.19.1.1 +1 + + +172.16.10.3 +1 + +123 + +100 +3560 + + + + + +10.19.1.2 +1 + + +172.16.10.4 +1 + +55 + +100 +3560 + + + + + + + + +0.0.0.10 + +172.16.10.0 +24 + + +172.16.10.3 + + +172.16.10.4 + + + diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/total10v2.xml b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/total10v2.xml new file mode 100644 index 0000000000000000000000000000000000000000..b308b56cdb239a0c323af89814bc1802e3605910 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/examples/total10v2.xml @@ -0,0 +1,261 @@ + + + + + + +0.0.0.10 + +172.16.10.0 +24 + + +172.16.10.1 + + +172.16.10.2 + + +172.16.10.3 + + +172.16.10.4 + + + +172.16.10.1 + 1 + + +172.16.10.3 + 1 + +422 + +100 +3560 + + + + +172.16.10.3 + 1 + + +172.16.10.1 + 1 + +422 + +100 +3560 + + + + + +172.16.10.1 + 1 + + + +172.16.10.4 + 1 + +722 + +100 +3560 + + + + +172.16.10.4 + 1 + + +172.16.10.1 + 1 + +722 + +100 +3560 + + + + + + +172.16.10.2 + 1 + + +172.16.10.3 + 1 + +122 + +100 +3560 + + + + +172.16.10.3 + 1 + + +172.16.10.2 + 1 + +122 + +100 +3560 + + + + + +172.16.10.2 + 1 + + +172.16.10.4 + 1 + +200 + +100 +3560 + + + + +172.16.10.4 + 1 + + +172.16.10.2 + 1 + +200 + +100 +3560 + + + + + + +172.16.10.1 + +1 + + +172.16.0.1 +1 + +72 + +100 +3560 + + + + + +172.16.10.2 +1 + + +172.16.0.2 +1 + +150 + +100 +3560 + + + + + +172.16.10.3 +1 + + +10.19.1.1 +1 + +123 + +100 +3560 + + + + + +172.16.10.4 +1 + + +10.19.1.2 +1 + +55 + +100 +3560 + + + + + + + + +0.0.0.101 + +10.19.1.0 +24 + + +10.19.1.1 + + +10.19.1.2 + + + + + + +0.0.0.103 + +172.16.0.0 +24 + + +172.16.0.1 + + +172.16.0.2 + + + diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/test/java/es/tid/bgp/bgp4Peer/tests/BGP4PeerTest.java b/src/bgpls_speaker/service/java/netphony-topology/src/test/java/es/tid/bgp/bgp4Peer/tests/BGP4PeerTest.java new file mode 100644 index 0000000000000000000000000000000000000000..e742908bcca7305c1bb6b254d1feaf5439cb1f57 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/test/java/es/tid/bgp/bgp4Peer/tests/BGP4PeerTest.java @@ -0,0 +1,130 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 es.tid.bgp.bgp4Peer.tests; + +import static org.junit.Assert.*; + +import java.net.Inet4Address; +import java.util.Set; + +import eu.teraflow.tid.bgp4Peer.peer.BGPPeer; +import eu.teraflow.tid.tedb.MDTEDB; + +public class BGP4PeerTest { + + public BGP4PeerTest(){ + + } + + /** + * This tests starts a BGL-LS Speaker, reads the topology from a File and Sends it. + * A second speaker is started and reads the topology. + * The first speaker is configured to read only the multidomain topology and send the + * multidomain topology + * The second speaker is configured as Consumer. + * The speakers are launched in separated non-standard ports for testing purposes. + * Both speakers talk and the topology is sent from BGP-Speaker 1 to BGP-Speaker 2 + * It checks after 10 seconds if the topology of BGP-Speaker 2 is the same as BGP + * Speaker 1. + */ + @org.junit.Test + public void testPeer(){ + try { + //Create BGP4Peer 1 + BGPPeer bgpPeer = new BGPPeer(); + bgpPeer.configure("src/test/resources/BGP4Parameters_1.xml"); + //Create the TEDB + //bgpPeer.createTEDB("test"); //did it in configure + assertTrue("MD Topology has not 2 domains",((MDTEDB)bgpPeer.getMultiDomainTEDB()).getNetworkDomainGraph().vertexSet().size()==2); + bgpPeer.createUpdateDispatcher(); + bgpPeer.startClient(); + bgpPeer.startServer(); + bgpPeer.startSaveTopology(); + bgpPeer.startManagementServer(); + bgpPeer.startSendTopology(); + String topoOriginal=bgpPeer.getMultiDomainTEDB().printTopology(); + + System.out.println("Topology1: "); + System.out.println(topoOriginal); + + + //Launch BGP4Peer + //bgpPeer.stopPeer(); + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + BGPPeer bgpPeer2 = new BGPPeer(); + bgpPeer2.configure("src/test/resources/BGP4Parameters_2.xml"); + //Create the TEDB + //bgpPeer2.createTEDB("test"); //did it in configure + bgpPeer2.createUpdateDispatcher(); + //bgpPeer2.startClient(); + bgpPeer2.startServer(); + bgpPeer2.startSaveTopology(); + bgpPeer2.startManagementServer(); + //bgpPeer2.startSendTopology(); + try { + Thread.sleep(10000); + } catch (InterruptedException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + String topo2=bgpPeer2.getMultiDomainTEDB().printTopology(); + + System.out.println("---------------------------------------"); + System.out.println("---------------------------------------"); + System.out.println("---------------------------------------"); + System.out.println("Topology of BGP-LS Speaker 1: "); + System.out.println("---------------------------------------"); + System.out.println(topoOriginal); + Set keySet = bgpPeer.getIntraTEDBs().keySet(); + for(String key : keySet){ + System.out.println("---IntraTEDB: domain_id= "+key); + System.out.println(bgpPeer.getIntraTEDBs().get(key).printTopology()); + } + System.out.println("---------------------------------------"); + System.out.println("Topology of BGP-LS Speaker 2: "); + System.out.println("---------------------------------------"); + System.out.println(topo2); + System.out.println("---------------------------------------"); + Set keySet2 = bgpPeer2.getIntraTEDBs().keySet(); + for(String key : keySet2){ + System.out.println("---IntraTEDB: domain_id= "+key); + System.out.println(bgpPeer2.getIntraTEDBs().get(key).printTopology()); + } + /*try { + Thread.sleep(10000); + } catch (InterruptedException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + }*/ + for(String key : keySet){ + //assertTrue("Checking if topos are equals, IntraTEDBs, don't have the same domains", bgpPeer2.getIntraTEDBs().keySet().contains(key)); + //assertTrue("->Checking if topos are equals, IntraTEDB (domains="+key+") are not equal:\nTED1:\n"+bgpPeer.getIntraTEDBs().get(key).printTopology()+"\nTED2:\n"+bgpPeer.getIntraTEDBs().get(key).printTopology(), bgpPeer.getIntraTEDBs().get(key).equals(bgpPeer2.getIntraTEDBs().get(key))); + } + assertTrue("Checking if topos are equal",topoOriginal.equals(topo2)); + } catch (Exception exc){ + exc.printStackTrace(); + assertTrue("Exception "+exc.getMessage(),false); + } + + + } + +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/test/resources/BGP4Parameters_1.xml b/src/bgpls_speaker/service/java/netphony-topology/src/test/resources/BGP4Parameters_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..07dc3b377d36712f76ff182ef7df9d1c16cd39c5 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/test/resources/BGP4Parameters_1.xml @@ -0,0 +1,67 @@ + + + + + + 11179 + 10.95.205.12 + + 1111 + + + localhost + true + false + 22179 + + + BGP4Parser.log + BGP4Client.log + BGP4Server.log + + true + + 40000 + false + + + 180 + + 4 + + 1 + + + + true + + 5000 + + true + + fromXML + + src/test/resources/network1.xml + + + + 0.0.0.0 + diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/test/resources/BGP4Parameters_1_IT.xml b/src/bgpls_speaker/service/java/netphony-topology/src/test/resources/BGP4Parameters_1_IT.xml new file mode 100644 index 0000000000000000000000000000000000000000..1774fccc9c5fb85538718ca70d0b284b2ddd7181 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/test/resources/BGP4Parameters_1_IT.xml @@ -0,0 +1,67 @@ + + + + + + 11179 + 10.95.205.12 + + 1111 + + + docker_host + true + false + 22179 + + + BGP4Parser.log + BGP4Client.log + BGP4Server.log + + true + + 40000 + false + + + 180 + + 4 + + 1 + + + + true + + 5000 + + true + + fromXML + + src/test/resources/network1.xml + + + + 0.0.0.0 + diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/test/resources/BGP4Parameters_2.xml b/src/bgpls_speaker/service/java/netphony-topology/src/test/resources/BGP4Parameters_2.xml new file mode 100644 index 0000000000000000000000000000000000000000..a5ceea7e7921709b1a758a11f707200b4cec4506 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/test/resources/BGP4Parameters_2.xml @@ -0,0 +1,66 @@ + + + + + + 22179 + 1.1.1.1 + + 1112 + + + localhost + false + true + 11179 + + + + BGP4Parser2.log + BGP4Client2.log + BGP4Server2.log + + true + + 40000 + true + + + 180 + + 4 + + 1 + + + + false + + true + + fromBGP + + + + + + 0.0.0.0 + diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/test/resources/EmulatedTopology.xml b/src/bgpls_speaker/service/java/netphony-topology/src/test/resources/EmulatedTopology.xml new file mode 100644 index 0000000000000000000000000000000000000000..f8dd4933ff6d20f5d981117d00ccfb37359a47a7 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/test/resources/EmulatedTopology.xml @@ -0,0 +1,604 @@ + + + + + + + + 0.0.0.1 + + 192.168.0.0 + 12 + + + + + Source + +
10.0.50.3
+
+ 10.0.50.3 + true + transport + COPMode + Discus + localhost + 8080 + + + 1 + + + 50.50.50.1 + + + transport + + + true + + + + 2 + + + 50.50.50.1 + + + transport + + + true + + + + 1 + + 2 + 1 + + + +
+ + + + TN1 + +
192.168.1.1
+
+ 192.168.1.1 + true + transport + COPMode + Idealist + pceserver + 4445 + + + 1 + + + 51.51.51.1 + + + transport + + + true + + + + 2 + + + 51.51.51.1 + + + transport + + + true + + + + 1 + + 2 + 1 + + + +
+ + + + TN2 + +
192.168.1.2
+
+ 192.168.1.2 + true + transport + COPMode + Idealist + pceserver + 4445 + + + 1 + + + 51.51.51.1 + + + transport + + + true + + + + 2 + + + 51.51.51.1 + + + transport + + + true + + + + 1 + + 2 + 1 + + + +
+ + + + TN3 + +
192.168.1.3
+
+ 192.168.1.3 + true + transport + COPMode + Idealist + pceserver + 4445 + + + 1 + + + 51.51.51.1 + + + transport + + + true + + + + 2 + + + 51.51.51.1 + + + transport + + + true + + + + 1 + + 2 + 1 + + + +
+ + + + OLT1 + +
10.0.50.2
+
+ 00:00:00:00:00:00:03:04 + true + transport + COPMode + Discus + localhost + 8080 + + + 1 + + + 50.50.50.1 + + + transport + + + true + + + + 2 + + + 50.50.50.1 + + + transport + + + true + + + + 1 + + 2 + 1 + + + +
+ + + + + ONU + +
10.0.50.1
+
+ 00:00:00:00:00:00:03:03 + true + transport + COPMode + Discus + localhost + 8080 + + + 1 + + + 51.51.51.1 + + + transport + + + true + + + + 2 + + + 51.51.51.1 + + + transport + + + true + + + + 1 + + 2 + 1 + + + +
+ + + + + GPU_rendition + +
10.0.50.4
+
+ 00:00:00:00:00:00:00:10 + true + transport + COPMode + Discus + localhost + 8080 + + + 1 + + + 51.51.51.1 + + + transport + + + true + + + + 2 + + + 51.51.51.1 + + + transport + + + true + + + + 1 + + 2 + 1 + + + +
+ + + + + + + + + + + + + + Source_1_TN1_1 + true + + Source + 1 + + + TN1 + 1 + + transport + transport + + + + TN1_1_Source_1 + true + + TN1 + 1 + + + Source + 1 + + transport + transport + + + + + TN1_2_TN2_1 + true + + TN1 + 2 + + + TN2 + 1 + + transport + transport + + + TN2_1_TN1_2 + true + + TN2 + 1 + + + TN1 + 2 + + transport + transport + + + + + TN2_2_OLT1_1 + true + + TN2 + 2 + + + OLT1 + 1 + + transport + transport + + + OLT1_1_TN2_2 + true + + OLT1 + 1 + + + TN2 + 2 + + transport + transport + + + + + OLT1_2_ONU_1 + true + + OLT1 + 2 + + + ONU + 1 + + transport + transport + + + ADVA_1_OLT1_2 + true + + ONU + 1 + + + OLT1 + 2 + + transport + transport + + + + + ONU_2_GPU_rendition_2 + true + + ONU + 2 + + + GPU_rendition + 2 + + transport + transport + + + CTTC_2_ONU_2 + true + + GPU_rendition + 2 + + + ONU + 2 + + transport + transport + + + +
+
diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/test/resources/EmulatedTopologyECOC.xml b/src/bgpls_speaker/service/java/netphony-topology/src/test/resources/EmulatedTopologyECOC.xml new file mode 100644 index 0000000000000000000000000000000000000000..50dde5f86834d05718dd2550ecb23daaa6d0dc4c --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/test/resources/EmulatedTopologyECOC.xml @@ -0,0 +1,340 @@ + + + + + + + + 0.0.0.1 + + 192.168.0.0 + 12 + + + + + + UNIVBRIS + +
200.0.0.3
+
+ 00:00:00:00:00:00:03:04 + true + transport + COPMode + BRISTOL + 10.0.34.106 + 8080 + + + 1 + + + 50.50.50.1 + + + transport + + + true + + + + 2 + + + 50.50.50.1 + + + transport + + + true + + + + 1 + + 2 + 1 + + + +
+ + + + + CTTC + +
200.0.0.4
+
+ 00:00:00:00:00:00:03:03 + true + transport + COPMode + CTTC + 10.0.34.128 + 8080 + + + 1 + + + 51.51.51.1 + + + transport + + + true + + + + 2 + + + 51.51.51.1 + + + transport + + + true + + + + 1 + + 2 + 1 + + + +
+ + + + + ADVA + +
20.0.0.5
+
+ 00:00:00:00:00:00:00:10 + true + transport + COPMode + ADVA + 10.0.34.104 + 8080 + + + 1 + + + 51.51.51.1 + + + transport + + + true + + + + 2 + + + 51.51.51.1 + + + transport + + + true + + + + 1 + + 2 + 1 + + + +
+ + + + + + + + + + + + + + + + + + + UNIVBRIS_2_CTTC_1 + true + + UNIVBRIS + 2 + + + CTTC + 1 + + transport + transport + + + CTTC_1_UNIVBRIS_2 + true + + CTTC + 1 + + + UNIVBRIS + 2 + + transport + transport + + + + + + + + ADVA_2_CTTC_2 + true + + ADVA + 2 + + + CTTC + 2 + + transport + transport + + + CTTC_2_ADVA_2 + true + + CTTC + 2 + + + ADVA + 2 + + transport + transport + + + +
+
diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/test/resources/log4j2.xml b/src/bgpls_speaker/service/java/netphony-topology/src/test/resources/log4j2.xml new file mode 100644 index 0000000000000000000000000000000000000000..b284eba81e4d28d27f32042684d7f5c6b06ce632 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/test/resources/log4j2.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/test/resources/network1.xml b/src/bgpls_speaker/service/java/netphony-topology/src/test/resources/network1.xml new file mode 100644 index 0000000000000000000000000000000000000000..e36714d55b196971b9d9141f2b0d1e25a4ce6ff2 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/src/test/resources/network1.xml @@ -0,0 +1,227 @@ + + + + + + + + + 0.0.0.1 + + 172.16.101.0 + 29 + + + + https://openstack.5Gex.com/url + 100 + 100Gbyte + 100Tbyte + + + + 172.16.101.101 + + + 172.16.101.102 + + + 172.16.101.103 + + + + 172.16.101.104 + + + + 99 + + 23 + 43 + + 1 + 102 + 802 + 500 + 436 + + + + + 172.16.101.101 + 1 + + + 172.16.101.104 + 1 + + 3.35 + 99 + + 23 + 43 + + 1 + 102 + 802 + 500 + 436 + + + + 172.16.101.104 + 1 + + + 172.16.101.101 + 1 + + + + + 172.16.101.101 + 2 + + + 172.16.101.102 + 1 + + + + + 172.16.101.102 + 1 + + + 172.16.101.101 + 2 + + + + + 172.16.101.102 + 2 + + + 172.16.101.103 + 1 + + 102103 + + + + 172.16.101.103 + 1 + + + 172.16.101.102 + 2 + + + + + 172.16.101.103 + 2 + + + 172.16.101.104 + 2 + + + + + 172.16.101.104 + 2 + + + 172.16.101.103 + 2 + + + + + + 172.16.101.102 + 3 + + + 172.16.101.104 + 3 + + + + + 172.16.101.104 + 3 + + + 172.16.101.102 + 3 + + + + + + 172.16.101.104 + 13 + + + 172.16.102.101 + 11 + + 1 + + + + + + + + + + 0.0.0.2 + + 172.16.102.0 + 29 + + + + + https://UC3MController.5Gex.com/url + 222 + 222Gbyte + 222Tbyte + + + + 172.16.102.101 + + + 172.16.102.102 + + + + 172.16.102.101 + 14 + + + 172.16.102.102 + 13 + + 2 + + + + \ No newline at end of file diff --git a/src/bgpls_speaker/service/java/netphony-topology/target/generated-sources/protobuf/grpc-java/src/main/proto/updateServiceGrpc.java b/src/bgpls_speaker/service/java/netphony-topology/target/generated-sources/protobuf/grpc-java/src/main/proto/updateServiceGrpc.java new file mode 100644 index 0000000000000000000000000000000000000000..7b6ef8da0462513deb943714447ce4238ae3dea1 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/target/generated-sources/protobuf/grpc-java/src/main/proto/updateServiceGrpc.java @@ -0,0 +1,320 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +// 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 src.main.proto; + +import static io.grpc.MethodDescriptor.generateFullMethodName; +import static io.grpc.stub.ClientCalls.asyncBidiStreamingCall; +import static io.grpc.stub.ClientCalls.asyncClientStreamingCall; +import static io.grpc.stub.ClientCalls.asyncServerStreamingCall; +import static io.grpc.stub.ClientCalls.asyncUnaryCall; +import static io.grpc.stub.ClientCalls.blockingServerStreamingCall; +import static io.grpc.stub.ClientCalls.blockingUnaryCall; +import static io.grpc.stub.ClientCalls.futureUnaryCall; +import static io.grpc.stub.ServerCalls.asyncBidiStreamingCall; +import static io.grpc.stub.ServerCalls.asyncClientStreamingCall; +import static io.grpc.stub.ServerCalls.asyncServerStreamingCall; +import static io.grpc.stub.ServerCalls.asyncUnaryCall; +import static io.grpc.stub.ServerCalls.asyncUnimplementedStreamingCall; +import static io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall; + +/** + *
+ * Defining a Service, a Service can have multiple RPC operations
+ * 
+ */ +@javax.annotation.Generated( + value = "by gRPC proto compiler (version 1.24.0)", + comments = "Source: grpcService.proto") +public final class updateServiceGrpc { + + private updateServiceGrpc() {} + + public static final String SERVICE_NAME = "src.main.proto.updateService"; + + // Static method descriptors that strictly reflect the proto. + private static volatile io.grpc.MethodDescriptor getUpdateMethod; + + @io.grpc.stub.annotations.RpcMethod( + fullMethodName = SERVICE_NAME + '/' + "update", + requestType = src.main.proto.GrpcService.updateRequest.class, + responseType = src.main.proto.GrpcService.updateResponse.class, + methodType = io.grpc.MethodDescriptor.MethodType.UNARY) + public static io.grpc.MethodDescriptor getUpdateMethod() { + io.grpc.MethodDescriptor getUpdateMethod; + if ((getUpdateMethod = updateServiceGrpc.getUpdateMethod) == null) { + synchronized (updateServiceGrpc.class) { + if ((getUpdateMethod = updateServiceGrpc.getUpdateMethod) == null) { + updateServiceGrpc.getUpdateMethod = getUpdateMethod = + io.grpc.MethodDescriptor.newBuilder() + .setType(io.grpc.MethodDescriptor.MethodType.UNARY) + .setFullMethodName(generateFullMethodName(SERVICE_NAME, "update")) + .setSampledToLocalTracing(true) + .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + src.main.proto.GrpcService.updateRequest.getDefaultInstance())) + .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + src.main.proto.GrpcService.updateResponse.getDefaultInstance())) + .setSchemaDescriptor(new updateServiceMethodDescriptorSupplier("update")) + .build(); + } + } + } + return getUpdateMethod; + } + + /** + * Creates a new async stub that supports all call types for the service + */ + public static updateServiceStub newStub(io.grpc.Channel channel) { + return new updateServiceStub(channel); + } + + /** + * Creates a new blocking-style stub that supports unary and streaming output calls on the service + */ + public static updateServiceBlockingStub newBlockingStub( + io.grpc.Channel channel) { + return new updateServiceBlockingStub(channel); + } + + /** + * Creates a new ListenableFuture-style stub that supports unary calls on the service + */ + public static updateServiceFutureStub newFutureStub( + io.grpc.Channel channel) { + return new updateServiceFutureStub(channel); + } + + /** + *
+   * Defining a Service, a Service can have multiple RPC operations
+   * 
+ */ + public static abstract class updateServiceImplBase implements io.grpc.BindableService { + + /** + *
+     * MODIFY HERE: Update the return to streaming return.
+     * 
+ */ + public void update(src.main.proto.GrpcService.updateRequest request, + io.grpc.stub.StreamObserver responseObserver) { + asyncUnimplementedUnaryCall(getUpdateMethod(), responseObserver); + } + + @java.lang.Override public final io.grpc.ServerServiceDefinition bindService() { + return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor()) + .addMethod( + getUpdateMethod(), + asyncUnaryCall( + new MethodHandlers< + src.main.proto.GrpcService.updateRequest, + src.main.proto.GrpcService.updateResponse>( + this, METHODID_UPDATE))) + .build(); + } + } + + /** + *
+   * Defining a Service, a Service can have multiple RPC operations
+   * 
+ */ + public static final class updateServiceStub extends io.grpc.stub.AbstractStub { + private updateServiceStub(io.grpc.Channel channel) { + super(channel); + } + + private updateServiceStub(io.grpc.Channel channel, + io.grpc.CallOptions callOptions) { + super(channel, callOptions); + } + + @java.lang.Override + protected updateServiceStub build(io.grpc.Channel channel, + io.grpc.CallOptions callOptions) { + return new updateServiceStub(channel, callOptions); + } + + /** + *
+     * MODIFY HERE: Update the return to streaming return.
+     * 
+ */ + public void update(src.main.proto.GrpcService.updateRequest request, + io.grpc.stub.StreamObserver responseObserver) { + asyncUnaryCall( + getChannel().newCall(getUpdateMethod(), getCallOptions()), request, responseObserver); + } + } + + /** + *
+   * Defining a Service, a Service can have multiple RPC operations
+   * 
+ */ + public static final class updateServiceBlockingStub extends io.grpc.stub.AbstractStub { + private updateServiceBlockingStub(io.grpc.Channel channel) { + super(channel); + } + + private updateServiceBlockingStub(io.grpc.Channel channel, + io.grpc.CallOptions callOptions) { + super(channel, callOptions); + } + + @java.lang.Override + protected updateServiceBlockingStub build(io.grpc.Channel channel, + io.grpc.CallOptions callOptions) { + return new updateServiceBlockingStub(channel, callOptions); + } + + /** + *
+     * MODIFY HERE: Update the return to streaming return.
+     * 
+ */ + public src.main.proto.GrpcService.updateResponse update(src.main.proto.GrpcService.updateRequest request) { + return blockingUnaryCall( + getChannel(), getUpdateMethod(), getCallOptions(), request); + } + } + + /** + *
+   * Defining a Service, a Service can have multiple RPC operations
+   * 
+ */ + public static final class updateServiceFutureStub extends io.grpc.stub.AbstractStub { + private updateServiceFutureStub(io.grpc.Channel channel) { + super(channel); + } + + private updateServiceFutureStub(io.grpc.Channel channel, + io.grpc.CallOptions callOptions) { + super(channel, callOptions); + } + + @java.lang.Override + protected updateServiceFutureStub build(io.grpc.Channel channel, + io.grpc.CallOptions callOptions) { + return new updateServiceFutureStub(channel, callOptions); + } + + /** + *
+     * MODIFY HERE: Update the return to streaming return.
+     * 
+ */ + public com.google.common.util.concurrent.ListenableFuture update( + src.main.proto.GrpcService.updateRequest request) { + return futureUnaryCall( + getChannel().newCall(getUpdateMethod(), getCallOptions()), request); + } + } + + private static final int METHODID_UPDATE = 0; + + private static final class MethodHandlers implements + io.grpc.stub.ServerCalls.UnaryMethod, + io.grpc.stub.ServerCalls.ServerStreamingMethod, + io.grpc.stub.ServerCalls.ClientStreamingMethod, + io.grpc.stub.ServerCalls.BidiStreamingMethod { + private final updateServiceImplBase serviceImpl; + private final int methodId; + + MethodHandlers(updateServiceImplBase serviceImpl, int methodId) { + this.serviceImpl = serviceImpl; + this.methodId = methodId; + } + + @java.lang.Override + @java.lang.SuppressWarnings("unchecked") + public void invoke(Req request, io.grpc.stub.StreamObserver responseObserver) { + switch (methodId) { + case METHODID_UPDATE: + serviceImpl.update((src.main.proto.GrpcService.updateRequest) request, + (io.grpc.stub.StreamObserver) responseObserver); + break; + default: + throw new AssertionError(); + } + } + + @java.lang.Override + @java.lang.SuppressWarnings("unchecked") + public io.grpc.stub.StreamObserver invoke( + io.grpc.stub.StreamObserver responseObserver) { + switch (methodId) { + default: + throw new AssertionError(); + } + } + } + + private static abstract class updateServiceBaseDescriptorSupplier + implements io.grpc.protobuf.ProtoFileDescriptorSupplier, io.grpc.protobuf.ProtoServiceDescriptorSupplier { + updateServiceBaseDescriptorSupplier() {} + + @java.lang.Override + public com.google.protobuf.Descriptors.FileDescriptor getFileDescriptor() { + return src.main.proto.GrpcService.getDescriptor(); + } + + @java.lang.Override + public com.google.protobuf.Descriptors.ServiceDescriptor getServiceDescriptor() { + return getFileDescriptor().findServiceByName("updateService"); + } + } + + private static final class updateServiceFileDescriptorSupplier + extends updateServiceBaseDescriptorSupplier { + updateServiceFileDescriptorSupplier() {} + } + + private static final class updateServiceMethodDescriptorSupplier + extends updateServiceBaseDescriptorSupplier + implements io.grpc.protobuf.ProtoMethodDescriptorSupplier { + private final String methodName; + + updateServiceMethodDescriptorSupplier(String methodName) { + this.methodName = methodName; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.MethodDescriptor getMethodDescriptor() { + return getServiceDescriptor().findMethodByName(methodName); + } + } + + private static volatile io.grpc.ServiceDescriptor serviceDescriptor; + + public static io.grpc.ServiceDescriptor getServiceDescriptor() { + io.grpc.ServiceDescriptor result = serviceDescriptor; + if (result == null) { + synchronized (updateServiceGrpc.class) { + result = serviceDescriptor; + if (result == null) { + serviceDescriptor = result = io.grpc.ServiceDescriptor.newBuilder(SERVICE_NAME) + .setSchemaDescriptor(new updateServiceFileDescriptorSupplier()) + .addMethod(getUpdateMethod()) + .build(); + } + } + } + return result; + } +} diff --git a/src/bgpls_speaker/service/java/netphony-topology/topology.iml b/src/bgpls_speaker/service/java/netphony-topology/topology.iml new file mode 100644 index 0000000000000000000000000000000000000000..1c913f39aea1a0ef850529a04fc0a331470d3c48 --- /dev/null +++ b/src/bgpls_speaker/service/java/netphony-topology/topology.iml @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/bgpls_speaker/service/tools/DiscoveredDBManager.py b/src/bgpls_speaker/service/tools/DiscoveredDBManager.py new file mode 100644 index 0000000000000000000000000000000000000000..6ca318305a1b625e5de100b958ee0f2f50df8ddb --- /dev/null +++ b/src/bgpls_speaker/service/tools/DiscoveredDBManager.py @@ -0,0 +1,318 @@ +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +# 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. + +from typing import List, Tuple, Union +from bgpls_speaker.service.tools.Tools import UpdateRequest,NodeInfo,LinkInfo +from common.proto.bgpls_pb2 import NodeDescriptors +from common.proto.context_pb2 import ContextId, ContextList,Topology,TopologyId,Device,DeviceDriverEnum,ContextId,Empty, TopologyList +from common.Constants import DEFAULT_CONTEXT_NAME +from common.tools.object_factory.Context import json_context_id +from context.client.ContextClient import ContextClient + +import logging,json +LOGGER = logging.getLogger(__name__) + +def json_to_list(json_str : str) -> List[Union[str, Tuple[str, str]]]: + try: + data = json.loads(json_str) + except: # pylint: disable=bare-except + return [('item', str(json_str))] + + if isinstance(data, dict): + return [('kv', (key, value)) for key, value in data.items()] + elif isinstance(data, list): + return [('item', ', '.join(data))] + else: + return [('item', str(data))] + +class DiscoveredDBManager: + def __init__(self): + self.discoveredDB=[] + # Añadir topoDB + + def AddToDB(self,update_request : UpdateRequest): + """ + Add BGP Update message to discoveredDB. Checks if node exists in discoveredDB. + TODO: check if node exists in context + """ + # TODO: with self.lock + # Check if node info message + if(self.checkIfNodeInUpdate(update_request)): + # Check if node exists + node_count=len(update_request.nodes) + for node in update_request.nodes: + if(self.CheckIfNodeNameInDb(node) or CheckIfNodeInContext(node.node_name)): + # Replace info from node if exists + LOGGER.debug("(AddToDB) Node already in DB!!!") + update_request.nodes.remove(node) + node_count=node_count-1 + else: + LOGGER.debug("(AddToDB) Node NOT in DB!!!") + if(node_count>0): + self.discoveredDB.append(update_request) + else: + # is a link + # Compare and update + self.discoveredDB.append(update_request) + LOGGER.debug("(AddToDB) Actual DB: ") + LOGGER.debug("%s", [up.toString() for up in self.discoveredDB]) + return True + + def GetDiscoveredDB(self): + return self.discoveredDB + + def checkIfNodeInUpdate(self,update_request : UpdateRequest): + """ + Returns true if the update message contains a node info type . + """ + if(update_request.nodes): + return True + return False + + + def CheckIfNodeNameInDb(self,new_node : NodeInfo) -> bool: + """ + Returns true if new node is in the discovered data base already + """ + for update in self.discoveredDB: + for node in update.nodes: + if(node.igp_id==new_node.igp_id): + return True + return False + + def GetNodeNamesFromDiscoveredDB(self): + """ + Return a list of node_names from the current discovered devices + saved in the discoveredDB + """ + node_list =[update_request.nodes for update_request in self.discoveredDB if update_request.nodes] + # LOGGER.info("nodes (GetNodeNamesFromDiscoveredDB) %s",node_list ) + # Inside an update there is a list of nodes , TODO posible FIX: + node_info= [node for nodes in node_list for node in nodes] + return [node.node_name for node in node_info] + + def GetNodesFromDiscoveredDB(self): + """ + Return a list of nodes of class type: tools.NodeInfo from the current discovered devices + saved in the discoveredDB. Skips the ones already addded to context. + """ + + node_list =[update_request.nodes for update_request in self.discoveredDB if update_request.nodes] + return [node for nodes in node_list for node in nodes if (not CheckIfNodeInContext(node.node_name))] + + def GetLinksFromDiscoveredDB(self): + """ + Return a list of links of class type: tools.LinkInfo from the current discovered links + saved in the discoveredDB + """ + link_list= [update_request.links for update_request in self.discoveredDB if update_request.links] + return [link for links in link_list for link in links] + + def UpdateDiscoveredDBWithContext(self): + """ + Check if device discovered by bgpls is already in the topology. + """ + # device_names,device_ips=AddContextDevices(context_client) + return True + + def GetNodeNameFromLinkId(self,link_igpid): + """ + Return the node name given an igp id if exists in the discoveredDB. + """ + for update in self.discoveredDB: + for node in update.nodes: + if(node.igp_id==link_igpid): + return node.node_name + return None + + def GetIgpIdFromNodeName(self,name): + """ + Return the IGP ID given a node name if exists in the discoveredDB. + """ + for update in self.discoveredDB: + LOGGER.debug("(GetIgpIdFromNodeName)checking update: %s",update.toString()) + for node in update.nodes: + LOGGER.debug("(GetIgpIdFromNodeName)checking nodes: %s",node.node_name) + if(node.node_name==name): + return node.igp_id + return None + + def UpdateNodeNameInLink(self): + """ + Check if the igp id has a node name asigned in the discoveredDB and + assign it to the NodeDescriptor name. + """ + for update in self.discoveredDB: + for link in update.links: + if(self.GetNodeNameFromLinkId(link.local_id) is not None): + LOGGER.info("(UpdateNodeNameInLink) local %s: %s",link.local_id, self.GetNodeNameFromLinkId(link.local_id)) + link.local.node_name=self.GetNodeNameFromLinkId(link.local_id) + else: + link.local.node_name=link.local_id + if(self.GetNodeNameFromLinkId(link.remote_id) is not None): + LOGGER.info("(UpdateNodeNameInLink) remote %s: %s",link.remote_id, self.GetNodeNameFromLinkId(link.remote_id)) + link.remote.node_name=self.GetNodeNameFromLinkId(link.remote_id) + else: + link.remote.node_name=link.remote_id + return True + + def RemoveLinkFromDB(self): + """ + Removes a link from the DB if matches the source and the destination. + """ + return True + + def FindConnectedNodes(self,new_node): + """ + Returns a list of nodes connected to the actual node using the discovered + link list and comparing de IGP ID. Returns None in case there are no connections. + """ + # find links where the node appears + links_to_node=[] + nodes_conected=[] + link_local=[] + link_remote=[] + for update in self.discoveredDB: + for link in update.links: + LOGGER.debug("(FindConnectedNodes) link in up:%s %s", + link.local_id, link.remote_id) + LOGGER.debug("(FindConnectedNodes) comparing ...:%s",new_node) + if(link.local_id == new_node): + links_to_node.append(link) + nodes_conected.append(link.remote.node_name) + link_local.append(link) + if(link.remote_id == new_node): + links_to_node.append(link) + nodes_conected.append(link.local.node_name) + link_remote.append(link) + + if(nodes_conected): + LOGGER.debug("(FindConnectedNodes) links to local node:%s",new_node) + LOGGER.debug("(FindConnectedNodes) %s", nodes_conected) + return nodes_conected, link_local, link_remote + LOGGER.debug("(FindConnectedNodes) NO LINKS TO OTHER NODES") + return None + + def DeleteNodeFromDiscoveredDB(self, node_name) -> bool: + """ + Deletes a node from de DiscoveredDB given the node name. TODO: igpid¿ + """ + LOGGER.info("(DeleteNodeFromDiscoveredDB)") + + for i,update in enumerate(self.discoveredDB): + for node in update.nodes: + if(node_name==node.node_name): + del self.discoveredDB[i] + return True + +def AddContextDevicesFull(context_client : ContextClient) -> bool: + """ + debug purposes + """ + LOGGER.info("(AddContextDevices)") + contexts : ContextList = context_client.ListContexts(Empty()) + for context_ in contexts.contexts: + context_uuid : str = context_.context_id.context_uuid.uuid + context_name : str = context_.name + topologies : TopologyList = context_client.ListTopologies(context_.context_id) + # topologies : TopologyList=context_client.ListTopologies(context_client) + for topology_ in topologies.topologies: + #topology_uuid : str = topology_.topology_id.topology_uuid.uuid + topology_name : str = topology_.name + context_topology_name = 'Context({:s}):Topology({:s})'.format(context_name, topology_name) + # Topos=context.GetTopology(list_topo.topology_id) + LOGGER.debug("topo (AddContextDevices) %s",topology_) + # details=context_client.GetTopologyDetails(topology_.topology_id) + # LOGGER.info("details (AddContextDevices) %s",details) + devices=context_client.ListDevices(Empty()) + # LOGGER.info("devices (driverSettings) %s",devices) + device_names=[] + device_ips=[] + for device_ in devices.devices: + LOGGER.info("device_ (AddContextDevices) %s",device_.name) + device_names.append(device_.name) + for config_rule_ in device_.device_config.config_rules: + if config_rule_.custom.resource_key == "_connect/address": + LOGGER.info("device_.resource_value-addr (driverSettings) %s", + config_rule_.custom.resource_value) + device_ips=config_rule_.custom.resource_value + + return device_names,device_ips + +def GetContextDevices(context_client : ContextClient) -> bool: + """ + Returns de device name and its corresponding device_ip existing in context. + """ + LOGGER.info("(AddContextDevices)") + devices=context_client.ListDevices(Empty()) + device_names=[] + device_ips=[] + for device_ in devices.devices: + LOGGER.debug("device_ (AddContextDevices) %s",device_.name) + device_names.append(device_.name) + for config_rule_ in device_.device_config.config_rules: + if config_rule_.custom.resource_key == "_connect/address": + # LOGGER.info("device_.resource_value-addr (driverSettings) %s", + # config_rule_.custom.resource_value) + device_ips=config_rule_.custom.resource_value + + return device_names,device_ips + +def CheckIfNodeInContext(node_name) -> bool: + """ + Returns true if the node exists in the context. + """ + context_client=ContextClient() + context_client.connect() + device_names,device_ips=GetContextDevices(context_client) + LOGGER.info("(CheckIfNodeInContext) device_names: %s nodena %s",device_names,node_name) + for node in device_names: + if(node==node_name): + LOGGER.info("(CheckIfNodeInContext) Node already in context") + return True + LOGGER.info("(CheckIfNodeInContext) Node NOT in context") + return False + +def getEndpointFromIpInterface(device,ipv4): + """ + Get TFS endpoint uuid drom given device having the IPv4 interface. + """ + for config in device.device_config.config_rules: + if config.WhichOneof('config_rule') == 'custom': + # for item_type, item in json_to_list(config.custom.resource_value): + # if item_type == 'kv': + # # LOGGER.debug("(getEndpointFromIpInterface) item: %s",item) + # endpoint_item=item + # LOGGER.debug("(getEndpointFromIpInterface) config: %s",config.custom.resource_key) + if "/interface" in config.custom.resource_key: + iface=config.custom.resource_key.split("/interface")[1].strip("[]") + LOGGER.debug("(getEndpointFromIpInterface) interface: %s",iface) + if ipv4 in config.custom.resource_value: + LOGGER.debug("(getEndpointFromIpInterface) value: %s",config.custom.resource_value) + resource_dict=json.loads(config.custom.resource_value) + interface = resource_dict['name'] + resource_ip=resource_dict['address_ip'] + # Search for endpoint uuid assigned to interface + for config in device.device_config.config_rules: + if config.WhichOneof('config_rule') == 'custom': + if "/endpoints/endpoint" in config.custom.resource_key: + key=config.custom.resource_key.split("/endpoints/endpoint")[1].strip("[]") + LOGGER.debug("(getEndpointFromIpInterface) key: %s",key) + if interface in key: + LOGGER.debug("(getEndpointFromIpInterface) value: %s",config.custom.resource_value) + endpoint=config.custom.resource_key.split("/endpoints/endpoint")[1].strip("[]") + resource_dict_endpoint=json.loads(config.custom.resource_value) + return resource_dict_endpoint['uuid'],resource_ip + + return None,ipv4 \ No newline at end of file diff --git a/src/bgpls_speaker/service/tools/GrpcServer.py b/src/bgpls_speaker/service/tools/GrpcServer.py new file mode 100644 index 0000000000000000000000000000000000000000..edcede6d96034192f62e8eae30528b229d0db512 --- /dev/null +++ b/src/bgpls_speaker/service/tools/GrpcServer.py @@ -0,0 +1,170 @@ +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# +# 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. + +import json, logging,threading, queue,time,signal +from datetime import datetime, timedelta +from typing import Any, Iterator, List, Optional, Tuple, Union + +import logging,threading +import grpc + +from bgpls_speaker.service.tools.DiscoveredDBManager import DiscoveredDBManager +from .protos import grpcService_pb2_grpc +from .protos import grpcService_pb2 +from .Tools import UpdateRequest + +from concurrent import futures +import os +import subprocess +from multiprocessing import Pool +import logging + +from .JavaRunner import JavaRunner + +LOGGER = logging.getLogger(__name__) + +_ONE_DAY_IN_SECONDS = 60 * 60 * 24 +SERVER_ADDRESS = 'localhost:2021' + +class GrpcServer(): + + """ + This class gets the current topology from a bgps speaker module in java + and updates the posible new devices to add in the context topology. + Needs the address, port and as_number from the device that will provide the information via bgpls + to the java module. + """ + def __init__(self,DiscoveredDB : DiscoveredDBManager) -> None: # pylint: disable=super-init-not-called + self.__lock = threading.Lock() + self.__started = threading.Event() + self.__terminate = threading.Event() + self.__out_samples = queue.Queue() + self.__server=grpc.aio.server() + self.__javaLocalPort=0 + self.__mngPort=0 + self.__runnerList=[] + self.__discoveredDB=DiscoveredDB + + def ConnectThread(self) -> bool: + if self.__started.is_set(): return True + self.__started.set() + self.__server = grpc.server(futures.ThreadPoolExecutor(max_workers=10)) + grpcService_pb2_grpc.add_updateServiceServicer_to_server(self, self.__server) + self.__server.add_insecure_port(SERVER_ADDRESS) + LOGGER.info("Starting server on %s", SERVER_ADDRESS) + self.__server.start() + try: + while True: + time.sleep(_ONE_DAY_IN_SECONDS) + except KeyboardInterrupt: + LOGGER.info("DISCONNECT") + self.Disconnect() + return True + + def Connect(self): + grpcThread = threading.Thread(target=self.ConnectThread) + grpcThread.start() + return True + + def Disconnect(self) -> bool: + self.__terminate.set() + if not self.__started.is_set(): return True + LOGGER.info("Keyboard interrupt, stop server") + self.__server.stop(0) + return True + + def update(self,request, context) -> bool: + """ + Processes the messages recived by de grpc server + """ + with self.__lock: + LOGGER.info("(server) Update message from bgpls speaker: \n %s" % (request)) + response = grpcService_pb2.updateResponse(ack="OK") + update_request = UpdateRequest.from_proto(request) + self.__discoveredDB.AddToDB(update_request) + return response + + def connectToJavaBgpls(self, address : str = "10.95.86.214", port : str = "179", asNumber : str = "65006"): + self.setLocalPort() + runner = JavaRunner(self.__javaLocalPort,address,self.__mngPort) + runner.setAsNumber(asNumber) + runner.setPort(port) + runner.setPeer() + process=runner.execBGPLSpeaker() + self.__runnerList.append(runner) + + return process.pid + + def terminateRunners(self): + for runner in self.__runnerList: + runner.endBGPSpeaker() + return True + + def terminateGrpcServer(self): + LOGGER.debug("Terminating java programs...") + self.terminateRunners() + LOGGER.debug("Disconnecting grpc server...") + self.Disconnect() + return True + + def terminateRunnerById(self,speaker_id): + """ + Disconnect from BGP-LS speaker given an speaker Id. Its the same + as the java running proccess PID. + """ + for runner in self.__runnerList: + if(runner.getPid()==speaker_id): + runner.endBGPSpeaker() + self.__runnerList.remove(runner) + return True + + def setLocalPort(self,initPort=12179): + """ + If java already running add 1 to current used port, + else initialize port . + initPort --> BGP4Port, usually 179 corresponding to BGP + """ + with self.__lock: + if(self.__runnerList): + LOGGER.debug("Port exists %s",self.__javaLocalPort) + lastRunner=self.__runnerList[-1] + self.__javaLocalPort=lastRunner.getCurrentLocalPort()+1 + self.__mngPort=lastRunner.getCurrentMngPort()+1 + else: + LOGGER.debug("Port DONT exists %s",self.__javaLocalPort) + self.__javaLocalPort=initPort + self.__mngPort=1112 + return self.__javaLocalPort + + def getSpeakerListIds(self): + return [runner.getPid() for runner in self.__runnerList] + + def getSpeakerFromId(self,speaker_id): + """ + Returns address,as_number,peer_port + """ + for runner in self.__runnerList: + if(runner.getPid()==speaker_id): + return runner.getRunnerInfo() + return None + + def getSpeakerIdFromIpAddr(self,addr): + """ + Returns Id from the speaker IP Address + """ + for runner in self.__runnerList: + ip_addr,asN,port=runner.getRunnerInfo() + if(ip_addr==addr): + return runner.getPid() + return diff --git a/src/bgpls_speaker/service/tools/JavaRunner.py b/src/bgpls_speaker/service/tools/JavaRunner.py new file mode 100644 index 0000000000000000000000000000000000000000..7bc99e3dd3fcc2c3059626b166536b6f0a696772 --- /dev/null +++ b/src/bgpls_speaker/service/tools/JavaRunner.py @@ -0,0 +1,107 @@ +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# +# 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. + +import json, logging,threading, queue,time,signal +from datetime import datetime, timedelta +from typing import Any, Iterator, List, Optional, Tuple, Union +import logging +import grpc + +from concurrent import futures +from lxml import etree +import os +import subprocess +from multiprocessing import Pool + +SERVER_ADDRESS = 'localhost:2021' +SERVER_ID = 1 +_ONE_DAY_IN_SECONDS = 60 * 60 * 24 + +XML_FILE="/var/teraflow/bgpls_speaker/service/java/BGP4Parameters_3.xml" +XML_CONFIG_FILE="BGP4Parameters_3.xml" + +LOGGER = logging.getLogger(__name__) + +class JavaRunner: + + def __init__(self,localPort : int, address : str ="", mngPort : int = 1112): + self.__peerPort=179 + self.__localPort=localPort + self.__managementPort=mngPort + self.__configFile=XML_CONFIG_FILE + self.__process=0 + self.__lock = threading.Lock() + self.__address = address + self.__portConf=5007 + self.__asNumber=65000 + + def getCurrentLocalPort(self): + with self.__lock: + return self.__localPort + + def getCurrentMngPort(self): + with self.__lock: + return self.__managementPort + def getPid(self): + return self.__process.pid + + def execBGPLSpeaker(self) -> bool: + """ + Executes java BGPLS speaker in non-blocking process + """ + LOGGER.debug("Before exec") + os.chdir("/var/teraflow/bgpls_speaker/service/java/") + self.__process=subprocess.Popen(['java' , '-jar' , 'bgp_ls.jar' , XML_CONFIG_FILE], + shell=False,start_new_session=True) + return self.__process + + def setPort(self,port): + self.__peerPort=port + return True + def setAsNumber(self,asNumber): + self.__asNumber=asNumber + return True + + def setPeer(self) -> bool: + """ + Sets XML existing config file with peer address and port. TODO: as_number + """ + + XMLParser = etree.XMLParser(remove_blank_text=False) + tree = etree.parse(XML_FILE, parser=XMLParser) + root = tree.getroot() + peerAddress = root.find(".//peer") + peerAddress.text=self.__address + peerPort = root.find(".//peerPort") + peerPort.text=str(self.__peerPort) + localPort = root.find(".//BGP4Port") + localPort.text=str(self.__localPort) + myAutonomousSystem = root.find(".//myAutonomousSystem") + myAutonomousSystem.text=str(self.__asNumber) + managePort = root.find(".//BGP4ManagementPort") + managePort.text=str(self.__managementPort) + tree.write(XML_FILE) #with ... as .. + return True + + def endBGPSpeaker(self) -> bool: + """ + Kills java program connected to BGPLS Speaker with SIGKILL signal + """ + LOGGER.debug("sending kill signal to process %s",self.__process.pid) + LOGGER.debug("PID: %d",self.__process.pid) + self.__process.kill() + return True + + def getRunnerInfo(self): + return self.__address,self.__asNumber,self.__peerPort diff --git a/src/bgpls_speaker/service/tools/Tools.py b/src/bgpls_speaker/service/tools/Tools.py new file mode 100644 index 0000000000000000000000000000000000000000..4d47110b1f161caa11459c687e61e79b1c140ca7 --- /dev/null +++ b/src/bgpls_speaker/service/tools/Tools.py @@ -0,0 +1,202 @@ +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +# 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. + +from .protos import grpcService_pb2_grpc +from .protos import grpcService_pb2 + +import logging +LOGGER = logging.getLogger(__name__) +import os + +# AUTOGENERATED +class UpdateRequest: + def __init__(self, address_family_id, next_hop, as_path_segment, nodes, links): + self.address_family_id = address_family_id + self.next_hop = next_hop + self.as_path_segment = as_path_segment + self.nodes = nodes + self.links = links + + @classmethod + def from_proto(cls, update_request): + nodes = [] + for node in update_request.node: + nodes.append(NodeInfo.from_proto(node)) + + links = [] + for link in update_request.link: + links.append(LinkInfo.from_proto(link)) + + return cls( + address_family_id=update_request.addressFamilyID, + next_hop=update_request.nextHop, + as_path_segment=update_request.asPathSegment, + nodes=nodes, + links=links + ) + def toString(self): + # Debug purposes + out = " " + out+=self.address_family_id + out+=self.next_hop + out+=self.as_path_segment + + for node in self.nodes: + out+="name" + out+=node.node_name + out+=node.igp_id + out+=str(node.bgpls_id) + out+=str(node.as_id) + for link in self.links: + out+=link.remote_id + out+=link.local_id + out+=link.remote_ipv4_id + out+=link.local_ipv4_id + out+=str(link.local.as_number) + out+=link.local.bgpls_id + out+=link.remote.as_number + out+=link.remote.bgpls_id + out+=str(link.available_bw) + out+=str(link.residual_bw) + out+=str(link.utilized) + out+=str(link.max_link_delay) + out+=str(link.min_link_delay) + out+=str(link.delay_variation) + out+=str(link.delay) + out+=str(link.te_default_metric) + out+=str(link.adjacency_sid) + return out + +class NodeInfo: + def __init__(self, node_name, igp_id, bgpls_id, as_id,learnt_from): + self.node_name = node_name.strip("/") + self.igp_id = igp_id.strip("/") + self.bgpls_id = bgpls_id.strip("/") + self.as_id = as_id + self.learnt_from=learnt_from + def toString(self): + # Debug purposes + out = "name" + out+=self.node_name + out+=self.igp_id + out+=str(self.bgpls_id) + out+=str(self.as_id) + out+=self.learnt_from + + @classmethod + def from_proto(cls, proto_node): + return cls( + node_name=proto_node.nodeName, + igp_id=proto_node.igpID, + bgpls_id=proto_node.bgplsID, + as_id=proto_node.asID, + learnt_from=proto_node.learntFrom + ) + +class LinkInfo: + def __init__(self, remote_id, local_id, remote_ipv4_id, local_ipv4_id, local, remote, available_bw, residual_bw, utilized, max_link_delay, min_link_delay, delay_variation, delay, te_default_metric, adjacency_sid,learnt_from): + self.remote_id = remote_id.strip("/") + self.local_id = local_id.strip("/") + self.remote_ipv4_id = remote_ipv4_id.strip("/") + self.local_ipv4_id = local_ipv4_id.strip("/") + self.local = local + self.remote = remote + self.available_bw = available_bw + self.residual_bw = residual_bw + self.utilized = utilized + self.max_link_delay = max_link_delay + self.min_link_delay = min_link_delay + self.delay_variation = delay_variation + self.delay = delay + self.te_default_metric = te_default_metric + self.adjacency_sid = adjacency_sid + self.learnt_from=learnt_from + + @classmethod + def from_proto(cls, proto_link): + return cls( + remote_id=proto_link.remoteID, + local_id=proto_link.localID, + remote_ipv4_id=proto_link.remoteIPv4ID, + local_ipv4_id=proto_link.localIPv4ID, + local=NodeDescriptors.from_proto(proto_link.local), + remote=NodeDescriptors.from_proto(proto_link.remote), + available_bw=proto_link.availableBw, + residual_bw=proto_link.residualBw, + utilized=proto_link.utilized, + max_link_delay=proto_link.maxLinkDelay, + min_link_delay=proto_link.minLinkDelay, + delay_variation=proto_link.delayVariation, + delay=proto_link.delay, + te_default_metric=proto_link.TEDefaultMetric, + adjacency_sid=proto_link.adjacencySid, + learnt_from=proto_link.learntFrom + ) + +class NodeDescriptors: + def __init__(self, as_number, bgpls_id): + self.as_number = as_number + self.bgpls_id = bgpls_id + self.node_name=None + @classmethod + def from_proto(cls, descriptor): + return cls( + as_number=descriptor.asNumber, + bgpls_id=descriptor.bgplsID + ) + + + +""" +message Device { + DeviceId device_id = 1; + string name = 2; + string device_type = 3; + DeviceConfig device_config = 4; + DeviceOperationalStatusEnum device_operational_status = 5; + repeated DeviceDriverEnum device_drivers = 6; + repeated EndPoint device_endpoints = 7; + repeated Component component = 8; // Used for inventory +} +message DeviceId { + Uuid device_uuid = 1; +} +message TopologyId { + ContextId context_id = 1; + Uuid topology_uuid = 2; +} + +message Topology { + TopologyId topology_id = 1; + string name = 2; + repeated DeviceId device_ids = 3; + repeated LinkId link_ids = 4; +} + +message TopologyDetails { + TopologyId topology_id = 1; + string name = 2; + repeated Device devices = 3; + repeated Link links = 4; +} +message LinkId { + Uuid link_uuid = 1; +} + +message Link { + LinkId link_id = 1; + string name = 2; + repeated EndPointId link_endpoint_ids = 3; +} +""" \ No newline at end of file diff --git a/src/bgpls_speaker/service/tools/__init__.py b/src/bgpls_speaker/service/tools/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..38d04994fb0fa1951fb465bc127eb72659dc2eaf --- /dev/null +++ b/src/bgpls_speaker/service/tools/__init__.py @@ -0,0 +1,13 @@ +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# +# 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. diff --git a/src/bgpls_speaker/service/tools/json_loader.py b/src/bgpls_speaker/service/tools/json_loader.py new file mode 100644 index 0000000000000000000000000000000000000000..21670f685e0061f7a192cc79f31fdb5d19a600fd --- /dev/null +++ b/src/bgpls_speaker/service/tools/json_loader.py @@ -0,0 +1,42 @@ +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) + +# 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. + +import json + +def getInterfaceFromJson(): + json_file = open('interfaces.json', 'r',encoding='utf-8') + interface_data = json.load(json_file) + return interface_data + +def getInterfaceFromNodeNames(json_file,node_name_src,node_name_dst): + + interface_src=[] + interface_dst=[] + for device in json_file['devices']: + print("dev: %s",device.keys()) + if device['name'] == node_name_src: + interface_src=list(device['links'].keys())[list(device['links'].values()).index(node_name_dst)] + if device['name'] == node_name_dst: + interface_dst=list(device['links'].keys())[list(device['links'].values()).index(node_name_src)] + + return interface_src,interface_dst + + +if __name__ == "__main__": + data=getInterfaceFromJson() + print("data: %s",data['devices']) + # for device in data['devices']: + # print(device['interfaces'].keys()) + + print(getInterfaceFromNodeNames(data,"HL2-2-1","HL2-2-2")) \ No newline at end of file diff --git a/src/bgpls_speaker/service/tools/protos/grpcService.proto b/src/bgpls_speaker/service/tools/protos/grpcService.proto new file mode 100644 index 0000000000000000000000000000000000000000..7aba63912a394c83647cd65d947b500f9230f27a --- /dev/null +++ b/src/bgpls_speaker/service/tools/protos/grpcService.proto @@ -0,0 +1,81 @@ +// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// +// 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. + +syntax = "proto3"; +package src.main.proto; + +//el modulo java abre la comunicacion +//cliente(java) manda la info al servidor(python) +//el modulo en python responde con ok + +message updateRequest { + + string addressFamilyID = 1; + string nextHop = 2; + string asPathSegment = 3; + + repeated nodeInfo node = 4; + // repeated : se da la posibilidad de mandar 0 o varios + repeated linkInfo link = 5; + } + +message nodeInfo{ + string nodeName=1; + string igpID=2; + string bgplsID=3; + int32 asID=4; + string learntFrom = 5; +} + +message linkInfo{ + + string remoteID=1; + string localID=2; + + string remoteIPv4ID=3; + string localIPv4ID=4; + + NodeDescriptors local=5; + NodeDescriptors remote=6; + + float availableBw=7; + float residualBw = 8; + float utilized = 9; + + float maxLinkDelay = 10; + float minLinkDelay = 11; + float delayVariation = 12; + float delay = 13; + + int32 TEDefaultMetric = 14; + string adjacencySid = 15; + + string learntFrom = 16; + +} + +message NodeDescriptors{ + string asNumber=1; + string bgplsID=2; +} + +message updateResponse { + string ack = 1; +} + +// Defining a Service, a Service can have multiple RPC operations +service updateService { + // MODIFY HERE: Update the return to streaming return. + rpc update(updateRequest) returns (updateResponse); +} diff --git a/src/bgpls_speaker/service/tools/protos/grpcService_pb2.py b/src/bgpls_speaker/service/tools/protos/grpcService_pb2.py new file mode 100644 index 0000000000000000000000000000000000000000..f219859999a97087966886770d4208b8bcb71464 --- /dev/null +++ b/src/bgpls_speaker/service/tools/protos/grpcService_pb2.py @@ -0,0 +1,77 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: grpcService.proto +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x11grpcService.proto\x12\x0esrc.main.proto\"\xa0\x01\n\rupdateRequest\x12\x17\n\x0f\x61\x64\x64ressFamilyID\x18\x01 \x01(\t\x12\x0f\n\x07nextHop\x18\x02 \x01(\t\x12\x15\n\rasPathSegment\x18\x03 \x01(\t\x12&\n\x04node\x18\x04 \x03(\x0b\x32\x18.src.main.proto.nodeInfo\x12&\n\x04link\x18\x05 \x03(\x0b\x32\x18.src.main.proto.linkInfo\"^\n\x08nodeInfo\x12\x10\n\x08nodeName\x18\x01 \x01(\t\x12\r\n\x05igpID\x18\x02 \x01(\t\x12\x0f\n\x07\x62gplsID\x18\x03 \x01(\t\x12\x0c\n\x04\x61sID\x18\x04 \x01(\x05\x12\x12\n\nlearntFrom\x18\x05 \x01(\t\"\x8a\x03\n\x08linkInfo\x12\x10\n\x08remoteID\x18\x01 \x01(\t\x12\x0f\n\x07localID\x18\x02 \x01(\t\x12\x14\n\x0cremoteIPv4ID\x18\x03 \x01(\t\x12\x13\n\x0blocalIPv4ID\x18\x04 \x01(\t\x12.\n\x05local\x18\x05 \x01(\x0b\x32\x1f.src.main.proto.NodeDescriptors\x12/\n\x06remote\x18\x06 \x01(\x0b\x32\x1f.src.main.proto.NodeDescriptors\x12\x13\n\x0b\x61vailableBw\x18\x07 \x01(\x02\x12\x12\n\nresidualBw\x18\x08 \x01(\x02\x12\x10\n\x08utilized\x18\t \x01(\x02\x12\x14\n\x0cmaxLinkDelay\x18\n \x01(\x02\x12\x14\n\x0cminLinkDelay\x18\x0b \x01(\x02\x12\x16\n\x0e\x64\x65layVariation\x18\x0c \x01(\x02\x12\r\n\x05\x64\x65lay\x18\r \x01(\x02\x12\x17\n\x0fTEDefaultMetric\x18\x0e \x01(\x05\x12\x14\n\x0c\x61\x64jacencySid\x18\x0f \x01(\t\x12\x12\n\nlearntFrom\x18\x10 \x01(\t\"4\n\x0fNodeDescriptors\x12\x10\n\x08\x61sNumber\x18\x01 \x01(\t\x12\x0f\n\x07\x62gplsID\x18\x02 \x01(\t\"\x1d\n\x0eupdateResponse\x12\x0b\n\x03\x61\x63k\x18\x01 \x01(\t2X\n\rupdateService\x12G\n\x06update\x12\x1d.src.main.proto.updateRequest\x1a\x1e.src.main.proto.updateResponseb\x06proto3') + + + +_UPDATEREQUEST = DESCRIPTOR.message_types_by_name['updateRequest'] +_NODEINFO = DESCRIPTOR.message_types_by_name['nodeInfo'] +_LINKINFO = DESCRIPTOR.message_types_by_name['linkInfo'] +_NODEDESCRIPTORS = DESCRIPTOR.message_types_by_name['NodeDescriptors'] +_UPDATERESPONSE = DESCRIPTOR.message_types_by_name['updateResponse'] +updateRequest = _reflection.GeneratedProtocolMessageType('updateRequest', (_message.Message,), { + 'DESCRIPTOR' : _UPDATEREQUEST, + '__module__' : 'grpcService_pb2' + # @@protoc_insertion_point(class_scope:src.main.proto.updateRequest) + }) +_sym_db.RegisterMessage(updateRequest) + +nodeInfo = _reflection.GeneratedProtocolMessageType('nodeInfo', (_message.Message,), { + 'DESCRIPTOR' : _NODEINFO, + '__module__' : 'grpcService_pb2' + # @@protoc_insertion_point(class_scope:src.main.proto.nodeInfo) + }) +_sym_db.RegisterMessage(nodeInfo) + +linkInfo = _reflection.GeneratedProtocolMessageType('linkInfo', (_message.Message,), { + 'DESCRIPTOR' : _LINKINFO, + '__module__' : 'grpcService_pb2' + # @@protoc_insertion_point(class_scope:src.main.proto.linkInfo) + }) +_sym_db.RegisterMessage(linkInfo) + +NodeDescriptors = _reflection.GeneratedProtocolMessageType('NodeDescriptors', (_message.Message,), { + 'DESCRIPTOR' : _NODEDESCRIPTORS, + '__module__' : 'grpcService_pb2' + # @@protoc_insertion_point(class_scope:src.main.proto.NodeDescriptors) + }) +_sym_db.RegisterMessage(NodeDescriptors) + +updateResponse = _reflection.GeneratedProtocolMessageType('updateResponse', (_message.Message,), { + 'DESCRIPTOR' : _UPDATERESPONSE, + '__module__' : 'grpcService_pb2' + # @@protoc_insertion_point(class_scope:src.main.proto.updateResponse) + }) +_sym_db.RegisterMessage(updateResponse) + +_UPDATESERVICE = DESCRIPTOR.services_by_name['updateService'] +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + _UPDATEREQUEST._serialized_start=38 + _UPDATEREQUEST._serialized_end=198 + _NODEINFO._serialized_start=200 + _NODEINFO._serialized_end=294 + _LINKINFO._serialized_start=297 + _LINKINFO._serialized_end=691 + _NODEDESCRIPTORS._serialized_start=693 + _NODEDESCRIPTORS._serialized_end=745 + _UPDATERESPONSE._serialized_start=747 + _UPDATERESPONSE._serialized_end=776 + _UPDATESERVICE._serialized_start=778 + _UPDATESERVICE._serialized_end=866 +# @@protoc_insertion_point(module_scope) diff --git a/src/bgpls_speaker/service/tools/protos/grpcService_pb2_grpc.py b/src/bgpls_speaker/service/tools/protos/grpcService_pb2_grpc.py new file mode 100644 index 0000000000000000000000000000000000000000..c8bbda558d60b1108bfcb1ff60fbe755bb2d75c3 --- /dev/null +++ b/src/bgpls_speaker/service/tools/protos/grpcService_pb2_grpc.py @@ -0,0 +1,70 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from . import grpcService_pb2 as grpcService__pb2 + + +class updateServiceStub(object): + """Defining a Service, a Service can have multiple RPC operations + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.update = channel.unary_unary( + '/src.main.proto.updateService/update', + request_serializer=grpcService__pb2.updateRequest.SerializeToString, + response_deserializer=grpcService__pb2.updateResponse.FromString, + ) + + +class updateServiceServicer(object): + """Defining a Service, a Service can have multiple RPC operations + """ + + def update(self, request, context): + """MODIFY HERE: Update the return to streaming return. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_updateServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'update': grpc.unary_unary_rpc_method_handler( + servicer.update, + request_deserializer=grpcService__pb2.updateRequest.FromString, + response_serializer=grpcService__pb2.updateResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'src.main.proto.updateService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class updateService(object): + """Defining a Service, a Service can have multiple RPC operations + """ + + @staticmethod + def update(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/src.main.proto.updateService/update', + grpcService__pb2.updateRequest.SerializeToString, + grpcService__pb2.updateResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/src/bgpls_speaker/tests/.gitignore b/src/bgpls_speaker/tests/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..6b97d6fe3ad32f39097745229ab7f547f26ecb12 --- /dev/null +++ b/src/bgpls_speaker/tests/.gitignore @@ -0,0 +1 @@ +# Add here your files containing confidential testbed details such as IP addresses, ports, usernames, passwords, etc. diff --git a/src/bgpls_speaker/tests/__init__.py b/src/bgpls_speaker/tests/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..38d04994fb0fa1951fb465bc127eb72659dc2eaf --- /dev/null +++ b/src/bgpls_speaker/tests/__init__.py @@ -0,0 +1,13 @@ +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# +# 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. diff --git a/src/bgpls_speaker/tests/test_unitary.py b/src/bgpls_speaker/tests/test_unitary.py new file mode 100644 index 0000000000000000000000000000000000000000..b8aae5c680e2fe65796fb4417e72a0ae4f925510 --- /dev/null +++ b/src/bgpls_speaker/tests/test_unitary.py @@ -0,0 +1,18 @@ +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# +# 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. + +import logging + +LOGGER = logging.getLogger(__name__) +LOGGER.setLevel(logging.DEBUG) diff --git a/src/common/Constants.py b/src/common/Constants.py index 30aa09b4caa34a54dd54126195b3f322c07c932e..a1913a951aeaa968a594fc3bafcb49581459a0e0 100644 --- a/src/common/Constants.py +++ b/src/common/Constants.py @@ -59,6 +59,8 @@ class ServiceNameEnum(Enum): TE = 'te' FORECASTER = 'forecaster' E2EORCHESTRATOR = 'e2eorchestrator' + OPTICALCONTROLLER = 'opticalcontroller' + BGPLS = 'bgpls-speaker' # Used for test and debugging only DLT_GATEWAY = 'dltgateway' @@ -86,6 +88,8 @@ DEFAULT_SERVICE_GRPC_PORTS = { ServiceNameEnum.TE .value : 10030, ServiceNameEnum.FORECASTER .value : 10040, ServiceNameEnum.E2EORCHESTRATOR .value : 10050, + ServiceNameEnum.OPTICALCONTROLLER .value : 10060, + ServiceNameEnum.BGPLS .value : 20030, # Used for test and debugging only ServiceNameEnum.DLT_GATEWAY .value : 50051, diff --git a/src/common/tools/context_queries/OpticalConfig.py b/src/common/tools/context_queries/OpticalConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..52727c45df00ca84e1fc6070d922fc1eaecc51c9 --- /dev/null +++ b/src/common/tools/context_queries/OpticalConfig.py @@ -0,0 +1,58 @@ + +from common.method_wrappers.ServiceExceptions import InvalidArgumentsException +from typing import Optional, Union +from uuid import UUID, uuid4, uuid5 + +# Generate a UUIDv5-like from the SHA-1 of "TFS" and no namespace to be used as the NAMESPACE for all +# the context UUIDs generated. For efficiency purposes, the UUID is hardcoded; however, it is produced +# using the following code: +# from hashlib import sha1 +# from uuid import UUID +# hash = sha1(bytes('TFS', 'utf-8')).digest() +# NAMESPACE_TFS = UUID(bytes=hash[:16], version=5) +NAMESPACE_TFS = UUID('200e3a1f-2223-534f-a100-758e29c37f40') + +def get_uuid_from_string(str_uuid_or_name : Union[str, UUID], prefix_for_name : Optional[str] = None) -> str: + # if UUID given, assume it is already a valid UUID + if isinstance(str_uuid_or_name, UUID): return str_uuid_or_name + if not isinstance(str_uuid_or_name, str): + MSG = 'Parameter({:s}) cannot be used to produce a UUID' + raise Exception(MSG.format(str(repr(str_uuid_or_name)))) + try: + # try to parse as UUID + return str(UUID(str_uuid_or_name)) + except: # pylint: disable=bare-except + # produce a UUID within TFS namespace from parameter + if prefix_for_name is not None: + str_uuid_or_name = '{:s}/{:s}'.format(prefix_for_name, str_uuid_or_name) + return str(uuid5(NAMESPACE_TFS, str_uuid_or_name)) + +def get_uuid_random() -> str: + # Generate random UUID. No need to use namespace since "namespace + random = random". + return str(uuid4()) + +def channel_get_uuid( + channel_name :str , allow_random : bool = False +) -> str: + + + if len(channel_name) > 0: + return get_uuid_from_string(channel_name) + if allow_random: return get_uuid_random() + + raise InvalidArgumentsException([ + ('channel uuid', channel_name), + + ], extra_details=['Channel name is required to produce a channel UUID']) + +def opticalconfig_get_uuid( + device_name : str = '', allow_random : bool = False +) -> str: + + if len(device_name) > 0: + return get_uuid_from_string(device_name) + if allow_random: return get_uuid_random() + + raise InvalidArgumentsException([ + ('name', device_name), + ], extra_details=['At least one is required to produce a OpticalConfig UUID']) diff --git a/src/common/tools/descriptor/Tools.py b/src/common/tools/descriptor/Tools.py index b4a76ff4f00d0f6886895cca0ab6f27f7aa8aa43..e95fc756052bf792f0009518b19991b8e87bac68 100644 --- a/src/common/tools/descriptor/Tools.py +++ b/src/common/tools/descriptor/Tools.py @@ -15,6 +15,7 @@ import copy, json from typing import Dict, List, Optional, Tuple, Union from common.DeviceTypes import DeviceTypeEnum +from common.proto.context_pb2 import DeviceDriverEnum def get_descriptors_add_contexts(contexts : List[Dict]) -> List[Dict]: contexts_add = copy.deepcopy(contexts) @@ -95,7 +96,8 @@ def split_devices_by_rules(devices : List[Dict]) -> Tuple[List[Dict], List[Dict] if len(connect_rules) > 0: device_add = copy.deepcopy(device) - device_add['device_endpoints'] = [] + if (device['device_drivers'][0] != DeviceDriverEnum.DEVICEDRIVER_OC): + device_add['device_endpoints'] = [] device_add['device_config'] = {'config_rules': connect_rules} devices_add.append(device_add) diff --git a/src/common/tools/mutex_queues/MutexQueues.py b/src/common/tools/mutex_queues/MutexQueues.py index 96e22a86f012cb8326c380a0ebbf0c1b40cae21c..e1843250093b9ac8c6ce4046f627e2d5251fba55 100644 --- a/src/common/tools/mutex_queues/MutexQueues.py +++ b/src/common/tools/mutex_queues/MutexQueues.py @@ -46,7 +46,16 @@ class MutexQueues: # dictionaty of queues of mutexes: queue_name => queue[mutex] # first mutex is the running one self.mutex_queues : Dict[str, Queue[threading.Event]] = dict() - + + def add_alias(self, queue_name_a : str, queue_name_b : str) -> None: + with self.lock: + if queue_name_a in self.mutex_queues and queue_name_b not in self.mutex_queues: + self.mutex_queues[queue_name_b] = self.mutex_queues[queue_name_a] + elif queue_name_b in self.mutex_queues and queue_name_a not in self.mutex_queues: + self.mutex_queues[queue_name_a] = self.mutex_queues[queue_name_b] + elif queue_name_b not in self.mutex_queues and queue_name_a not in self.mutex_queues: + self.mutex_queues[queue_name_b] = self.mutex_queues.setdefault(queue_name_a, Queue()) + def wait_my_turn(self, queue_name : str) -> None: # create my mutex and enqueue it mutex = threading.Event() diff --git a/src/context/.gitlab-ci.yml b/src/context/.gitlab-ci.yml index 5de4bc1fcbb5bea98a7675253efe060df03a1237..eb12743c3dedce2642cde02a2d1b8a37e8bf19a9 100644 --- a/src/context/.gitlab-ci.yml +++ b/src/context/.gitlab-ci.yml @@ -21,7 +21,7 @@ build context: before_script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY script: - - docker build -t "$IMAGE_NAME:$IMAGE_TAG" -f ./src/$IMAGE_NAME/Dockerfile . + - docker buildx build -t "$IMAGE_NAME:$IMAGE_TAG" -f ./src/$IMAGE_NAME/Dockerfile . - docker tag "$IMAGE_NAME:$IMAGE_TAG" "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" - docker push "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" after_script: diff --git a/src/context/client/ContextClient.py b/src/context/client/ContextClient.py index 13d9dc0035b45845bf11367e02c8830b5151c1d6..3ca4ea16a72c7d2eca8c6b8784f06f992cde69c2 100644 --- a/src/context/client/ContextClient.py +++ b/src/context/client/ContextClient.py @@ -26,7 +26,9 @@ from common.proto.context_pb2 import ( Link, LinkEvent, LinkId, LinkIdList, LinkList, Service, ServiceEvent, ServiceFilter, ServiceId, ServiceIdList, ServiceList, Slice, SliceEvent, SliceFilter, SliceId, SliceIdList, SliceList, - Topology, TopologyDetails, TopologyEvent, TopologyId, TopologyIdList, TopologyList) + Topology, TopologyDetails, TopologyEvent, TopologyId, TopologyIdList, TopologyList, + OpticalConfig, OpticalConfigId, OpticalConfigList +) from common.proto.context_pb2_grpc import ContextServiceStub from common.proto.context_policy_pb2_grpc import ContextPolicyServiceStub from common.proto.policy_pb2 import PolicyRuleIdList, PolicyRuleId, PolicyRuleList, PolicyRule @@ -436,3 +438,32 @@ class ContextClient: response = self.policy_stub.RemovePolicyRule(request) LOGGER.debug('RemovePolicyRule result: {:s}'.format(grpc_message_to_json_string(response))) return response + + #//////////////// Experimental ////////////////// + + @RETRY_DECORATOR + def SetOpticalConfig(self, request : OpticalConfig) -> OpticalConfigId: + LOGGER.debug('SetOpticalConfig request: {:s}'.format(grpc_message_to_json_string(request))) + response = self.stub.SetOpticalConfig(request) + LOGGER.debug('SetOpticalConfig result: {:s}'.format(grpc_message_to_json_string(response))) + return response + + @RETRY_DECORATOR + def GetOpticalConfig(self, request : Empty) -> OpticalConfigList: + LOGGER.debug('GetOpticalConfig request: {:s}'.format(grpc_message_to_json_string(request))) + response = self.stub.GetOpticalConfig(request) + LOGGER.debug('GetOpticalConfig result: {:s}'.format(grpc_message_to_json_string(response))) + return response + + @RETRY_DECORATOR + def SelectOpticalConfig(self,request : OpticalConfigId) -> OpticalConfigList: + LOGGER.debug('SelectOpticalConfig request: {:s}'.format(grpc_message_to_json_string(request))) + response = self.stub.SelectOpticalConfig(request) + LOGGER.debug('SelectOpticalConfig result: {:s}'.format(grpc_message_to_json_string(response))) + return response + @RETRY_DECORATOR + def DeleteOpticalConfig(self,request : OpticalConfigId) -> Empty: + LOGGER.debug('DeleteOpticalConfig request: {:s}'.format(grpc_message_to_json_string(request))) + response = self.stub.DeleteOpticalConfig(request) + LOGGER.debug('DeleteOpticalConfig result: {:s}'.format(grpc_message_to_json_string(response))) + return response diff --git a/src/context/service/ContextServiceServicerImpl.py b/src/context/service/ContextServiceServicerImpl.py index 5aad7f9c9ff3a6fd063b1f364256e760f47e1c33..2b6c61ebeb0960d73621d34e31c32efccf7fbbe0 100644 --- a/src/context/service/ContextServiceServicerImpl.py +++ b/src/context/service/ContextServiceServicerImpl.py @@ -23,7 +23,9 @@ from common.proto.context_pb2 import ( Link, LinkEvent, LinkId, LinkIdList, LinkList, Service, ServiceEvent, ServiceFilter, ServiceId, ServiceIdList, ServiceList, Slice, SliceEvent, SliceFilter, SliceId, SliceIdList, SliceList, - Topology, TopologyDetails, TopologyEvent, TopologyId, TopologyIdList, TopologyList) + Topology, TopologyDetails, TopologyEvent, TopologyId, TopologyIdList, TopologyList, + OpticalConfigList, OpticalConfigId, OpticalConfig +) from common.proto.policy_pb2 import PolicyRuleIdList, PolicyRuleId, PolicyRuleList, PolicyRule from common.proto.context_pb2_grpc import ContextServiceServicer from common.proto.context_policy_pb2_grpc import ContextPolicyServiceServicer @@ -43,6 +45,7 @@ from .database.Slice import ( slice_delete, slice_get, slice_list_ids, slice_list_objs, slice_select, slice_set, slice_unset) from .database.Topology import ( topology_delete, topology_get, topology_get_details, topology_list_ids, topology_list_objs, topology_set) +from .database.OpticalConfig import set_opticalconfig, select_opticalconfig, get_opticalconfig ,delete_opticalconfig LOGGER = logging.getLogger(__name__) @@ -296,3 +299,28 @@ class ContextServiceServicerImpl(ContextServiceServicer, ContextPolicyServiceSer @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) def RemovePolicyRule(self, request : PolicyRuleId, context: grpc.ServicerContext) -> Empty: return policyrule_delete(self.db_engine, self.messagebroker, request) + + # ---------------------------- Experimental ------------------- + + @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) + def GetOpticalConfig(self, request : Empty, context : grpc.ServicerContext) -> OpticalConfigList: + result = get_opticalconfig(self.db_engine) + return OpticalConfigList(opticalconfigs=result) + + @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) + def SetOpticalConfig(self, request : OpticalConfig, context : grpc.ServicerContext) -> OpticalConfigId: + result = set_opticalconfig(self.db_engine, request) + return OpticalConfigId(**result) + + @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) + def SelectOpticalConfig(self, request : OpticalConfigId, context : grpc.ServicerContext) -> OpticalConfig: + result = select_opticalconfig(self.db_engine, request) + optical_config_id = OpticalConfigId() + optical_config_id.CopyFrom(result.opticalconfig_id) + return OpticalConfig(config=result.config, opticalconfig_id=optical_config_id) + + @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) + def DeleteOpticalConfig (self, request : OpticalConfigId, context : grpc.ServicerContext) -> Empty: + delete_opticalconfig(self.db_engine,self.messagebroker, request) + + return Empty() diff --git a/src/context/service/database/Device.py b/src/context/service/database/Device.py index 3aff20ade14532dcb7fbf8ec1033c084aaeead3c..6c3bd24e0de26d9a2a172bc76c5358fde32d0560 100644 --- a/src/context/service/database/Device.py +++ b/src/context/service/database/Device.py @@ -21,7 +21,9 @@ from typing import Dict, List, Optional, Set, Tuple from common.method_wrappers.ServiceExceptions import InvalidArgumentException, NotFoundException from common.message_broker.MessageBroker import MessageBroker from common.proto.context_pb2 import ( - Device, DeviceFilter, DeviceId, DeviceIdList, DeviceList, Empty, EventTypeEnum, TopologyId) + Device, DeviceDriverEnum, DeviceFilter, DeviceId, DeviceIdList, DeviceList, + Empty, EventTypeEnum, TopologyId +) from common.tools.grpc.Tools import grpc_message_to_json_string from common.tools.object_factory.Device import json_device_id from context.service.database.uuids.Topology import topology_get_uuid @@ -103,10 +105,12 @@ def device_set(db_engine : Engine, messagebroker : MessageBroker, request : Devi }) topology_uuids.add(topology_uuid) + is_oc_driver = DeviceDriverEnum.DEVICEDRIVER_OC in set(request.device_drivers) + endpoints_data : List[Dict] = list() for i, endpoint in enumerate(request.device_endpoints): endpoint_device_uuid = endpoint.endpoint_id.device_id.device_uuid.uuid - if len(endpoint_device_uuid) == 0: endpoint_device_uuid = device_uuid + if len(endpoint_device_uuid) == 0 or is_oc_driver : endpoint_device_uuid = device_uuid if endpoint_device_uuid not in {raw_device_uuid, device_uuid}: raise InvalidArgumentException( 'request.device_endpoints[{:d}].device_id.device_uuid.uuid'.format(i), endpoint_device_uuid, @@ -132,6 +136,7 @@ def device_set(db_engine : Engine, messagebroker : MessageBroker, request : Devi 'created_at' : now, 'updated_at' : now, }) + LOGGER.info(f"endpoint data {endpoints_data}") if endpoint_topology_uuid not in topology_uuids: related_topologies.append({ @@ -199,15 +204,15 @@ def device_set(db_engine : Engine, messagebroker : MessageBroker, request : Devi stmt = stmt.returning(TopologyDeviceModel.topology_uuid) topology_uuids = session.execute(stmt).fetchall() - LOGGER.warning('RAW topology_uuids={:s}'.format(str(topology_uuids))) + #LOGGER.warning('RAW topology_uuids={:s}'.format(str(topology_uuids))) if len(topology_uuids) > 0: topology_uuids = [topology_uuid[0] for topology_uuid in topology_uuids] - LOGGER.warning('NEW topology_uuids={:s}'.format(str(topology_uuids))) + #LOGGER.warning('NEW topology_uuids={:s}'.format(str(topology_uuids))) query = session.query(TopologyModel) query = query.filter(TopologyModel.topology_uuid.in_(topology_uuids)) device_topologies : List[TopologyModel] = query.all() device_topology_ids = [obj.dump_id() for obj in device_topologies] - LOGGER.warning('device_topology_ids={:s}'.format(str(device_topology_ids))) + #LOGGER.warning('device_topology_ids={:s}'.format(str(device_topology_ids))) updated_components = False @@ -229,7 +234,7 @@ def device_set(db_engine : Engine, messagebroker : MessageBroker, request : Devi changed_config_rules = upsert_config_rules(session, config_rules, device_uuid=device_uuid) - return updated or updated_endpoints or changed_config_rules, device_topology_ids + return updated or updated_endpoints or updated_components or changed_config_rules, device_topology_ids updated, device_topology_ids = run_transaction(sessionmaker(bind=db_engine), callback) device_id = json_device_id(device_uuid) @@ -302,4 +307,4 @@ def device_select(db_engine : Engine, request : DeviceFilter) -> DeviceList: obj_list : List[DeviceModel] = query.filter(DeviceModel.device_uuid.in_(device_uuids)).all() return [obj.dump(**dump_params) for obj in obj_list] devices = run_transaction(sessionmaker(bind=db_engine), callback) - return DeviceList(devices=devices) \ No newline at end of file + return DeviceList(devices=devices) diff --git a/src/context/service/database/Events.py b/src/context/service/database/Events.py index 36774a5170ba20914555b0adc47a5c2faa592799..a53413592372243143dc136eeda1f3249dcd672f 100644 --- a/src/context/service/database/Events.py +++ b/src/context/service/database/Events.py @@ -17,7 +17,8 @@ from typing import Dict, Iterator, Set from common.message_broker.Message import Message from common.message_broker.MessageBroker import MessageBroker from common.proto.context_pb2 import ( - ConnectionEvent, ContextEvent, DeviceEvent, EventTypeEnum, LinkEvent, ServiceEvent, SliceEvent, TopologyEvent) + ConnectionEvent, ContextEvent, DeviceEvent, EventTypeEnum, LinkEvent, ServiceEvent, SliceEvent, TopologyEvent , + OpticalConfigEvent) class EventTopicEnum(enum.Enum): CONNECTION = 'connection' @@ -28,6 +29,8 @@ class EventTopicEnum(enum.Enum): SERVICE = 'service' SLICE = 'slice' TOPOLOGY = 'topology' + OPTICALCONFIG = 'optical-config' + TOPIC_TO_EVENTCLASS = { EventTopicEnum.CONNECTION.value : ConnectionEvent, @@ -38,6 +41,8 @@ TOPIC_TO_EVENTCLASS = { EventTopicEnum.SERVICE.value : ServiceEvent, EventTopicEnum.SLICE.value : SliceEvent, EventTopicEnum.TOPOLOGY.value : TopologyEvent, + EventTopicEnum.OPTICALCONFIG.value : OpticalConfigEvent + } CONSUME_TIMEOUT = 0.5 # seconds @@ -60,6 +65,10 @@ def notify_event_topology(messagebroker : MessageBroker, event_type : EventTypeE def notify_event_device(messagebroker : MessageBroker, event_type : EventTypeEnum, device_id : Dict) -> None: notify_event(messagebroker, EventTopicEnum.DEVICE, event_type, {'device_id': device_id}) + +def notify_event_opticalconfig(messagebroker : MessageBroker, event_type : EventTypeEnum, opticalconfig_id : Dict) -> None: + notify_event(messagebroker, EventTopicEnum.DEVICE, event_type, {'opticalconfig_id': opticalconfig_id}) + def notify_event_link(messagebroker : MessageBroker, event_type : EventTypeEnum, link_id : Dict) -> None: notify_event(messagebroker, EventTopicEnum.LINK, event_type, {'link_id': link_id}) diff --git a/src/context/service/database/Link.py b/src/context/service/database/Link.py index e2060c4542bebad82b1ed83dbcce612114862ae7..ccc22a472c4f3bcfc0655e9456f0b4403a3f6f9d 100644 --- a/src/context/service/database/Link.py +++ b/src/context/service/database/Link.py @@ -159,15 +159,15 @@ def link_set(db_engine : Engine, messagebroker : MessageBroker, request : Link) stmt = stmt.returning(TopologyLinkModel.topology_uuid) topology_uuids = session.execute(stmt).fetchall() - LOGGER.warning('RAW topology_uuids={:s}'.format(str(topology_uuids))) + #LOGGER.warning('RAW topology_uuids={:s}'.format(str(topology_uuids))) if len(topology_uuids) > 0: topology_uuids = [topology_uuid[0] for topology_uuid in topology_uuids] - LOGGER.warning('NEW topology_uuids={:s}'.format(str(topology_uuids))) + #LOGGER.warning('NEW topology_uuids={:s}'.format(str(topology_uuids))) query = session.query(TopologyModel) query = query.filter(TopologyModel.topology_uuid.in_(topology_uuids)) link_topologies : List[TopologyModel] = query.all() link_topology_ids = [obj.dump_id() for obj in link_topologies] - LOGGER.warning('link_topology_ids={:s}'.format(str(link_topology_ids))) + #LOGGER.warning('link_topology_ids={:s}'.format(str(link_topology_ids))) return updated or updated_endpoints, link_topology_ids diff --git a/src/context/service/database/OpticalConfig.py b/src/context/service/database/OpticalConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..8251af887b56d6083df0e569d54702f240fe77da --- /dev/null +++ b/src/context/service/database/OpticalConfig.py @@ -0,0 +1,144 @@ +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# +# 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. + +import json, logging +from sqlalchemy.dialects.postgresql import insert +from common.message_broker.MessageBroker import MessageBroker +from sqlalchemy.engine import Engine +from sqlalchemy.orm import Session, sessionmaker +from sqlalchemy_cockroachdb import run_transaction +from common.proto.context_pb2 import OpticalConfig, OpticalConfigId , Empty , EventTypeEnum +from .models.OpticalConfigModel import OpticalConfigModel , OpticalChannelModel +from context.service.database.uuids.OpticalConfig import channel_get_uuid +from .Events import notify_event_opticalconfig + +LOGGER = logging.getLogger(__name__) + +def get_opticalconfig(db_engine : Engine): + def callback(session:Session): + optical_configs = list() + results = session.query(OpticalConfigModel).all() + + for obj in results: + LOGGER.info(f"opticaln config obj from context {obj.dump()}") + + optical_config = OpticalConfig() + optical_config.config = json.dumps(obj.dump()) + optical_config.opticalconfig_id.opticalconfig_uuid = obj.dump_id()["opticalconfig_uuid"] + optical_configs.append(optical_config) + return optical_configs + obj = run_transaction(sessionmaker(bind=db_engine), callback) + return obj + +def set_opticalconfig(db_engine : Engine, request : OpticalConfig): + LOGGER.info(f"request {request} ") + opticalconfig_id = OpticalConfigId() + opticalconfig_id.opticalconfig_uuid = request.opticalconfig_id.opticalconfig_uuid + OpticalConfig_data = [] + if request.config: + channels = [] + transceivers = [] + config = json.loads(request.config) + + if 'transceivers' in config and len(config['transceivers']['transceiver']) > 0: + transceivers = [transceiver for transceiver in config['transceivers']['transceiver']] + + if 'channels' in config and len(config['channels']) > 0: + #channels = [channel['name']['index'] for channel in config['channels']] + for channel_params in config['channels']: + channels.append( + { + "channel_uuid":channel_get_uuid(channel_params['name']['index']), + "opticalconfig_uuid": request.opticalconfig_id.opticalconfig_uuid, + "channel_name" : channel_params['name']['index'], + "frequency" : int(channel_params["frequency"]) if "frequency" in channel_params else 0, + "operational_mode" : int(channel_params["operational-mode"]) if "operational-mode" in channel_params else 0, + "target_output_power" : channel_params["target-output-power"] if "target-output-power" in channel_params else '', + } + ) + + OpticalConfig_data.append( + { + "opticalconfig_uuid": request.opticalconfig_id.opticalconfig_uuid, + "transcievers" : transceivers, + "interfaces" : json.dumps(config["interfaces"]["interface"]), + "channel_namespace" : config["channel_namespace"], + "endpoints" : [json.dumps(endpoint) for endpoint in config["endpoints"]],} + + ) + + + LOGGER.info(f"optical config to set {OpticalConfig_data} ") + LOGGER.info(f"channels {channels}") + def callback(session:Session)->bool: + stmt = insert(OpticalConfigModel).values(OpticalConfig_data) + + stmt = stmt.on_conflict_do_update( + index_elements=[OpticalConfigModel.opticalconfig_uuid], + set_=dict( + channel_namespace=stmt.excluded.channel_namespace + ) + ) + stmt = stmt.returning(OpticalConfigModel.opticalconfig_uuid) + opticalconfig_id = session.execute(stmt).fetchone() + if (len(channels)>0) : + + stmt = insert(OpticalChannelModel).values(channels) + + stmt = stmt.on_conflict_do_update( + index_elements=[OpticalChannelModel.channel_uuid , OpticalConfigModel.opticalconfig_uuid], + set_=dict( + channel_name= stmt.excluded.channel_name , + frequency = stmt.excluded.frequency, + operational_mode=stmt.excluded.operational_mode, + target_output_power=stmt.excluded.target_output_power, + + ) + + ) + stmt = stmt.returning(OpticalChannelModel.channel_uuid) + opticalChannel_id = session.execute(stmt).fetchone() + LOGGER.info(f"new optical channel config {opticalChannel_id}") + opticalconfig_id = run_transaction(sessionmaker(bind=db_engine), callback) + return {'opticalconfig_uuid': opticalconfig_id} + +def select_opticalconfig(db_engine:Engine,request:OpticalConfigId): + def callback(session : Session) -> OpticalConfig: + result = OpticalConfig() + stmt = session.query(OpticalConfigModel) + stmt = stmt.filter_by(opticalconfig_uuid=request.opticalconfig_uuid) + obj = stmt.first() + if obj is not None: + result.config = json.dumps(obj.dump()) + result.opticalconfig_id.opticalconfig_uuid = obj.opticalconfig_uuid + return result + return run_transaction(sessionmaker(bind=db_engine, expire_on_commit=False), callback) + + +def delete_opticalconfig(db_engine : Engine ,messagebroker : MessageBroker, request : OpticalConfigId): + opticalconfig_uuid = request.opticalconfig_uuid + def callback(session : Session): + query = session.query(OpticalConfigModel) + + num_deleted = session.query(OpticalConfigModel).filter_by(opticalconfig_uuid=opticalconfig_uuid).delete() + return num_deleted > 0 + deleted = run_transaction(sessionmaker(bind=db_engine), callback) + + if deleted: + notify_event_opticalconfig(messagebroker, EventTypeEnum.EVENTTYPE_REMOVE, opticalconfig_uuid) + + + + + return Empty() diff --git a/src/context/service/database/Service.py b/src/context/service/database/Service.py index fc196ddded291aa82c8f9df932c15611d13121e4..337bf592f785db97d5924aa7da17772c35eac1b2 100644 --- a/src/context/service/database/Service.py +++ b/src/context/service/database/Service.py @@ -20,7 +20,9 @@ from sqlalchemy.orm import Session, selectinload, sessionmaker from sqlalchemy_cockroachdb import run_transaction from typing import Dict, List, Optional, Set from common.proto.context_pb2 import ( - ContextId, Empty, EventTypeEnum, Service, ServiceFilter, ServiceId, ServiceIdList, ServiceList) + ContextId, Empty, EventTypeEnum, Service, ServiceFilter, ServiceId, ServiceIdList, + ServiceList, ServiceTypeEnum +) from common.message_broker.MessageBroker import MessageBroker from common.method_wrappers.ServiceExceptions import InvalidArgumentException, NotFoundException from common.tools.object_factory.Context import json_context_id @@ -84,6 +86,9 @@ def service_set(db_engine : Engine, messagebroker : MessageBroker, request : Ser context_uuid,service_uuid = service_get_uuid(request.service_id, service_name=service_name, allow_random=True) service_type = grpc_to_enum__service_type(request.service_type) + if service_type is None and request.service_type == ServiceTypeEnum.SERVICETYPE_OPTICAL_CONNECTIVITY: + service_type = "OPTICAL_CONNECTIVITY" + service_status = grpc_to_enum__service_status(request.service_status.service_status) now = datetime.datetime.utcnow() diff --git a/src/context/service/database/models/OpticalConfigModel.py b/src/context/service/database/models/OpticalConfigModel.py new file mode 100644 index 0000000000000000000000000000000000000000..9937f342df3c669f36401850e6ea9685b667214f --- /dev/null +++ b/src/context/service/database/models/OpticalConfigModel.py @@ -0,0 +1,70 @@ +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# +# 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. + +import json +from sqlalchemy import Column, String, Integer , ForeignKey +from sqlalchemy.dialects.postgresql import ARRAY +from sqlalchemy.orm import relationship +from ._Base import _Base + +class OpticalConfigModel(_Base): + __tablename__ = 'optical_config' + opticalconfig_uuid = Column(String, primary_key=True) + + transcievers = Column(ARRAY(String), nullable=True) + interfaces = Column(String, nullable=True) + channel_namespace = Column(String, nullable=True) + endpoints = Column(ARRAY(String), nullable=True) + channels = relationship("OpticalChannelModel") + + + def dump_id (self ): + return { + "opticalconfig_uuid":self.opticalconfig_uuid + } + + def dump(self): + return { + "channels" : [channel.dump() for channel in self.channels], + "transceivers" : {"transceiver": [transciever for transciever in self.transcievers]}, + "interfaces" : {"interface": json.loads(self.interfaces)}, + "channel_namespace" : self.channel_namespace, + "endpoints" : [json.loads(endpoint) for endpoint in self.endpoints], + + } + + + +class OpticalChannelModel(_Base): + __tablename__ = 'optical_channel' + channel_uuid = Column(String, primary_key=True) + channel_name = Column (String,nullable=True) + frequency = Column(Integer, nullable=True) + operational_mode = Column(Integer, nullable=True) + target_output_power = Column(String, nullable=True) + opticalconfig_uuid = Column(ForeignKey('optical_config.opticalconfig_uuid', ondelete='CASCADE' ), primary_key=True) + opticalconfig = relationship('OpticalConfigModel', back_populates='channels') + def dump_id (self ): + return { + "channel_uuid":self.channel_uuid + } + + def dump(self): + return { + "name" :{'index':self.channel_name}, + "frequency" : self.frequency, + "target-output-power" : self.target_output_power, + "operational-mode" : self.operational_mode, + } + diff --git a/src/context/service/database/models/OpticalLinkModel.py b/src/context/service/database/models/OpticalLinkModel.py new file mode 100644 index 0000000000000000000000000000000000000000..b94eeda932faae1e546be72bc20649add3af7a7a --- /dev/null +++ b/src/context/service/database/models/OpticalLinkModel.py @@ -0,0 +1,78 @@ + +import operator +from sqlalchemy import CheckConstraint, Column, DateTime, Float, ForeignKey, Integer, String ,Boolean +from sqlalchemy.dialects.postgresql import UUID +from sqlalchemy.types import ARRAY +from sqlalchemy.orm import relationship +from typing import Dict +from ._Base import _Base + +class OpticalLinkModel(_Base): + __tablename__ = 'opticallink' + + optical_link_uuid = Column(UUID(as_uuid=False), primary_key=True) + optical_link_name = Column(String, nullable=False) + length = Column(Integer, nullable=True) + source = Column(String, nullable=True) + target = Column(String, nullable=True) + optical_link_fiber= relationship("FiberModel") + created_at = Column(DateTime, nullable=False) + updated_at = Column(DateTime, nullable=False) + + + + + def dump_id(self) -> Dict: + return {'optical_link_uuid': {'uuid': self.link_uuid}} + + def dump(self) -> Dict: + result = { + 'optical_link_id' : self.dump_id(), + 'name' : self.optical_link_name, + 'details': { + "length" : self.length, + 'source' : self.source, + "target" : self.target, + 'fibers' : [ fiber.dump() for fiber in self.optical_link_fiber ] + } + + } + + return result + +class FiberModel(_Base): + __tablename__ = 'fiber' + fiber_uuid = Column(UUID(as_uuid=False), primary_key=True) + fiber_length = Column(Integer, nullable=True) + source_port = Column(String, nullable=True) + destination_port = Column(String, nullable=True) + local_peer_port = Column(String, nullable=True) + remote_peer_port = Column(String, nullable=True) + used = Column(Boolean ,nullable=true) + c_slots = Column (ARRAY(Integer),nullable=True) + l_slots = Column (ARRAY(Integer),nullable=True) + s_slots = Column (ARRAY(Integer),nullable=True) + optical_link_uuid = Column(ForeignKey('opticallink.optical_link_uuid', ondelete='CASCADE' ), primary_key=True) + optical_link = relationship('OpticalLinkModel', back_populates='optical_link_fibers') + + + def dump_id(self) -> Dict: + return {'fiber_uuid': {'uuid': self.fiber_uuid}} + + + def dump(self) -> Dict: + result = { + 'ID' : self.dump_id(), + 'length' : self.fiber_length, + "src_port" : self.source_port, + "dst_port" : self.destination_port, + "local_peer_port" : self.local_peer_port, + "remote_peer_port" : self.remote_peer_port, + "used" : self.used, + "c_slots" : self.c_slots , + "l_slots" : self.l_slots, + "s_slots" : self.s_slots + + } + + return result \ No newline at end of file diff --git a/src/context/service/database/models/enums/DeviceDriver.py b/src/context/service/database/models/enums/DeviceDriver.py index 8e15bf058599eeed0629fc1249af0d052183db28..2ccdda2725a7f7bb13ba296d4eca25f88b1e73d1 100644 --- a/src/context/service/database/models/enums/DeviceDriver.py +++ b/src/context/service/database/models/enums/DeviceDriver.py @@ -33,6 +33,7 @@ class ORM_DeviceDriverEnum(enum.Enum): GNMI_OPENCONFIG = DeviceDriverEnum.DEVICEDRIVER_GNMI_OPENCONFIG FLEXSCALE = DeviceDriverEnum.DEVICEDRIVER_FLEXSCALE IETF_ACTN = DeviceDriverEnum.DEVICEDRIVER_IETF_ACTN + OC = DeviceDriverEnum.DEVICEDRIVER_OC grpc_to_enum__device_driver = functools.partial( grpc_to_enum, DeviceDriverEnum, ORM_DeviceDriverEnum) diff --git a/src/context/service/database/models/enums/ServiceType.py b/src/context/service/database/models/enums/ServiceType.py index ce198f8c1f795f25da547e2d5974059062489709..01ed68c1708dc617a46edc31e94fc07d79e278e1 100644 --- a/src/context/service/database/models/enums/ServiceType.py +++ b/src/context/service/database/models/enums/ServiceType.py @@ -28,6 +28,7 @@ class ORM_ServiceTypeEnum(enum.Enum): TAPI_CONNECTIVITY_SERVICE = ServiceTypeEnum.SERVICETYPE_TAPI_CONNECTIVITY_SERVICE TE = ServiceTypeEnum.SERVICETYPE_TE E2E = ServiceTypeEnum.SERVICETYPE_E2E + OPTICAL_CONNECTIVITY = ServiceTypeEnum.SERVICETYPE_OPTICAL_CONNECTIVITY grpc_to_enum__service_type = functools.partial( grpc_to_enum, ServiceTypeEnum, ORM_ServiceTypeEnum) diff --git a/src/context/service/database/models/enums/_GrpcToEnum.py b/src/context/service/database/models/enums/_GrpcToEnum.py index 0cde8ac5eebdb724d749b63663f30afd02435884..cc98a5f61bf360c0bcc86bc366da5f6ba4411741 100644 --- a/src/context/service/database/models/enums/_GrpcToEnum.py +++ b/src/context/service/database/models/enums/_GrpcToEnum.py @@ -14,16 +14,21 @@ import re from enum import Enum -from typing import Optional +from typing import Any, Optional # Enumeration classes are redundant with gRPC classes, but gRPC does not provide a programmatical method to retrieve # the values it expects from strings containing the desired value symbol or its integer value, so a kind of mapping is # required. Besides, ORM Models expect Enum classes in EnumeratedFields; we create specific and conveniently defined # Enum classes to serve both purposes. -def grpc_to_enum(grpc_enum_class, orm_enum_class : Enum, grpc_enum_value, grpc_enum_prefix : Optional[str] = None): +def grpc_to_enum( + grpc_enum_class, orm_enum_class : Enum, grpc_enum_value, grpc_enum_prefix : Optional[str] = None, + fail_if_not_found : bool = False +) -> Optional[Any]: enum_name = grpc_enum_class.Name(grpc_enum_value) + _orig_enum_name = enum_name + _orig_grpc_enum_prefix = grpc_enum_prefix if grpc_enum_prefix is None: grpc_enum_prefix = orm_enum_class.__name__.upper() #grpc_enum_prefix = re.sub(r'^ORM_(.+)$', r'\1', grpc_enum_prefix) @@ -35,4 +40,7 @@ def grpc_to_enum(grpc_enum_class, orm_enum_class : Enum, grpc_enum_value, grpc_e enum_name = enum_name.replace(grpc_enum_prefix, '') orm_enum_value = orm_enum_class._member_map_.get(enum_name) + if orm_enum_value is None and fail_if_not_found: + MSG = 'Unable to map gRPC Enum Value ({:s} / {:s}) to ORM Enum Value; grpc_enum_prefix={:s}' + raise Exception(MSG.format(str(grpc_enum_value), str(_orig_enum_name), str(_orig_grpc_enum_prefix))) return orm_enum_value diff --git a/src/context/service/database/uuids/OpticalConfig.py b/src/context/service/database/uuids/OpticalConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..0003b5712c917f046f942e40a638dd1c95e3d62d --- /dev/null +++ b/src/context/service/database/uuids/OpticalConfig.py @@ -0,0 +1,17 @@ + +from common.method_wrappers.ServiceExceptions import InvalidArgumentsException +from ._Builder import get_uuid_from_string, get_uuid_random + +def channel_get_uuid( + channel_name :str , allow_random : bool = False +) -> str: + + + if len(channel_name) > 0: + return get_uuid_from_string(channel_name) + if allow_random: return get_uuid_random() + + raise InvalidArgumentsException([ + ('channel uuid', channel_name), + + ], extra_details=['Channel name is required to produce a channel UUID']) diff --git a/src/dbscanserving/.gitlab-ci.yml b/src/dbscanserving/.gitlab-ci.yml index d665bdaf2993bc578024cfc7ef8517ae44ccef7a..2753e4c496198d5eef2d64ab66e0d9d52a179d3b 100644 --- a/src/dbscanserving/.gitlab-ci.yml +++ b/src/dbscanserving/.gitlab-ci.yml @@ -21,7 +21,7 @@ build dbscanserving: before_script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY script: - - docker build -t "$IMAGE_NAME:$IMAGE_TAG" -f ./src/$IMAGE_NAME/Dockerfile . + - docker buildx build -t "$IMAGE_NAME:$IMAGE_TAG" -f ./src/$IMAGE_NAME/Dockerfile . - docker tag "$IMAGE_NAME:$IMAGE_TAG" "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" - docker push "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" after_script: diff --git a/src/device/.gitlab-ci.yml b/src/device/.gitlab-ci.yml index bcc2e05e50f63fd6552bb53b4d23c0ae0e2e7302..83b18a1225d8a27fba5799fb761d2a49c7fb2090 100644 --- a/src/device/.gitlab-ci.yml +++ b/src/device/.gitlab-ci.yml @@ -21,7 +21,7 @@ build device: before_script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY script: - - docker build -t "$IMAGE_NAME:$IMAGE_TAG" -f ./src/$IMAGE_NAME/Dockerfile . + - docker buildx build -t "$IMAGE_NAME:$IMAGE_TAG" -f ./src/$IMAGE_NAME/Dockerfile . - docker tag "$IMAGE_NAME:$IMAGE_TAG" "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" - docker push "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" after_script: diff --git a/src/device/Config.py b/src/device/Config.py index 1549d9811aa5d1c193a44ad45d0d7773236c0612..2e831a4054522db5206ad424483367a20be324b9 100644 --- a/src/device/Config.py +++ b/src/device/Config.py @@ -12,3 +12,9 @@ # See the License for the specific language governing permissions and # limitations under the License. + +import os + +TRUE_VALUES = {'T', 'TRUE', 'YES', '1'} +DEVICE_EMULATED_ONLY = os.environ.get('DEVICE_EMULATED_ONLY') +LOAD_ALL_DEVICE_DRIVERS = (DEVICE_EMULATED_ONLY is None) or (DEVICE_EMULATED_ONLY.upper() not in TRUE_VALUES) diff --git a/src/device/Dockerfile b/src/device/Dockerfile index 909ae3bd31817401412629cbc04b5c0577b40355..b230350c7b331eefbb6d4ac0f9bf3b5b46364254 100644 --- a/src/device/Dockerfile +++ b/src/device/Dockerfile @@ -62,9 +62,11 @@ RUN python3 -m pip install -r requirements.txt # Add component files into working directory WORKDIR /var/teraflow -COPY src/context/. context/ +COPY src/context/__init__.py context/__init__.py +COPY src/context/client/. context/client/ +COPY src/monitoring/__init__.py monitoring/__init__.py +COPY src/monitoring/client/. monitoring/client/ COPY src/device/. device/ -COPY src/monitoring/. monitoring/ RUN mkdir -p tests/tools/mock_ietf_actn_sdn_ctrl RUN touch tests/__init__.py diff --git a/src/device/client/DeviceClient.py b/src/device/client/DeviceClient.py index b88727983474f1f815caa959b8ee8ccfb5b3623b..3fde3df778e32df20c863ff110a1eb572f38d177 100644 --- a/src/device/client/DeviceClient.py +++ b/src/device/client/DeviceClient.py @@ -15,12 +15,12 @@ import grpc, logging from common.Constants import ServiceNameEnum from common.Settings import get_service_host, get_service_port_grpc -from common.proto.context_pb2 import Device, DeviceConfig, DeviceId, Empty +from common.proto.context_pb2 import Device, DeviceConfig, DeviceId, Empty,OpticalConfig,OpticalConfigId from common.proto.device_pb2 import MonitoringSettings from common.proto.device_pb2_grpc import DeviceServiceStub from common.tools.client.RetryDecorator import retry, delay_exponential from common.tools.grpc.Tools import grpc_message_to_json_string - +from common.proto.openconfig_device_pb2_grpc import OpenConfigServiceStub LOGGER = logging.getLogger(__name__) MAX_RETRIES = 15 DELAY_FUNCTION = delay_exponential(initial=0.01, increment=2.0, maximum=5.0) @@ -34,12 +34,14 @@ class DeviceClient: LOGGER.debug('Creating channel to {:s}...'.format(str(self.endpoint))) self.channel = None self.stub = None + self.openconfig_stub=None self.connect() LOGGER.debug('Channel created') def connect(self): self.channel = grpc.insecure_channel(self.endpoint) self.stub = DeviceServiceStub(self.channel) + self.openconfig_stub=OpenConfigServiceStub(self.channel) def close(self): if self.channel is not None: self.channel.close() @@ -80,3 +82,8 @@ class DeviceClient: response = self.stub.MonitorDeviceKpi(request) LOGGER.debug('MonitorDeviceKpi result: {:s}'.format(grpc_message_to_json_string(response))) return response + def ConfigureOpticalDevice(self, request : OpticalConfig) -> OpticalConfigId: + LOGGER.debug('ConfigureOpticalDevice request: {:s}'.format(grpc_message_to_json_string(request))) + response = self.openconfig_stub.ConfigureOpticalDevice(request) + LOGGER.debug('ConfigureOpticalDevice result: {:s}'.format(grpc_message_to_json_string(response))) + return response diff --git a/src/device/service/DeviceService.py b/src/device/service/DeviceService.py index 6d27ef96eef4b93fa7d6ca294d1fd645e815af03..0e1ce79f955607cceed2bb791e44ae547b5772f5 100644 --- a/src/device/service/DeviceService.py +++ b/src/device/service/DeviceService.py @@ -12,13 +12,17 @@ # See the License for the specific language governing permissions and # limitations under the License. +import os from common.Constants import ServiceNameEnum from common.Settings import get_service_port_grpc from common.proto.device_pb2_grpc import add_DeviceServiceServicer_to_server +from common.proto.openconfig_device_pb2_grpc import add_OpenConfigServiceServicer_to_server from common.tools.service.GenericGrpcService import GenericGrpcService +from device.Config import LOAD_ALL_DEVICE_DRIVERS from .driver_api.DriverInstanceCache import DriverInstanceCache from .DeviceServiceServicerImpl import DeviceServiceServicerImpl from .monitoring.MonitoringLoops import MonitoringLoops +from .OpenConfigServicer import OpenConfigServicer # Custom gRPC settings # Multiple clients might keep connections alive waiting for RPC methods to be executed. @@ -31,10 +35,14 @@ class DeviceService(GenericGrpcService): super().__init__(port, max_workers=GRPC_MAX_WORKERS, cls_name=cls_name) self.monitoring_loops = MonitoringLoops() self.device_servicer = DeviceServiceServicerImpl(driver_instance_cache, self.monitoring_loops) + if LOAD_ALL_DEVICE_DRIVERS: + self.openconfig_device_servicer = OpenConfigServicer(driver_instance_cache,self.monitoring_loops) def install_servicers(self): self.monitoring_loops.start() add_DeviceServiceServicer_to_server(self.device_servicer, self.server) + if LOAD_ALL_DEVICE_DRIVERS: + add_OpenConfigServiceServicer_to_server(self.openconfig_device_servicer,self.server) def stop(self): super().stop() diff --git a/src/device/service/DeviceServiceServicerImpl.py b/src/device/service/DeviceServiceServicerImpl.py index 3df7c482272804eb2589ed1e7569f0a2e822ad21..4f0ba5722ab6c66104e1aaaccba229c356911603 100644 --- a/src/device/service/DeviceServiceServicerImpl.py +++ b/src/device/service/DeviceServiceServicerImpl.py @@ -20,7 +20,9 @@ from common.Settings import ENVVAR_SUFIX_SERVICE_HOST, get_env_var_name from common.method_wrappers.Decorator import MetricTypeEnum, MetricsPool, safe_and_metered_rpc_method from common.method_wrappers.ServiceExceptions import NotFoundException, OperationFailedException from common.proto.context_pb2 import ( - Device, DeviceConfig, DeviceDriverEnum, DeviceId, DeviceOperationalStatusEnum, Empty, Link) + Device, DeviceConfig, DeviceDriverEnum, DeviceId, DeviceOperationalStatusEnum, Empty, Link, + OpticalConfig, OpticalConfigId +) from common.proto.device_pb2 import MonitoringSettings from common.proto.device_pb2_grpc import DeviceServiceServicer from common.tools.context_queries.Device import get_device @@ -58,7 +60,8 @@ class DeviceServiceServicerImpl(DeviceServiceServicer): device_uuid = request.device_id.device_uuid.uuid connection_config_rules = check_connect_rules(request.device_config) - check_no_endpoints(request.device_endpoints) + if request.device_drivers[0] != DeviceDriverEnum.DEVICEDRIVER_OC: + check_no_endpoints(request.device_endpoints) t1 = time.time() @@ -85,9 +88,11 @@ class DeviceServiceServicerImpl(DeviceServiceServicer): # update device_uuid to honor UUID provided by Context device_uuid = device.device_id.device_uuid.uuid + device_name = device.name t2 = time.time() + self.mutex_queues.add_alias(device_uuid, device_name) self.mutex_queues.wait_my_turn(device_uuid) t3 = time.time() try: @@ -138,6 +143,13 @@ class DeviceServiceServicerImpl(DeviceServiceServicer): else: # ZTP is not deployed; assume the device is ready while onboarding and set them as enabled. device.device_operational_status = DeviceOperationalStatusEnum.DEVICEOPERATIONALSTATUS_ENABLED + + # temporary line + if request.device_drivers[0] == DeviceDriverEnum.DEVICEDRIVER_OC and len(request.device_endpoints) > 0: + #for endpoint in request.device_endpoints: + # #endpoint.endpoint_id.device_id.CopyFrom(device.device_id) + # pass + device.device_endpoints.extend(request.device_endpoints) device_id = context_client.SetDevice(device) diff --git a/src/device/service/OpenConfigServicer.py b/src/device/service/OpenConfigServicer.py new file mode 100644 index 0000000000000000000000000000000000000000..e0b7c5be9c30e7d6fda7b9624c3a98b4b0755b4b --- /dev/null +++ b/src/device/service/OpenConfigServicer.py @@ -0,0 +1,105 @@ +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# +# 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. + +import grpc, logging, json +from common.method_wrappers.Decorator import MetricsPool, safe_and_metered_rpc_method +from common.method_wrappers.ServiceExceptions import NotFoundException +from common.proto.context_pb2 import ( + Device, DeviceId, DeviceOperationalStatusEnum, Empty, OpticalConfig, OpticalConfig +) +from common.proto.device_pb2_grpc import DeviceServiceServicer +from common.tools.context_queries.Device import get_device +from common.tools.mutex_queues.MutexQueues import MutexQueues +from context.client.ContextClient import ContextClient +from .driver_api._Driver import _Driver +from .driver_api.DriverInstanceCache import DriverInstanceCache, get_driver +from .monitoring.MonitoringLoops import MonitoringLoops +from .Tools import extract_resources +from .Tools import check_no_endpoints + +LOGGER = logging.getLogger(__name__) + +METRICS_POOL = MetricsPool('Device', 'RPC') + +METRICS_POOL_DETAILS = MetricsPool('Device', 'execution', labels={ + 'driver': '', 'operation': '', 'step': '', +}) + +class OpenConfigServicer(DeviceServiceServicer): + def __init__(self, driver_instance_cache : DriverInstanceCache, monitoring_loops : MonitoringLoops) -> None: + LOGGER.debug('Creating Servicer...') + self.driver_instance_cache = driver_instance_cache + self.monitoring_loops = monitoring_loops + self.mutex_queues = MutexQueues() + LOGGER.debug('Servicer Created') + + @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) + def AddOpenConfigDevice(self, request : OpticalConfig, context : grpc.ServicerContext) -> DeviceId: + device_uuid = request.device_id.device_uuid.uuid + check_no_endpoints(request.device_endpoints) + + context_client = ContextClient() + device = get_device(context_client, device_uuid, rw_copy=True) + if device is None: + # not in context, create blank one to get UUID, and populate it below + device = Device() + device.device_id.CopyFrom(request.device_id) # pylint: disable=no-member + device.name = request.name + device.device_type = request.device_type + device.device_operational_status = DeviceOperationalStatusEnum.DEVICEOPERATIONALSTATUS_UNDEFINED + device.device_drivers.extend(request.device_drivers) # pylint: disable=no-member + device.device_config.CopyFrom(request.device_config) + device.device_endpoints.extend(request.device_endpoints) + # pylint: disable=no-member + device_id = context_client.SetDevice(device) + device = get_device(context_client, device_id.device_uuid.uuid, rw_copy=True) + + # update device_uuid to honor UUID provided by Context + device_uuid = device.device_id.device_uuid.uuid + self.mutex_queues.wait_my_turn(device_uuid) + try: + device_id = context_client.SetDevice(device) + except Exception as error : + LOGGER.debug("error %s",error) + + @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) + def ConfigureOpticalDevice (self, request : OpticalConfig, context : grpc.ServicerContext) -> Empty: + device_uuid = request.opticalconfig_id.opticalconfig_uuid + resources=[] + is_all_good=True + config =json.loads(request.config) + LOGGER.info(f" config from openconfigservicer {config}") + try: + context_client = ContextClient() + device = get_device( + context_client, device_uuid, rw_copy=True, include_endpoints=True, include_components=False, + include_config_rules=False) + LOGGER.info(f"device is {device}") + if device is None: + raise NotFoundException('Device', device_uuid, extra_details='loading in ConfigureDevice') + resources,conditions=extract_resources(config=config,device=device) + LOGGER.info(f"from openconfigservicer {resources} and conditions {conditions}") + driver : _Driver = get_driver(self.driver_instance_cache, device) + results = driver.SetConfig(resources=resources,conditions=conditions) + for result in results: + if not result : + is_all_good=False + LOGGER.info(f"resluts {results} and is_all_good {is_all_good}") + if is_all_good: + driver.GetConfig(resource_keys=[]) + #TODO: add a control with the NETCONF get + #driver.GetConfig(resource_keys=filter_fields) + except Exception as e: + LOGGER.info("error in configuring %s",e) + return Empty() diff --git a/src/device/service/Tools.py b/src/device/service/Tools.py index b2b206471e07b654e5339f81db632699ae8b95df..bd6a2070aa7763b3c7d22cdf8667eb949fcf6d66 100644 --- a/src/device/service/Tools.py +++ b/src/device/service/Tools.py @@ -15,12 +15,14 @@ import json, logging from typing import Any, Dict, List, Optional, Tuple, Union from common.Constants import DEFAULT_CONTEXT_NAME, DEFAULT_TOPOLOGY_NAME -from common.method_wrappers.ServiceExceptions import InvalidArgumentException -from common.proto.context_pb2 import ConfigActionEnum, ConfigRule_ACL, Device, DeviceConfig, Link, Location +from common.DeviceTypes import DeviceTypeEnum +from common.method_wrappers.ServiceExceptions import InvalidArgumentException, NotFoundException +from common.proto.context_pb2 import ConfigActionEnum, ConfigRule_ACL, Device, DeviceConfig, EndPoint, Link, Location from common.proto.device_pb2 import MonitoringSettings from common.proto.kpi_sample_types_pb2 import KpiSampleType from common.tools.grpc.ConfigRules import update_config_rule_custom from common.tools.grpc.Tools import grpc_message_to_json +from common.type_checkers.Checkers import chk_length, chk_type from .driver_api._Driver import _Driver, RESOURCE_ENDPOINTS from .monitoring.MonitoringLoops import MonitoringLoops from .ErrorMessages import ( @@ -30,6 +32,21 @@ from .ErrorMessages import ( LOGGER = logging.getLogger(__name__) +def get_endpoint_matching(device : Device, endpoint_uuid_or_name : str) -> EndPoint: + for endpoint in device.device_endpoints: + choices = {endpoint.endpoint_id.endpoint_uuid.uuid, endpoint.name} + if endpoint_uuid_or_name in choices: return endpoint + + device_uuid = device.device_id.device_uuid.uuid + extra_details = 'Device({:s})'.format(str(device_uuid)) + raise NotFoundException('Endpoint', endpoint_uuid_or_name, extra_details=extra_details) + +def get_device_endpoint_uuids(endpoint : Tuple[str, str, Optional[str]]) -> Tuple[str, str]: + chk_type('endpoint', endpoint, (tuple, list)) + chk_length('endpoint', endpoint, min_length=2, max_length=3) + device_uuid, endpoint_uuid = endpoint[0:2] # ignore topology_uuid by now + return device_uuid, endpoint_uuid + def check_connect_rules(device_config : DeviceConfig) -> Dict[str, Any]: connection_config_rules = dict() unexpected_config_rules = list() @@ -97,6 +114,7 @@ def populate_endpoints( resources_to_get = [RESOURCE_ENDPOINTS] results_getconfig = driver.GetConfig(resources_to_get) LOGGER.debug('results_getconfig = {:s}'.format(str(results_getconfig))) + LOGGER.info('results_getconfig = {:s}'.format(str(results_getconfig))) # first quick pass to identify need of mgmt endpoints and links add_mgmt_port = False @@ -434,3 +452,74 @@ def update_endpoints(src_device : Device, dst_device : Device) -> None: dst_topology_id = dst_endpoint_id.topology_id if len(src_topology_uuid) > 0: dst_topology_id.topology_uuid.uuid = src_topology_uuid if len(src_context_uuid) > 0: dst_topology_id.context_id.context_uuid.uuid = src_context_uuid + +def get_edit_target(device : Device, is_opticalband : bool) -> str: + if is_opticalband: return 'optical-band' + if device.device_type == DeviceTypeEnum.OPTICAL_ROADM: return 'media-channel' + return 'optical-channel' + +def is_key_existed(key : str, keys_dic = dict, key_name_to_use = None) -> dict: + dic = {} + dic['resource_key'] = key + if key_name_to_use is not None: + dic['resource_key'] = key_name_to_use + if key in keys_dic: + dic['value'] = keys_dic[key] + else: + dic['value'] = None + return dic + +def extract_resources(config : dict, device : Device) -> list: + conditions = {} + resources = [] + resources.append(is_key_existed('channel_namespace', config)) + resources.append(is_key_existed('add_transceiver', config)) + is_opticalband = config.get('is_opticalband', False) + conditions['is_opticalband'] = is_opticalband + conditions['edit_type'] = get_edit_target(device, is_opticalband) + if 'flow' in config: + #for tuple_value in config['flow'][device.name]: + source_vals = [] + dest_vals = [] + for tuple_value in config['flow']: + source_port = None + destination_port = None + source_port_uuid, destination_port_uuid = tuple_value + if source_port_uuid != '0': + src_endpoint_obj = get_endpoint_matching(device, source_port_uuid) + source_port = src_endpoint_obj.name + source_vals.append(source_port) + if destination_port_uuid != '0': + dst_endpoint_obj = get_endpoint_matching(device, destination_port_uuid) + destination_port = dst_endpoint_obj.name + dest_vals.append(destination_port) + resources.append({'resource_key': 'source_port', 'value': source_vals}) + resources.append({'resource_key': 'destination_port', 'value': dest_vals }) + + if 'new_config' in config: + lower_frequency = None + upper_frequency = None + resources.append(is_key_existed('target-output-power', keys_dic=config['new_config'])) + resources.append(is_key_existed('frequency', keys_dic=config['new_config'])) + resources.append(is_key_existed('operational-mode', keys_dic=config['new_config'])) + resources.append(is_key_existed('line-port', keys_dic=config['new_config'])) + resources.append(is_key_existed('band_type', keys_dic=config['new_config'], key_name_to_use='name')) + resources.append(is_key_existed('ob_id', keys_dic=config['new_config'], key_name_to_use='optical-band-parent')) + resources.append(is_key_existed('name', keys_dic=config['new_config'], key_name_to_use='channel_name')) + if not is_opticalband: + if 'frequency' in config['new_config'] and 'band' in config['new_config'] and conditions['edit_type'] == 'media-channel': + lower_frequency = int(int(config['new_config']['frequency']) - (int(config['new_config']['band'])/2)) + upper_frequency = int(int(config['new_config']['frequency']) + (int(config['new_config']['band'])/2)) + #lower_frequency = (config['new_config']['frequency'] - config['new_config']['band'])/2 + #upper_frequency = (config['new_config']['frequency'] + config['new_config']['band'])/2 + resources.append(is_key_existed('flow_id', keys_dic=config['new_config'], key_name_to_use='index')) + #resources.append({'resource_key':'index','value':config['new_config']['flow_id'] if 'flow_id' in config['new_config'] else None}) + else: + lower_frequency = config['new_config']['low-freq'] if 'low-freq' in config['new_config'] else None + upper_frequency = config['new_config']['up-freq' ] if 'up-freq' in config['new_config'] else None + resources.append(is_key_existed('ob_id', keys_dic=config['new_config'], key_name_to_use='index')) + #resources.append({'resource_key':'index','value':config['new_config']['ob_id'] if 'ob_id' in config['new_config'] else None}) + resources.append({'resource_key': 'lower-frequency', 'value': lower_frequency}) + resources.append({'resource_key': 'upper-frequency', 'value': upper_frequency}) + + return [resources, conditions] diff --git a/src/device/service/driver_api/DriverInstanceCache.py b/src/device/service/driver_api/DriverInstanceCache.py index 1f92059a63889c002eb28ca7eaecc43199f66794..26735bc16a4f0d70c9299e206bda07c2b10e8c49 100644 --- a/src/device/service/driver_api/DriverInstanceCache.py +++ b/src/device/service/driver_api/DriverInstanceCache.py @@ -52,7 +52,12 @@ class DriverInstanceCache: driver_class = self._driver_factory.get_driver_class(**filter_fields) MSG = 'Driver({:s}) selected for device({:s}) with filter_fields({:s})...' LOGGER.info(MSG.format(str(driver_class.__name__), str(device_uuid), str(filter_fields))) - driver_instance : _Driver = driver_class(address, port, **settings) + + if driver_class.__name__ == "OCDriver": + driver_instance : _Driver = driver_class(address, port, device_uuid=device_uuid, **settings) + else: + driver_instance : _Driver = driver_class(address, port, **settings) + self._device_uuid__to__driver_instance[device_uuid] = driver_instance return driver_instance diff --git a/src/device/service/drivers/__init__.py b/src/device/service/drivers/__init__.py index 27c61f89f15c735b44ad2724df01e08a51dda6ba..beb3db38e153445e48d61e3ad4ac5d514297a91d 100644 --- a/src/device/service/drivers/__init__.py +++ b/src/device/service/drivers/__init__.py @@ -15,12 +15,9 @@ import os from common.DeviceTypes import DeviceTypeEnum from common.proto.context_pb2 import DeviceDriverEnum +from device.Config import LOAD_ALL_DEVICE_DRIVERS from ..driver_api.FilterFields import FilterFieldEnum -TRUE_VALUES = {'T', 'TRUE', 'YES', '1'} -DEVICE_EMULATED_ONLY = os.environ.get('DEVICE_EMULATED_ONLY') -LOAD_ALL_DEVICE_DRIVERS = (DEVICE_EMULATED_ONLY is None) or (DEVICE_EMULATED_ONLY.upper() not in TRUE_VALUES) - DRIVERS = [] from .emulated.EmulatedDriver import EmulatedDriver # pylint: disable=wrong-import-position @@ -167,3 +164,17 @@ if LOAD_ALL_DEVICE_DRIVERS: FilterFieldEnum.DRIVER: DeviceDriverEnum.DEVICEDRIVER_FLEXSCALE, } ])) + +if LOAD_ALL_DEVICE_DRIVERS: + from .oc_driver.OCDriver import OCDriver # pylint: disable=wrong-import-position + DRIVERS.append( + (OCDriver, [ + { + # Real Packet Router, specifying OpenConfig Driver => use OpenConfigDriver + FilterFieldEnum.DEVICE_TYPE: [ + DeviceTypeEnum.OPTICAL_ROADM, + DeviceTypeEnum.OPTICAL_TRANSPONDER + ], + FilterFieldEnum.DRIVER : DeviceDriverEnum.DEVICEDRIVER_OC, + } + ])) diff --git a/src/device/service/drivers/oc_driver/OCDriver.py b/src/device/service/drivers/oc_driver/OCDriver.py new file mode 100644 index 0000000000000000000000000000000000000000..1e9ea74c9e832a546c31a556f676a37d319d91b2 --- /dev/null +++ b/src/device/service/drivers/oc_driver/OCDriver.py @@ -0,0 +1,327 @@ +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# +# 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. + +import json +import anytree, copy, logging, pytz, queue, re, threading +#import lxml.etree as ET +from datetime import datetime, timedelta +from typing import Any, Dict, Iterator, List, Optional, Tuple, Union +from apscheduler.executors.pool import ThreadPoolExecutor +import xml.etree.ElementTree as ET +from apscheduler.job import Job +from apscheduler.jobstores.memory import MemoryJobStore +from apscheduler.schedulers.background import BackgroundScheduler +from ncclient.manager import Manager, connect_ssh +from common.method_wrappers.Decorator import MetricsPool, metered_subclass_method +from common.tools.client.RetryDecorator import delay_exponential +from common.type_checkers.Checkers import chk_length, chk_string, chk_type, chk_float +from device.service.driver_api.Exceptions import UnsupportedResourceKeyException +from device.service.driver_api._Driver import _Driver +from device.service.driver_api.AnyTreeTools import TreeNode, get_subnode, set_subnode_value #dump_subtree +#from .Tools import xml_pretty_print, xml_to_dict, xml_to_file +from .templates.Interfaces.interfaces import interface_template +from .templates.VPN.physical import create_optical_channel,add_transceiver,create_media_channel,create_optical_band +from .RetryDecorator import retry +from context.client.ContextClient import ContextClient +from common.proto.context_pb2 import ( + OpticalConfig, + ConfigActionEnum, Device, DeviceDriverEnum, DeviceId, DeviceList, DeviceOperationalStatusEnum, Empty + ,OpticalConfigId,Uuid) +from .templates.Tools import extractor +from .Tools import generate_uuid_from_numbers +DEBUG_MODE = False +logging.getLogger('ncclient.manager').setLevel(logging.DEBUG if DEBUG_MODE else logging.WARNING) +logging.getLogger('ncclient.transport.ssh').setLevel(logging.DEBUG if DEBUG_MODE else logging.WARNING) +logging.getLogger('apscheduler.executors.default').setLevel(logging.INFO if DEBUG_MODE else logging.ERROR) +logging.getLogger('apscheduler.scheduler').setLevel(logging.INFO if DEBUG_MODE else logging.ERROR) +logging.getLogger('monitoring-client').setLevel(logging.INFO if DEBUG_MODE else logging.ERROR) + +RE_GET_ENDPOINT_FROM_INTERFACE_KEY = re.compile(r'.*interface\[([^\]]+)\].*') +RE_GET_ENDPOINT_FROM_INTERFACE_XPATH = re.compile(r".*interface\[oci\:name\='([^\]]+)'\].*") + +# Collection of samples through NetConf is very slow and each request collects all the data. +# Populate a cache periodically (when first interface is interrogated). +# Evict data after some seconds, when data is considered as outdated + +SAMPLE_EVICTION_SECONDS = 30.0 # seconds +SAMPLE_RESOURCE_KEY = 'interfaces/interface/state/counters' +filter_fields= ["frequency","target-output-power","interface","operational-mode","line-port"] +MAX_RETRIES = 15 +DELAY_FUNCTION = delay_exponential(initial=0.01, increment=2.0, maximum=5.0) +RETRY_DECORATOR = retry(max_retries=MAX_RETRIES, delay_function=DELAY_FUNCTION, prepare_method_name='connect') +context_client= ContextClient() +port_xml_filter=f"/components/component[state[type='oc-platform-types:PORT']]/*" +transceiver_xml_filter="/components/component[state[type='oc-platform-types:TRANSCEIVER']]/*" +class NetconfSessionHandler: + def __init__(self, address : str, port : int, **settings) -> None: + self.__lock = threading.RLock() + self.__connected = threading.Event() + self.__address = address + self.__port = int(port) + self.__username = settings.get('username') + self.__password = settings.get('password') + self.__vendor = settings.get('vendor') + self.__version = settings.get('version', "1") + self.__key_filename = settings.get('key_filename') + self.__hostkey_verify = settings.get('hostkey_verify', True) + self.__look_for_keys = settings.get('look_for_keys', True) + self.__allow_agent = settings.get('allow_agent', True) + self.__force_running = settings.get('force_running', False) + self.__commit_per_rule = settings.get('commit_per_rule', False) + self.__device_params = settings.get('device_params', {}) + self.__manager_params = settings.get('manager_params', {}) + self.__nc_params = settings.get('nc_params', {}) + self.__message_renderer = settings.get('message_renderer','jinja') + self.__manager : Manager = None + self.__candidate_supported = False + + def connect(self): + with self.__lock: + self.__manager = connect_ssh( + host=self.__address, port=self.__port, username=self.__username, password=self.__password, + device_params=self.__device_params, manager_params=self.__manager_params, nc_params=self.__nc_params, + key_filename=self.__key_filename, hostkey_verify=self.__hostkey_verify, allow_agent=self.__allow_agent, + look_for_keys=self.__look_for_keys) + self.__candidate_supported = ':candidate' in self.__manager.server_capabilities + self.__connected.set() + + def disconnect(self): + if not self.__connected.is_set(): return + with self.__lock: + self.__manager.close_session() + + @property + def use_candidate(self): return self.__candidate_supported and not self.__force_running + + @property + def commit_per_rule(self): return self.__commit_per_rule + + @property + def vendor(self): return self.__vendor + + @property + def version(self): return self.__version + + @property + def message_renderer(self): return self.__message_renderer + + @RETRY_DECORATOR + def get(self, filter=None, with_defaults=None): # pylint: disable=redefined-builtin + with self.__lock: + config=self.__manager.get(filter=filter, with_defaults=with_defaults) + + return config + + @RETRY_DECORATOR + def edit_config( + self, config, target='running', default_operation=None, test_option=None, + error_option=None, format='xml' # pylint: disable=redefined-builtin + ): + + + response = None + with self.__lock: + response= self.__manager.edit_config( + config, target=target, default_operation=default_operation, test_option=test_option, + error_option=error_option, format=format) + logging.info(f"resonse from edit {response}") + str_respones = str(response) + if re.search(r'', str_respones): + + return True + + return False + + + @RETRY_DECORATOR + def locked(self, target): + return self.__manager.locked(target=target) + + @RETRY_DECORATOR + def commit(self, confirmed=False, timeout=None, persist=None, persist_id=None): + return self.__manager.commit(confirmed=confirmed, timeout=timeout, persist=persist, persist_id=persist_id) + +DRIVER_NAME = 'oc' +METRICS_POOL = MetricsPool('Device', 'Driver', labels={'driver': DRIVER_NAME}) +def edit_config( # edit the configuration of openconfig devices + netconf_handler : NetconfSessionHandler, logger : logging.Logger, resources : List[Tuple[str, Any]] + ,conditions, delete=False, + commit_per_rule=False, target='running', default_operation='merge', test_option=None, error_option=None, + format='xml' +): + #str_method = 'DeleteConfig' if delete else 'SetConfig' + results = [] + + str_config_messages=[] + + if (conditions['edit_type']=='optical-channel'): + #transponder + str_config_messages = create_optical_channel(resources) + elif (conditions['edit_type']=='optical-band'): + #roadm optical-band + str_config_messages = create_optical_band(resources) + else : + #roadm media-channel + str_config_messages=create_media_channel(resources) + + + + for str_config_message in str_config_messages: + # configuration of the received templates + if str_config_message is None: raise UnsupportedResourceKeyException("CONFIG") + + result= netconf_handler.edit_config( # configure the device + config=str_config_message, target=target, default_operation=default_operation, + test_option=test_option, error_option=error_option, format=format) + if commit_per_rule: + netconf_handler.commit() # configuration commit + + #results[i] = True + results.append(result) + + return results + + +class OCDriver(_Driver): + def __init__(self, address : str, port : int,device_uuid=None, **settings) -> None: + super().__init__(DRIVER_NAME, address, port, **settings) + self.__logger = logging.getLogger('{:s}:[{:s}:{:s}]'.format(str(__name__), str(self.address), str(self.port))) + self.__lock = threading.Lock() + #self.__initial = TreeNode('.') + #self.__running = TreeNode('.') + self.__subscriptions = TreeNode('.') + self.__started = threading.Event() + self.__terminate = threading.Event() + self.__scheduler = BackgroundScheduler(daemon=True) # scheduler used to emulate sampling events + self.__scheduler.configure( + jobstores = {'default': MemoryJobStore()}, + executors = {'default': ThreadPoolExecutor(max_workers=1)}, # important! 1 = avoid concurrent requests + job_defaults = {'coalesce': False, 'max_instances': 3}, + timezone=pytz.utc) + self._temp_address=f"{address}{port}" + self.__out_samples = queue.Queue() + self.__netconf_handler = NetconfSessionHandler(self.address, self.port, **(self.settings)) + + self.__device_uuid=device_uuid + + self.Connect() + #self.GetConfig() + #self.__samples_cache = SamplesCache(self.__netconf_handler, self.__logger) + + def Connect(self) -> bool: + with self.__lock: + if self.__started.is_set(): return True + self.__netconf_handler.connect() + # Connect triggers activation of sampling events that will be scheduled based on subscriptions + self.__scheduler.start() + self.__started.set() + return True + + def Disconnect(self) -> bool: + with self.__lock: + # Trigger termination of loops and processes + self.__terminate.set() + # If not started, assume it is already disconnected + if not self.__started.is_set(): return True + # Disconnect triggers deactivation of sampling events + self.__scheduler.shutdown() + self.__netconf_handler.disconnect() + return True + + @metered_subclass_method(METRICS_POOL) + def GetInitialConfig(self) -> List[Tuple[str, Any]]: + with self.__lock: + return [] + + @metered_subclass_method(METRICS_POOL) + def GetConfig(self, resource_keys : List[str] = []) -> List[Tuple[str, Union[Any, None, Exception]]]: + + + chk_type('resources', resource_keys, list) + results = [] + opticalConfig= OpticalConfig() + j=0 + + with self.__lock: + + + context_client.connect() + config={} + channels_lst=[] + transceivers={} + + try: + xml_data = self.__netconf_handler.get().data_xml + transceivers,interfaces,channels_lst,channel_namespace,endpoints,ports_result=extractor(data_xml=xml_data,resource_keys=filter_fields,dic=config) + + logging.info(f"xml response {xml_data}") + + except Exception as e: # pylint: disable=broad-except + MSG = 'Exception retrieving {:s}' + self.__logger.info("error from getConfig %s",e) + self.__logger.exception(MSG.format(e)) + #results.append((resource_key, e)) # if validation fails, store the exception + + #///////////////////////// store optical configurtaion //////////////////////////////////////////////////////// + + + value_dic={} + value_dic["channels"]=channels_lst + value_dic["transceivers"]=transceivers + value_dic["interfaces"]=interfaces + value_dic["channel_namespace"]=channel_namespace + value_dic["endpoints"]=endpoints + value_dic["ports"]=ports_result + logging.info(f"parameters {value_dic}") + opticalConfig.config=json.dumps(value_dic) + opticalConfig.opticalconfig_id.opticalconfig_uuid=self.__device_uuid if self.__device_uuid is not None else "" + config_id=context_client.SetOpticalConfig(opticalConfig) + + context_client.close() + + if(len(ports_result)>0) : results.extend(ports_result) + + return results + + @metered_subclass_method(METRICS_POOL) + def SetConfig(self, resources : List[Tuple[str, Any]],conditions:dict) -> List[Union[bool, Exception]]: + if len(resources) == 0: return [] + results=[] + with self.__lock: + if self.__netconf_handler.use_candidate: + with self.__netconf_handler.locked(target='candidate'): + results = edit_config( + self.__netconf_handler, self.__logger, resources,conditions, target='candidate', + commit_per_rule=self.__netconf_handler.commit_per_rule + ,) + else: + results = edit_config(self.__netconf_handler, self.__logger, resources,conditions=conditions + ) + return results + + @metered_subclass_method(METRICS_POOL) + def DeleteConfig(self, resources : List[Tuple[str, Any]]) -> List[Union[bool, Exception]]: + chk_type('resources', resources, list) + if len(resources) == 0: return [] + with self.__lock: + if self.__netconf_handler.use_candidate: + with self.__netconf_handler.locked(target='candidate'): + results = edit_config( + self.__netconf_handler, self.__logger, resources, target='candidate', delete=True, + commit_per_rule=self.__netconf_handler.commit_per_rule) + else: + results = edit_config(self.__netconf_handler, self.__logger, resources, delete=True) + return results + + diff --git a/src/device/service/drivers/oc_driver/RetryDecorator.py b/src/device/service/drivers/oc_driver/RetryDecorator.py new file mode 100644 index 0000000000000000000000000000000000000000..deb1b4ed89346a99e9821f049375a1977914832b --- /dev/null +++ b/src/device/service/drivers/oc_driver/RetryDecorator.py @@ -0,0 +1,46 @@ +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# +# 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. + +import logging, time +from common.tools.client.RetryDecorator import delay_linear + +LOGGER = logging.getLogger(__name__) + +def retry(max_retries=0, delay_function=delay_linear(initial=0, increment=0), + prepare_method_name=None, prepare_method_args=[], prepare_method_kwargs={}): + def _reconnect(func): + def wrapper(self, *args, **kwargs): + if prepare_method_name is not None: + prepare_method = getattr(self, prepare_method_name, None) + if prepare_method is None: raise Exception('Prepare Method ({}) not found'.format(prepare_method_name)) + num_try, given_up = 0, False + while not given_up: + try: + return func(self, *args, **kwargs) + except OSError as e: + if str(e) != 'Socket is closed': raise + + num_try += 1 + given_up = num_try > max_retries + if given_up: raise Exception('Giving up... {:d} tries failed'.format(max_retries)) from e + if delay_function is not None: + delay = delay_function(num_try) + time.sleep(delay) + LOGGER.info('Retry {:d}/{:d} after {:f} seconds...'.format(num_try, max_retries, delay)) + else: + LOGGER.info('Retry {:d}/{:d} immediate...'.format(num_try, max_retries)) + + if prepare_method_name is not None: prepare_method(*prepare_method_args, **prepare_method_kwargs) + return wrapper + return _reconnect diff --git a/src/device/service/drivers/oc_driver/Tools.py b/src/device/service/drivers/oc_driver/Tools.py new file mode 100644 index 0000000000000000000000000000000000000000..d350fd877efcff04ec23f90341fca727b6177ba5 --- /dev/null +++ b/src/device/service/drivers/oc_driver/Tools.py @@ -0,0 +1,38 @@ +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# +# 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. +import hashlib +import uuid +import xml.dom.minidom, xmltodict + +def xml_pretty_print(data : str): + return xml.dom.minidom.parseString(data).toprettyxml() + +def xml_to_file(data : str, file_path : str) -> None: + with open(file_path, mode='w', encoding='UTF-8') as f: + f.write(xml_pretty_print(data)) + +def xml_to_dict(data : str): + return xmltodict.parse(data) + +def generate_uuid_from_numbers(code:str) ->str: + # Concatenate the numbers into a single string + + + # Generate a hash value using MD5 algorithm + hash_value = hashlib.md5(code.encode()).hexdigest() + + # Convert the hash value into a UUID + generated_uuid = uuid.UUID(hash_value) + + return str(generated_uuid) diff --git a/src/device/service/drivers/oc_driver/__init__.py b/src/device/service/drivers/oc_driver/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..1549d9811aa5d1c193a44ad45d0d7773236c0612 --- /dev/null +++ b/src/device/service/drivers/oc_driver/__init__.py @@ -0,0 +1,14 @@ +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# +# 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. + diff --git a/src/device/service/drivers/oc_driver/templates/Interfaces/__init__.py b/src/device/service/drivers/oc_driver/templates/Interfaces/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..355dcdb04bdddd352966a9567a7a63117666e619 --- /dev/null +++ b/src/device/service/drivers/oc_driver/templates/Interfaces/__init__.py @@ -0,0 +1,14 @@ +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# +# 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. + diff --git a/src/device/service/drivers/oc_driver/templates/Interfaces/interfaces.py b/src/device/service/drivers/oc_driver/templates/Interfaces/interfaces.py new file mode 100644 index 0000000000000000000000000000000000000000..b4df7c2bff7b050e665de9afa5b44a7c6d85db18 --- /dev/null +++ b/src/device/service/drivers/oc_driver/templates/Interfaces/interfaces.py @@ -0,0 +1,43 @@ +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# +# 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. + +from yattag import Doc, indent +import logging +def interface_template (interface_data:dict) : + data={"name":"eth0","ip":"192.168.1.1","prefix-length":'24'} + doc, tag, text = Doc().tagtext() + with tag('config',xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"): + with tag('interfaces', xmlns="http://openconfig.net/yang/interfaces"): + with tag('interface'): + with tag('name'):text(interface_data['name']) + with tag('config'): + with tag('name'):text(interface_data['name']) + with tag("enabled"):text(interface_data["enabled"]) + with tag('ipv4',xmlns="http://openconfig.net/yang/interfaces/ip") : + with tag("addresses"): + with tag("address"): + with tag('ip'):text(interface_data["ip"]) + with tag('config'): + with tag('ip'):text(interface_data["ip"]) + with tag('prefix-length'):text(interface_data["prefix-length"]) + + result = indent( + doc.getvalue(), + indentation = ' '*2, + newline = '\r\n' + ) + logging.info("interfaces %s",result) + return result + + \ No newline at end of file diff --git a/src/device/service/drivers/oc_driver/templates/Tools.py b/src/device/service/drivers/oc_driver/templates/Tools.py new file mode 100644 index 0000000000000000000000000000000000000000..a088d4a1f133cb781471ed736335359c9c81db5d --- /dev/null +++ b/src/device/service/drivers/oc_driver/templates/Tools.py @@ -0,0 +1,300 @@ +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# +# 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. + +import re,logging +import json +import lxml.etree as ET +from typing import Collection, Dict, Any + +from yattag import Doc, indent +from .VPN.physical import create_optical_channel + +def add_value_from_tag(target : Dict, field_name: str, field_value : ET.Element, cast=None) -> None: + if isinstance(field_value,str) or field_value is None or field_value.text is None: return + field_value = field_value.text + if cast is not None: field_value = cast(field_value) + target[field_name] = field_value + +def add_value_from_collection(target : Dict, field_name: str, field_value : Collection) -> None: + if field_value is None or len(field_value) == 0: return + target[field_name] = field_value + +""" +# Method Name: generate_templates + +# Parameters: + - resource_key: [str] Variable to identify the rule to be executed. + - resource_value: [str] Variable with the configuration parameters of the rule to be executed. + - delete: [bool] Variable to identify whether to create or delete the rule. + - vendor: [str] Variable to identify the vendor of the equipment to be configured. + +# Functionality: + This method generates the template to configure the equipment using pyangbind. + To generate the template the following steps are performed: + 1) Get the first parameter of the variable "resource_key" to identify the main path of the rule. + 2) Search for the specific configuration path + 3) Call the method with the configuration parameters (resource_data variable). + +# Return: + [dict] Set of templates generated according to the configuration rule +""" +def generate_templates(resource_key: str, resource_value: str, channel:str) -> str: # template management to be configured + + result_templates = [] + data={} + data['name']=channel + data['resource_key']=resource_key + data['value']=resource_value + #result_templates.append(create_physical_config(data)) + + return result_templates + +def extract_channel_xmlns (data_xml:str,is_opticalband:bool): + xml_bytes = data_xml.encode("utf-8") + root = ET.fromstring(xml_bytes) + + namespace=None + channels=None + + if (not is_opticalband) : + + optical_channel_namespaces = { + 'ns': 'urn:ietf:params:xml:ns:netconf:base:1.0', + 'oc': 'http://openconfig.net/yang/platform', + } + + channels= root.find('.//{*}optical-channel',optical_channel_namespaces) + if channels is not None : + optical_channel_namespace = channels.tag.replace("optical-channel", "") + namespace=optical_channel_namespace.replace("{", "").replace("}", "") + else : + optical_band_namespaces= { + 'oc':'http://openconfig.net/yang/wavelength-router' + } + + channels= root.find('.//{*}optical-bands',optical_band_namespaces) + if channels is not None: + optical_channel_namespace = channels.tag.replace("optical-bands", "") + namespace=optical_channel_namespace.replace("{", "").replace("}", "") + + + return namespace + +def extract_channels_based_on_channelnamespace (xml_data:str,channel_namespace:str,is_opticalband:bool): + xml_bytes = xml_data.encode("utf-8") + root = ET.fromstring(xml_bytes) + channels=[] + + # Find the component names whose children include the "optical-channel" element + if (not is_opticalband): + namespace = {'namespace': 'http://openconfig.net/yang/platform','cn':channel_namespace} + + component_names = root.findall('.//namespace:component[cn:optical-channel]',namespace) + + # Extract and print the component names + for component in component_names: + component_name = component.find('namespace:name', namespace).text + channels.append({"index":component_name}) + else : + namespaces = { + 'wr': 'http://openconfig.net/yang/wavelength-router', + 'fs': channel_namespace + } + + wl = root.findall('.//fs:optical-band',namespaces=namespaces) + + for component in wl : + index=component.find('.//fs:index',namespaces).text + dest_port_name = component.find('.//fs:dest/fs:config/fs:port-name', namespaces).text + + # Retrieve port-name for source (assuming it exists in the XML structure) + source_port_name = component.find('.//fs:source/fs:config/fs:port-name', namespaces).text + channels.append({"index":index,"endpoints":(source_port_name,dest_port_name)}) + + # Retrieve port-name for dest + + return channels + +def extract_channels_based_on_type (xml_data:str): + xml_bytes = xml_data.encode("utf-8") + root = ET.fromstring(xml_bytes) + + namespace = {'oc': 'http://openconfig.net/yang/platform', 'typex': 'http://openconfig.net/yang/platform-types'} + channel_names = [] + components = root.findall('.//oc:component', namespace) + for component in components: + + type_element = component.find('.//oc:state/oc:type[.="oc-opt-types:OPTICAL_CHANNEL"]',namespaces=namespace) + + if type_element is not None and type_element.text == 'oc-opt-types:OPTICAL_CHANNEL': + name_element = component.find('oc:name', namespace) + if name_element is not None: + channel_names.append(name_element.text) + return channel_names + +def extract_value(resource_key:str,xml_data:str,dic:dict,channel_name:str,channel_namespace:str): + logging.info(f"resource_key {resource_key} and channgel_name {channel_name} and channel_namespace {channel_namespace}") + xml_bytes = xml_data.encode("utf-8") + root = ET.fromstring(xml_bytes) + channel_name=channel_name if 'index' not in channel_name else channel_name['index'] + namespace = {'oc': 'http://openconfig.net/yang/platform', + 'td': channel_namespace} + + element = root.find(f'.//oc:component[oc:name="{channel_name}"]', namespace) + + if element is not None: + parameter= element.find(f'.//td:{resource_key}',namespace) + if (parameter is not None): + value = parameter.text + dic[resource_key]=value + else : + logging.info("parameter is None") + + else: + logging.info("element is None") + print(" element not found.") + logging.info(f"dic {dic}") + return dic + + +def extract_port_value (xml_string:list,port_name:str): + + xml_bytes = xml_string.encode("utf-8") + root = ET.fromstring(xml_bytes) + + namespace = {"oc": "http://openconfig.net/yang/platform"} + component=root.find(f".//oc:component[oc:name='{port_name}']", namespace) + onos_index = component.find( + f".//oc:property//oc:state/oc:name[.='onos-index']/../oc:value", namespace + ).text + + return (port_name,onos_index) + + + + +def extract_tranceiver (data_xml:str,dic:dict): + xml_bytes = data_xml.encode("utf-8") + root = ET.fromstring(xml_bytes) + namespaces = { + 'ns': 'urn:ietf:params:xml:ns:netconf:base:1.0', + 'oc': 'http://openconfig.net/yang/platform', + 'oc-terminal': 'http://openconfig.net/yang/terminal-device', + 'oc-platform-types': 'http://openconfig.net/yang/platform-types' + } + + + transceiver_components = root.findall('.//oc:component/oc:state/[oc:type="oc-platform-types:TRANSCEIVER"]../oc:state/oc:name', namespaces) + + component_names = [component.text for component in transceiver_components] + dic['transceiver']=component_names + return dic + +def extract_interface (xml_data:str,dic:dict): + xml_bytes = xml_data.encode("utf-8") + root = ET.fromstring(xml_bytes) + namespaces = { + 'ns': 'urn:ietf:params:xml:ns:netconf:base:1.0', + 'oc': 'http://openconfig.net/yang/interfaces', + } + ip_namespaces = { + 'oc': 'http://openconfig.net/yang/interfaces', + 'ip': 'http://openconfig.net/yang/interfaces/ip', + } + + interfaces = root.findall('.//oc:interfaces/oc:interface', namespaces) + interface_names = [interface.find('oc:name', namespaces).text for interface in interfaces] + interface_enabled=[interface.find('oc:config/oc:enabled', namespaces).text for interface in interfaces] + ip_address_element = root.find('.//ip:ip', ip_namespaces) + interface_prefix_length=root.find('.//ip:prefix-length',ip_namespaces) + if (len(interface_names) > 0): + dic['interface']={"name":interface_names[0],'ip':ip_address_element.text,'enabled':interface_enabled[0],"prefix-length":interface_prefix_length.text} + else : + dic['interface']={} + return dic + +def has_opticalbands(xml_data:str): + xml_bytes = xml_data.encode("utf-8") + root = ET.fromstring(xml_bytes) + + has_opticalbands=False + elements= root.find('.//{*}optical-bands') + + if (elements is not None and len(elements) >0): + has_opticalbands=True + else : + has_opticalbands=False + return has_opticalbands + +def extract_ports_based_on_type (xml_data:str): + pattern = r'\bPORT\b' + xml_bytes = xml_data.encode("utf-8") + root = ET.fromstring(xml_bytes) + + namespace = {'oc': 'http://openconfig.net/yang/platform', 'typex': 'http://openconfig.net/yang/platform-types'} + ports = [] + components = root.findall('.//oc:type',namespace) + + + for component in components: + + + if component is not None and re.search(pattern,component.text): + + + name_element = component.getprevious() + port_name =name_element.text + port_index=name_element.text.split("-")[1] + port = (port_name,port_index) + ports.append(port) + return ports + +def extractor(data_xml:str,resource_keys:list,dic:dict): + + endpoints=[] + is_opticalband=has_opticalbands(xml_data=data_xml) + + channel_namespace=extract_channel_xmlns(data_xml=data_xml,is_opticalband=is_opticalband) + # channel_names=extract_channels_based_on_type(xml_data=data_xml) + # if len(channel_names)==0 : + channel_names= extract_channels_based_on_channelnamespace(xml_data=data_xml,channel_namespace=channel_namespace,is_opticalband=is_opticalband) + ports = extract_ports_based_on_type(data_xml) + + lst_dic=[] + ports_result=[] + if (is_opticalband): + endpoints=channel_names + else: + + for channel_name in channel_names: + dic={} + for resource_key in resource_keys : + + if (resource_key != 'interface'): + dic=extract_value(dic=dic,resource_key=resource_key,xml_data=data_xml,channel_name=channel_name,channel_namespace=channel_namespace) + + dic["name"]=channel_name + endpoints.append({"endpoint_uuid":{"uuid":channel_name}}) + lst_dic.append(dic) + transceivers_dic=extract_tranceiver(data_xml=data_xml,dic={}) + interfaces_dic=extract_interface(xml_data=data_xml,dic={}) + if len(ports)>0 : + for port in ports : + endpoint_name,endpoint_id=port + resource_key = '/endpoints/endpoint[{:s}]'.format(endpoint_id) + resource_value = {'uuid': endpoint_id, 'type':endpoint_name} + ports_result.append((resource_key, resource_value)) + + + return [transceivers_dic,interfaces_dic,lst_dic,channel_namespace,endpoints,ports_result] \ No newline at end of file diff --git a/src/device/service/drivers/oc_driver/templates/VPN/__init__.py b/src/device/service/drivers/oc_driver/templates/VPN/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..1549d9811aa5d1c193a44ad45d0d7773236c0612 --- /dev/null +++ b/src/device/service/drivers/oc_driver/templates/VPN/__init__.py @@ -0,0 +1,14 @@ +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# +# 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. + diff --git a/src/device/service/drivers/oc_driver/templates/VPN/physical.py b/src/device/service/drivers/oc_driver/templates/VPN/physical.py new file mode 100644 index 0000000000000000000000000000000000000000..7835b47789494f01760fff11ddde7c4edf071288 --- /dev/null +++ b/src/device/service/drivers/oc_driver/templates/VPN/physical.py @@ -0,0 +1,210 @@ +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# +# 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. + + +from yattag import Doc, indent +import logging + +def seperate_port_config(resources:list,unwanted_keys:list[str])->list[list,dict,str]: + config=[] + ports={} + index=None + for item in resources : + + if (item['value'] is not None and (item['resource_key'] not in unwanted_keys)): + config.append({'resource_key':item['resource_key'], 'value':item['value']} ) + #if (item['resource_key'] == 'destination_port' or item['resource_key'] == 'source_port') and item['value'] is not None: + # ports[item['resource_key']]=item['value'] + if (item['resource_key'] == 'destination_port' or item['resource_key'] == 'source_port'): + ports[item['resource_key']]=item['value'] + if (item['resource_key']=='index' and item['value'] is not None) : + index=item['value'] + + return [config,ports,index] + + +def create_optical_channel(resources): + + unwanted_keys=['destination_port','source_port','channel_namespace','optical-band-parent','index', 'name'] + results =[] + data={"name":i["value"] for i in resources if i["resource_key"]=="channel_name"} + data["channel_namespace"]=next((i["value"] for i in resources if i["resource_key"] == "channel_namespace"), None) + config,ports,index=seperate_port_config(resources,unwanted_keys=unwanted_keys) + logging.info(f"ports are {ports}") + port_val = "" + if 'destination_port' in ports and ports['destination_port'][0] is not None: + port_val = ports['destination_port'][0] + else: + port_val = ports['source_port'][0] + + + doc, tag, text = Doc().tagtext() + #with tag('config'): + with tag('config',xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"): + with tag('components', xmlns="http://openconfig.net/yang/platform"): + with tag('component'): + with tag('name'):text("channel-{}".format(port_val)) + with tag('config'): + with tag('name'):text("channel-{}".format(port_val)) + with tag('optical-channel',xmlns=data["channel_namespace"]): + with tag('config'): + for resource in config: + with tag(resource['resource_key']):text(resource['value']) + result = indent( + doc.getvalue(), + indentation = ' '*2, + newline = '' + ) + results.append(result) + + + return results + +def add_transceiver (transceiver_name:str): + + doc, tag, text = Doc().tagtext() + with tag('config',xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"): + with tag('components', xmlns="http://openconfig.net/yang/platform"): + with tag('component'): + with tag('name'):text(transceiver_name) + with tag("config"): + with tag('name'):text(transceiver_name) + with tag("state"): + with tag('name'):text(transceiver_name) + with tag("type",('xmlns:oc-platform-types',"http://openconfig.net/yang/platform-types")):text("oc-platform-types:TRANSCEIVER") + with tag("transceiver",xmlns="http://openconfig.net/yang/platform/transceiver"): + with tag("config"): + with tag("enabled"):text("true") + with tag("form-factor-preconf",("xmlns:oc-opt-types","http://openconfig.net/yang/transport-types")):text("oc-opt-types:QSFP56_DD_TYPE1") + with tag("ethernet-pmd-preconf",("xmlns:oc-opt-types","http://openconfig.net/yang/transport-types")):text("oc-opt-types:ETH_400GBASE_ZR") + with tag("fec-mode",("xmlns:oc-platform-types","http://openconfig.net/yang/platform-types")):text("oc-platform-types:FEC_AUTO") + with tag("module-functional-type",("xmlns:oc-opt-types","http://openconfig.net/yang/transport-types")):text("oc-opt-types:TYPE_DIGITAL_COHERENT_OPTIC") + with tag("state"): + with tag("enabled"):text("true") + with tag("form-factor-preconf",("xmlns:oc-opt-types","http://openconfig.net/yang/transport-types")):text("oc-opt-types:QSFP56_DD_TYPE1") + with tag("ethernet-pmd-preconf",("xmlns:oc-opt-types","http://openconfig.net/yang/transport-types")):text("oc-opt-types:ETH_400GBASE_ZR") + with tag("fec-mode",("xmlns:oc-platform-types","http://openconfig.net/yang/platform-types")):text("oc-platform-types:FEC_AUTO") + with tag("module-functional-type",("xmlns:oc-opt-types","http://openconfig.net/yang/transport-types")):text("oc-opt-types:TYPE_DIGITAL_COHERENT_OPTIC") + with tag("vendor"):text("Cisco") + with tag("vendor-part"):text("400zr-QSFP-DD") + with tag("vendor-rev"):text("01") + with tag("serial-no"):text("1567321") + with tag("physical-channels"): + with tag("channel"): + with tag("index"):text("1") + with tag("config"): + with tag("index"):text("1") + with tag("associated-optical-channel"):text("channel-4") + result = indent( + doc.getvalue(), + indentation = ' '*2, + newline = '' + ) + + + return result + +def create_optical_band (resources) : + results =[] + unwanted_keys=['destination_port','source_port','channel_namespace','frequency','optical-band-parent'] + config,ports,index= seperate_port_config(resources,unwanted_keys=unwanted_keys) + doc, tag, text = Doc().tagtext() + #with tag('config'): + with tag('config',xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"): + with tag('wavelength-router', xmlns="http://openconfig.net/yang/wavelength-router"): + with tag('optical-bands',xmlns="http://flex-scale-project.eu/yang/flex-scale-mg-on"): + n = 0 + if 'destination_port' in ports: + n = len(ports['destination_port']) + else: + n = len(ports['source_port']) + for i in range(0, n): + #with tag('optical-band', operation="create"): + with tag('optical-band'): + if index is not None: + with tag('index'):text(str(int(index)+i)) + with tag('config'): + #if index is not None: + # with tag('index'):text(str(int(index)+i)) + for resource in config: + if resource['resource_key'] == "index": + with tag('index'):text(str(int(index)+i)) + else: + with tag(resource['resource_key']):text(resource['value']) + with tag('admin-status'):text('ENABLED') + #with tag('fiber-parent'):text(ports['destination_port'] if 'destination_port' in ports else ports['source_port']) + if ('destination_port' in ports) and (ports['destination_port'][i] is not None): + with tag('dest'): + with tag('config'): + with tag('port-name'):text(ports['destination_port'][i]) + if ('source_port' in ports) and (ports['source_port'][i] is not None): + with tag('source'): + with tag('config'): + with tag('port-name'):text(ports['source_port'][i]) + + + result = indent( + doc.getvalue(), + indentation = ' '*2, + newline = '' + ) + results.append(result) + return results + +def create_media_channel (resources): + results=[] + unwanted_keys=['destination_port','source_port','channel_namespace','frequency','operational-mode', 'optical-band-parent'] + config,ports,index= seperate_port_config(resources,unwanted_keys=unwanted_keys) + doc, tag, text = Doc().tagtext() + #with tag('config'): + with tag('config',xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"): + with tag('wavelength-router', xmlns="http://openconfig.net/yang/wavelength-router"): + with tag('media-channels'): + n = 0 + if 'destination_port' in ports: + n = len(ports['destination_port']) + else: + n = len(ports['source_port']) + for i in range(0, n): + #with tag('channel', operation="create"): + with tag('channel'): + with tag('index'):text(str(int(index)+i)) + with tag('config'): + #with tag('index'):text(index) + for resource in config: + + if resource['resource_key'] == "index": + with tag('index'):text(str(int(index)+i)) + else: + with tag(resource['resource_key']):text(resource['value']) + if ('destination_port' in ports) and (ports['destination_port'][i] is not None): + with tag('dest'): + with tag('config'): + with tag('port-name'):text(ports['destination_port'][i]) + if ('source_port' in ports) and (ports['source_port'][i] is not None): + with tag('source'): + with tag('config'): + with tag('port-name'):text(ports['source_port'][i]) + + + result = indent( + doc.getvalue(), + indentation = ' '*2, + newline = '' + ) + results.append(result) + return results + + + \ No newline at end of file diff --git a/src/device/service/drivers/oc_driver/templates/__init__.py b/src/device/service/drivers/oc_driver/templates/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..1549d9811aa5d1c193a44ad45d0d7773236c0612 --- /dev/null +++ b/src/device/service/drivers/oc_driver/templates/__init__.py @@ -0,0 +1,14 @@ +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# +# 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. + diff --git a/src/device/service/drivers/openconfig/templates/Interfaces.py b/src/device/service/drivers/openconfig/templates/Interfaces.py index 3d4c73fc11c686b4d4e181a1f98ed3f5922f7c15..51ee9fc66334a30a450144b4b8079575498aeef9 100644 --- a/src/device/service/drivers/openconfig/templates/Interfaces.py +++ b/src/device/service/drivers/openconfig/templates/Interfaces.py @@ -31,10 +31,6 @@ def parse(xml_data : ET.Element) -> List[Tuple[str, Dict[str, Any]]]: interface = {} - interface_name = xml_interface.find('oci:name', namespaces=NAMESPACES) - if interface_name is None or interface_name.text is None: continue - add_value_from_tag(interface, 'name', interface_name) - #interface_type = xml_interface.find('oci:config/oci:type', namespaces=NAMESPACES) #add_value_from_tag(interface, 'type', interface_type) @@ -42,8 +38,11 @@ def parse(xml_data : ET.Element) -> List[Tuple[str, Dict[str, Any]]]: interface_type = xml_interface.find('oci:config/oci:type', namespaces=NAMESPACES) elif xml_interface.find('oci:state/oci:type', namespaces=NAMESPACES) is not None: interface_type = xml_interface.find('oci:state/oci:type', namespaces=NAMESPACES) - else: - interface_type = '' + else: continue + + interface_name = xml_interface.find('oci:name', namespaces=NAMESPACES) + if interface_name is None or interface_name.text is None: continue + add_value_from_tag(interface, 'name', interface_name) # Get the type of interface according to the vendor's type if 'ianaift:' in interface_type.text: diff --git a/src/device/service/drivers/openconfig/templates/Inventory.py b/src/device/service/drivers/openconfig/templates/Inventory.py index 2ae67ba47dad162b8c8e4a15d3004b27359d4ca2..916af0478c51d381d670b7678095867537f3bdc9 100644 --- a/src/device/service/drivers/openconfig/templates/Inventory.py +++ b/src/device/service/drivers/openconfig/templates/Inventory.py @@ -54,7 +54,6 @@ XPATH_PORTS = "//ocp:components/ocp:component" def parse(xml_data : ET.Element) -> List[Tuple[str, Dict[str, Any]]]: response = [] - LOGGER.debug("InventoryPrueba") parent_types = {} for xml_component in xml_data.xpath(XPATH_PORTS, namespaces=NAMESPACES): LOGGER.info('xml_component inventario = {:s}'.format(str(ET.tostring(xml_component)))) @@ -78,9 +77,9 @@ def parse(xml_data : ET.Element) -> List[Tuple[str, Dict[str, Any]]]: add_value_from_tag(inventory['attributes'], 'location', component_location) component_type = xml_component.find('ocp:state/ocp:type', namespaces=NAMESPACES) - component_type.text = component_type.text.replace('oc-platform-types:','') - if component_type is None: continue - add_value_from_tag(inventory, 'class', component_type) + if component_type is not None: + component_type.text = component_type.text.replace('oc-platform-types:','') + add_value_from_tag(inventory, 'class', component_type) if inventory['class'] == 'CPU' or inventory['class'] == 'STORAGE': continue diff --git a/src/device/service/drivers/openconfig/templates/RoutingPolicy.py b/src/device/service/drivers/openconfig/templates/RoutingPolicy.py index acafa021824f94f929e849117824e8120974d0b1..96dc1c5a49d0007f4b0a28b10c2f35868a18a71f 100644 --- a/src/device/service/drivers/openconfig/templates/RoutingPolicy.py +++ b/src/device/service/drivers/openconfig/templates/RoutingPolicy.py @@ -35,7 +35,7 @@ def parse(xml_data : ET.Element) -> List[Tuple[str, Dict[str, Any]]]: #LOGGER.info('xml_policy_definition = {:s}'.format(str(ET.tostring(xml_policy_definition)))) policy_definition = {} - + statement_name = '' policy_name = xml_policy_definition.find('ocrp:name', namespaces=NAMESPACES) if policy_name is None or policy_name.text is None: continue add_value_from_tag(policy_definition, 'policy_name', policy_name) diff --git a/src/device/tests/test_unitary_ietf_actn.py b/src/device/tests/test_unitary_ietf_actn.py index 5f01a412d88bca142d2bd96ce238947844bc9087..011b3ddbc54d9b68ec6c95cc6b0816385ad93eff 100644 --- a/src/device/tests/test_unitary_ietf_actn.py +++ b/src/device/tests/test_unitary_ietf_actn.py @@ -151,6 +151,11 @@ def test_device_ietf_actn_configure( retrieved_driver_config_rules = sorted(driver.GetConfig(), key=operator.itemgetter(0)) LOGGER.info('driver_config = {:s}'.format(str(retrieved_driver_config_rules))) assert isinstance(retrieved_driver_config_rules, list) + retrieved_driver_config_rules = [ + (resource_key, resource_value) + for resource_key, resource_value in retrieved_driver_config_rules + if resource_key != '/endpoints/endpoint[mgmt]' + ] if len(retrieved_driver_config_rules) > 0: LOGGER.error('PRE DRIVER CONFIG RULES - Differences:\n{:s}'.format(str(retrieved_driver_config_rules))) assert len(retrieved_driver_config_rules) == 0 @@ -186,6 +191,7 @@ def test_device_ietf_actn_configure( retrieved_driver_config_rules = [ {'action': 1, 'custom': {'resource_key': resource_key, 'resource_value': resource_value}} for resource_key, resource_value in retrieved_driver_config_rules + if resource_key != '/endpoints/endpoint[mgmt]' ] with open(DATA_FILE_CONFIG_RULES, 'r', encoding='UTF-8') as f: expected_driver_config_rules = sorted(json.load(f), key=lambda cr: cr['custom']['resource_key']) @@ -231,6 +237,7 @@ def test_device_ietf_actn_deconfigure( retrieved_driver_config_rules = [ {'action': 1, 'custom': {'resource_key': resource_key, 'resource_value': resource_value}} for resource_key, resource_value in retrieved_driver_config_rules + if resource_key != '/endpoints/endpoint[mgmt]' ] with open(DATA_FILE_CONFIG_RULES, 'r', encoding='UTF-8') as f: expected_driver_config_rules = sorted(json.load(f), key=lambda cr: cr['custom']['resource_key']) @@ -266,6 +273,11 @@ def test_device_ietf_actn_deconfigure( retrieved_driver_config_rules = sorted(driver.GetConfig(), key=operator.itemgetter(0)) LOGGER.info('retrieved_driver_config_rules = {:s}'.format(str(retrieved_driver_config_rules))) assert isinstance(retrieved_driver_config_rules, list) + retrieved_driver_config_rules = [ + (resource_key, resource_value) + for resource_key, resource_value in retrieved_driver_config_rules + if resource_key != '/endpoints/endpoint[mgmt]' + ] if len(retrieved_driver_config_rules) > 0: LOGGER.error('POST DRIVER CONFIG RULES - Differences:\n{:s}'.format(str(retrieved_driver_config_rules))) assert len(retrieved_driver_config_rules) == 0 diff --git a/src/dlt/.gitlab-ci.yml b/src/dlt/.gitlab-ci.yml index df30a7b1deb3360fbf8b578796fa39f3b7e736ba..7b14937a72a050b5029d38568875528f7880b041 100644 --- a/src/dlt/.gitlab-ci.yml +++ b/src/dlt/.gitlab-ci.yml @@ -22,8 +22,8 @@ build dlt: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY script: # This first build tags the builder resulting image to prevent being removed by dangling image removal command - - docker build -t "${IMAGE_NAME}-gateway:$IMAGE_TAG" -f ./src/$IMAGE_NAME/gateway/Dockerfile . - - docker build -t "${IMAGE_NAME}-connector:$IMAGE_TAG" -f ./src/$IMAGE_NAME/connector/Dockerfile . + - docker buildx build -t "${IMAGE_NAME}-gateway:$IMAGE_TAG" -f ./src/$IMAGE_NAME/gateway/Dockerfile . + - docker buildx build -t "${IMAGE_NAME}-connector:$IMAGE_TAG" -f ./src/$IMAGE_NAME/connector/Dockerfile . - docker tag "${IMAGE_NAME}-gateway:$IMAGE_TAG" "$CI_REGISTRY_IMAGE/${IMAGE_NAME}-gateway:$IMAGE_TAG" - docker tag "${IMAGE_NAME}-connector:$IMAGE_TAG" "$CI_REGISTRY_IMAGE/${IMAGE_NAME}-connector:$IMAGE_TAG" - docker push "$CI_REGISTRY_IMAGE/${IMAGE_NAME}-gateway:$IMAGE_TAG" diff --git a/src/e2e_orchestrator/.gitlab-ci.yml b/src/e2e_orchestrator/.gitlab-ci.yml index a14a215afc33067e923a7064b8f4617c61f4de9d..1dc93a8d4a4a45057532d6535465bcf985f42337 100644 --- a/src/e2e_orchestrator/.gitlab-ci.yml +++ b/src/e2e_orchestrator/.gitlab-ci.yml @@ -21,7 +21,7 @@ build e2eorchestrator: before_script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY script: - - docker build -t "$IMAGE_NAME:$IMAGE_TAG" -f ./src/$IMAGE_NAME/Dockerfile . + - docker buildx build -t "$IMAGE_NAME:$IMAGE_TAG" -f ./src/$IMAGE_NAME/Dockerfile . - docker tag "$IMAGE_NAME:$IMAGE_TAG" "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" - docker push "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" after_script: diff --git a/src/forecaster/.gitlab-ci.yml b/src/forecaster/.gitlab-ci.yml index 09b2f8f4e67db6ce152da608baff6f51279a1dc8..108febbf9f45354d5db1c9976955fb9ab274e032 100644 --- a/src/forecaster/.gitlab-ci.yml +++ b/src/forecaster/.gitlab-ci.yml @@ -21,7 +21,7 @@ build forecaster: before_script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY script: - - docker build -t "$IMAGE_NAME:$IMAGE_TAG" -f ./src/$IMAGE_NAME/Dockerfile . + - docker buildx build -t "$IMAGE_NAME:$IMAGE_TAG" -f ./src/$IMAGE_NAME/Dockerfile . - docker tag "$IMAGE_NAME:$IMAGE_TAG" "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" - docker push "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" after_script: diff --git a/src/interdomain/.gitlab-ci.yml b/src/interdomain/.gitlab-ci.yml index 486c6d0a931ff18be59ddaaa0268fcb1adfbaa2c..3cfd8c57ed339e28a709f0e219c822ea33294611 100644 --- a/src/interdomain/.gitlab-ci.yml +++ b/src/interdomain/.gitlab-ci.yml @@ -21,7 +21,7 @@ build interdomain: before_script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY script: - - docker build -t "$IMAGE_NAME:$IMAGE_TAG" -f ./src/$IMAGE_NAME/Dockerfile . + - docker buildx build -t "$IMAGE_NAME:$IMAGE_TAG" -f ./src/$IMAGE_NAME/Dockerfile . - docker tag "$IMAGE_NAME:$IMAGE_TAG" "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" - docker push "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" after_script: diff --git a/src/l3_attackmitigator/.gitlab-ci.yml b/src/l3_attackmitigator/.gitlab-ci.yml index c43b553a406bdbaf4cf77f80360469b87dd1c3e4..997c43649fb4ab9445b4f2830296e7e5e8654cef 100644 --- a/src/l3_attackmitigator/.gitlab-ci.yml +++ b/src/l3_attackmitigator/.gitlab-ci.yml @@ -21,7 +21,7 @@ build l3_attackmitigator: before_script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY script: - - docker build -t "$IMAGE_NAME:$IMAGE_TAG" -f ./src/$IMAGE_NAME/Dockerfile . + - docker buildx build -t "$IMAGE_NAME:$IMAGE_TAG" -f ./src/$IMAGE_NAME/Dockerfile . - docker tag "$IMAGE_NAME:$IMAGE_TAG" "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" - docker push "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" after_script: diff --git a/src/l3_centralizedattackdetector/.gitlab-ci.yml b/src/l3_centralizedattackdetector/.gitlab-ci.yml index 057545eb1b65aac26610c6460a47592b4e7604c2..ed0cb14d39fae9cecfb54ec0cedb9841ceec8f19 100644 --- a/src/l3_centralizedattackdetector/.gitlab-ci.yml +++ b/src/l3_centralizedattackdetector/.gitlab-ci.yml @@ -21,7 +21,7 @@ build l3_centralizedattackdetector: before_script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY script: - - docker build -t "$IMAGE_NAME:$IMAGE_TAG" -f ./src/$IMAGE_NAME/Dockerfile . + - docker buildx build -t "$IMAGE_NAME:$IMAGE_TAG" -f ./src/$IMAGE_NAME/Dockerfile . - docker tag "$IMAGE_NAME:$IMAGE_TAG" "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" - docker push "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" after_script: diff --git a/src/l3_distributedattackdetector/.gitlab-ci.yml b/src/l3_distributedattackdetector/.gitlab-ci.yml index 226cb642176a7d0854ee8dbdaf623cf7bcad1fc2..4740390864288ad9ab8daadc6360865ae718cf43 100644 --- a/src/l3_distributedattackdetector/.gitlab-ci.yml +++ b/src/l3_distributedattackdetector/.gitlab-ci.yml @@ -21,7 +21,7 @@ build l3_distributedattackdetector: before_script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY script: - - docker build -t "$IMAGE_NAME:$IMAGE_TAG" -f ./src/$IMAGE_NAME/Dockerfile . + - docker buildx build -t "$IMAGE_NAME:$IMAGE_TAG" -f ./src/$IMAGE_NAME/Dockerfile . - docker tag "$IMAGE_NAME:$IMAGE_TAG" "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" - docker push "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" after_script: diff --git a/src/load_generator/.gitlab-ci.yml b/src/load_generator/.gitlab-ci.yml index 5f2ee0d76105e57d31b0a6596d020ef53e65a631..3980c19e538931f3e8fc144b43da6729c9a97ce1 100644 --- a/src/load_generator/.gitlab-ci.yml +++ b/src/load_generator/.gitlab-ci.yml @@ -21,7 +21,7 @@ build load_generator: before_script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY script: - - docker build -t "$IMAGE_NAME:$IMAGE_TAG" -f ./src/$IMAGE_NAME/Dockerfile . + - docker buildx build -t "$IMAGE_NAME:$IMAGE_TAG" -f ./src/$IMAGE_NAME/Dockerfile . - docker tag "$IMAGE_NAME:$IMAGE_TAG" "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" - docker push "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" after_script: diff --git a/src/monitoring/.gitlab-ci.yml b/src/monitoring/.gitlab-ci.yml index 7c3a14975d9c7bf7d5d46be917203338bea7f1f9..6ee53bb60f57ea4b6e8477bfdd514dc59bdc7e19 100644 --- a/src/monitoring/.gitlab-ci.yml +++ b/src/monitoring/.gitlab-ci.yml @@ -21,7 +21,7 @@ build monitoring: before_script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY script: - - docker build -t "$IMAGE_NAME:$IMAGE_TAG" -f ./src/$IMAGE_NAME/Dockerfile . + - docker buildx build -t "$IMAGE_NAME:$IMAGE_TAG" -f ./src/$IMAGE_NAME/Dockerfile . - docker tag "$IMAGE_NAME:$IMAGE_TAG" "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" - docker push "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" after_script: diff --git a/src/monitoring/tests/test_unitary.py b/src/monitoring/tests/test_unitary.py index f2c2215970545e1f6583598bdc5ef88299ba76d2..9aa6acea46a8350553a0c1aed3db8f9e444c4877 100644 --- a/src/monitoring/tests/test_unitary.py +++ b/src/monitoring/tests/test_unitary.py @@ -38,7 +38,6 @@ from common.tools.service.GenericGrpcService import GenericGrpcService from common.tools.timestamp.Converters import timestamp_utcnow_to_float #, timestamp_string_to_float from context.client.ContextClient import ContextClient from device.client.DeviceClient import DeviceClient -from device.service.DeviceService import DeviceService from device.service.driver_api.DriverFactory import DriverFactory from device.service.driver_api.DriverInstanceCache import DriverInstanceCache from monitoring.client.MonitoringClient import MonitoringClient @@ -54,7 +53,8 @@ from monitoring.tests.Messages import create_kpi_request, create_kpi_request_d, from monitoring.tests.Objects import DEVICE_DEV1, DEVICE_DEV1_CONNECT_RULES, DEVICE_DEV1_UUID, ENDPOINT_END1_UUID os.environ['DEVICE_EMULATED_ONLY'] = 'TRUE' -from device.service.drivers import DRIVERS # pylint: disable=wrong-import-position,ungrouped-imports +from device.service.DeviceService import DeviceService # pylint: disable=wrong-import-position,ungrouped-imports +from device.service.drivers import DRIVERS # pylint: disable=wrong-import-position,ungrouped-imports ########################### diff --git a/src/nbi/.gitlab-ci.yml b/src/nbi/.gitlab-ci.yml index e0cac446a33b36a4fbe65b3da1ad5767582a77c6..2f711020284613b0a700a7dfc6a76b5bcb7f7e5c 100644 --- a/src/nbi/.gitlab-ci.yml +++ b/src/nbi/.gitlab-ci.yml @@ -21,7 +21,7 @@ build nbi: before_script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY script: - - docker build -t "$IMAGE_NAME:$IMAGE_TAG" -f ./src/$IMAGE_NAME/Dockerfile . + - docker buildx build -t "$IMAGE_NAME:$IMAGE_TAG" -f ./src/$IMAGE_NAME/Dockerfile . - docker tag "$IMAGE_NAME:$IMAGE_TAG" "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" - docker push "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" after_script: diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_l3vpn/L3VPN_Services.py b/src/nbi/service/rest_server/nbi_plugins/ietf_l3vpn/L3VPN_Services.py index 13d5c532478e93ef1bd3b1c644d7f3c3ba927af5..6bd57c8238c1af63ed3f504593f3c70cf8a68cc6 100644 --- a/src/nbi/service/rest_server/nbi_plugins/ietf_l3vpn/L3VPN_Services.py +++ b/src/nbi/service/rest_server/nbi_plugins/ietf_l3vpn/L3VPN_Services.py @@ -13,7 +13,7 @@ # limitations under the License. import logging -from typing import Dict +from typing import Dict, List from flask import request from flask.json import jsonify from flask_restful import Resource @@ -36,11 +36,40 @@ class L3VPN_Services(Resource): request_data : Dict = request.json LOGGER.debug('Request: {:s}'.format(str(request_data))) + errors = list() + if 'ietf-l3vpn-svc:l3vpn-services' in request_data: + # processing multiple L3VPN service requests formatted as: + #{ + # "ietf-l3vpn-svc:l3vpn-services": { + # "l3vpn-svc": [ + # { + # "service-id": "vpn1", + # "vpn-services": { + # "vpn-service": [ + for l3vpn_svc in request_data['ietf-l3vpn-svc:l3vpn-services']['l3vpn-svc']: + l3vpn_svc.pop('service-id', None) + l3vpn_svc_request_data = {'ietf-l3vpn-svc:l3vpn-svc': l3vpn_svc} + errors.extend(self._process_l3vpn(l3vpn_svc_request_data)) + elif 'ietf-l3vpn-svc:l3vpn-svc' in request_data: + # processing single (standard) L3VPN service request formatted as: + #{ + # "ietf-l3vpn-svc:l3vpn-svc": { + # "vpn-services": { + # "vpn-service": [ + errors.extend(self._process_l3vpn(request_data)) + else: + errors.append('unexpected request: {:s}'.format(str(request_data))) + + response = jsonify(errors) + response.status_code = HTTP_CREATED if len(errors) == 0 else HTTP_SERVERERROR + return response + + def _process_l3vpn(self, request_data : Dict) -> List[Dict]: yang_validator = YangValidator('ietf-l3vpn-svc') request_data = yang_validator.parse_to_dict(request_data) yang_validator.destroy() - errors = [] + errors = list() for vpn_service in request_data['l3vpn-svc']['vpn-services']['vpn-service']: process_vpn_service(vpn_service, errors) @@ -48,6 +77,4 @@ class L3VPN_Services(Resource): for site in request_data['l3vpn-svc']['sites']['site']: process_site(site, errors) - response = jsonify(errors) - response.status_code = HTTP_CREATED if len(errors) == 0 else HTTP_SERVERERROR - return response + return errors diff --git a/src/opticalattackdetector/.gitlab-ci.yml b/src/opticalattackdetector/.gitlab-ci.yml index 2a89b5c54f49434d9703f833e2c72486c2394f9f..61f404c167f6ac12788bf59ba2fe7a9c254e2852 100644 --- a/src/opticalattackdetector/.gitlab-ci.yml +++ b/src/opticalattackdetector/.gitlab-ci.yml @@ -21,7 +21,7 @@ build opticalattackdetector: before_script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY script: - - docker build -t "$IMAGE_NAME:$IMAGE_TAG" -f ./src/$IMAGE_NAME/Dockerfile . + - docker buildx build -t "$IMAGE_NAME:$IMAGE_TAG" -f ./src/$IMAGE_NAME/Dockerfile . - docker tag "$IMAGE_NAME:$IMAGE_TAG" "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" - docker push "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" after_script: @@ -37,62 +37,68 @@ build opticalattackdetector: - manifests/${IMAGE_NAME}service.yaml - .gitlab-ci.yml -# apply unit test to the opticalattackdetector component -unit_test opticalattackdetector: - variables: - IMAGE_NAME: 'opticalattackdetector' # name of the microservice - IMAGE_TAG: 'latest' # tag of the container image (production, development, etc) - stage: unit_test - needs: - - build opticalattackdetector - before_script: - - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY - - if docker network list | grep teraflowbridge; then echo "teraflowbridge is already created"; else docker network create -d bridge teraflowbridge; fi - - if docker container ls | grep $IMAGE_NAME; then docker rm -f $IMAGE_NAME; else echo "$IMAGE_NAME image is not in the system"; fi - - if docker container ls | grep redis; then docker rm -f redis; else echo "redis image is not in the system"; fi - - if docker container ls | grep dbscanserving; then docker rm -f dbscanserving; else echo "dbscanserving image is not in the system"; fi - script: - - export REDIS_PASSWORD=$(uuidgen) - - docker pull "redis:7.0-alpine" - - docker run --name redis -d --network=teraflowbridge -p 16379:6379 -e REDIS_PASSWORD=${REDIS_PASSWORD} --rm redis:7.0-alpine redis-server --requirepass ${REDIS_PASSWORD} - - docker logs redis - - REDIS_ADDRESS=$(docker inspect redis --format "{{.NetworkSettings.Networks.teraflowbridge.IPAddress}}") - - docker pull "$CI_REGISTRY_IMAGE/dbscanserving:$IMAGE_TAG" - - docker run --name dbscanserving -d -p 10008:10008 --network=teraflowbridge --rm $CI_REGISTRY_IMAGE/dbscanserving:$IMAGE_TAG "python -m dbscanserving.service" - - docker logs dbscanserving - - DBSCANSERVING_ADDRESS=$(docker inspect dbscanserving --format "{{.NetworkSettings.Networks.teraflowbridge.IPAddress}}") - - docker pull "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" - - > - docker run --name $IMAGE_NAME -d -p 10006:10006 - -v "$PWD/src/$IMAGE_NAME/tests:/home/${IMAGE_NAME}/results" - -e REDIS_PASSWORD=${REDIS_PASSWORD} - -e DBSCANSERVINGSERVICE_SERVICE_HOST=${DBSCANSERVING_ADDRESS} - -e CACHINGSERVICE_SERVICE_HOST=${REDIS_ADDRESS} - --network=teraflowbridge --rm $CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG - - sleep 5 - - docker ps -a - - docker logs $IMAGE_NAME - - docker exec -i $IMAGE_NAME bash -c "coverage run -m pytest --log-level=DEBUG --verbose $IMAGE_NAME/tests/test_unitary.py --junitxml=/home/${IMAGE_NAME}/results/${IMAGE_NAME}_report.xml; coverage xml -o /home/${IMAGE_NAME}/results/${IMAGE_NAME}_coverage.xml; coverage report --include='${IMAGE_NAME}/*' --show-missing" - coverage: '/TOTAL\s+\d+\s+\d+\s+(\d+%)/' - after_script: - - docker rm -f $IMAGE_NAME - - docker rm -f redis - - docker rm -f dbscanserving - - docker network rm teraflowbridge - rules: - - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && ($CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH)' - - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "develop"' - - changes: - - src/$IMAGE_NAME/**/*.{py,in,yml} - - src/$IMAGE_NAME/Dockerfile - - src/$IMAGE_NAME/tests/*.py - - src/$IMAGE_NAME/tests/Dockerfile - - manifests/${IMAGE_NAME}service.yaml - - .gitlab-ci.yml - artifacts: - when: always - reports: - junit: src/$IMAGE_NAME/tests/${IMAGE_NAME}_report.xml +## apply unit test to the opticalattackdetector component +#unit_test opticalattackdetector: +# variables: +# IMAGE_NAME: 'opticalattackdetector' # name of the microservice +# IMAGE_TAG: 'latest' # tag of the container image (production, development, etc) +# stage: unit_test +# needs: +# - build opticalattackdetector +# before_script: +# - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY +# - if docker network list | grep teraflowbridge; then echo "teraflowbridge is already created"; else docker network create -d bridge teraflowbridge; fi +# - if docker container ls | grep $IMAGE_NAME; then docker rm -f $IMAGE_NAME; else echo "$IMAGE_NAME image is not in the system"; fi +# - if docker container ls | grep redis; then docker rm -f redis; else echo "redis image is not in the system"; fi +# - if docker container ls | grep dbscanserving; then docker rm -f dbscanserving; else echo "dbscanserving image is not in the system"; fi +# script: +# - export REDIS_PASSWORD=$(uuidgen) +# - docker pull "redis:7.0-alpine" +# - docker run --name redis -d --network=teraflowbridge -p 16379:6379 -e REDIS_PASSWORD=${REDIS_PASSWORD} --rm redis:7.0-alpine redis-server --requirepass ${REDIS_PASSWORD} +# - while ! docker logs redis 2>&1 | grep -q 'Ready to accept connections'; do sleep 1; done +# - docker logs redis +# - REDIS_ADDRESS=$(docker inspect redis --format "{{.NetworkSettings.Networks.teraflowbridge.IPAddress}}") +# - docker pull "$CI_REGISTRY_IMAGE/dbscanserving:$IMAGE_TAG" +# - docker run --name dbscanserving -d -p 10008:10008 --network=teraflowbridge --rm $CI_REGISTRY_IMAGE/dbscanserving:$IMAGE_TAG "python -m dbscanserving.service" +# - docker logs dbscanserving +# - DBSCANSERVING_ADDRESS=$(docker inspect dbscanserving --format "{{.NetworkSettings.Networks.teraflowbridge.IPAddress}}") +# - docker pull "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" +# - > +# docker run --name $IMAGE_NAME -d -p 10006:10006 +# -v "$PWD/src/$IMAGE_NAME/tests:/home/${IMAGE_NAME}/results" +# -e REDIS_PASSWORD=${REDIS_PASSWORD} +# -e DBSCANSERVINGSERVICE_SERVICE_HOST=${DBSCANSERVING_ADDRESS} +# -e CACHINGSERVICE_SERVICE_HOST=${REDIS_ADDRESS} +# --network=teraflowbridge --rm $CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG +# - sleep 5 +# - docker ps -a +# - docker logs $IMAGE_NAME +# - docker exec -i $IMAGE_NAME bash -c "coverage run -m pytest --log-level=DEBUG --verbose $IMAGE_NAME/tests/test_unitary.py --junitxml=/home/${IMAGE_NAME}/results/${IMAGE_NAME}_report.xml" +# - docker logs redis +# - docker logs dbscanserving +# - docker logs $IMAGE_NAME +# - docker exec -i $IMAGE_NAME bash -c "coverage xml -o /home/${IMAGE_NAME}/results/${IMAGE_NAME}_coverage.xml" +# - docker exec -i $IMAGE_NAME bash -c "coverage report --include='${IMAGE_NAME}/*' --show-missing" +# coverage: '/TOTAL\s+\d+\s+\d+\s+(\d+%)/' +# after_script: +# - docker rm -f $IMAGE_NAME +# - docker rm -f redis +# - docker rm -f dbscanserving +# - docker network rm teraflowbridge +# rules: +# - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && ($CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH)' +# - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "develop"' +# - changes: +# - src/$IMAGE_NAME/**/*.{py,in,yml} +# - src/$IMAGE_NAME/Dockerfile +# - src/$IMAGE_NAME/tests/*.py +# - src/$IMAGE_NAME/tests/Dockerfile +# - manifests/${IMAGE_NAME}service.yaml +# - .gitlab-ci.yml +# artifacts: +# when: always +# reports: +# junit: src/$IMAGE_NAME/tests/${IMAGE_NAME}_report.xml # Deployment of the opticalattackdetector service in Kubernetes Cluster diff --git a/src/opticalattackdetector/service/OpticalAttackDetectorServiceServicerImpl.py b/src/opticalattackdetector/service/OpticalAttackDetectorServiceServicerImpl.py index 11016037ee36f3b63726f7cc9fe398609c4f451b..d8e8b649c2b1cccbe1071c6f9ff66504f757f1fd 100644 --- a/src/opticalattackdetector/service/OpticalAttackDetectorServiceServicerImpl.py +++ b/src/opticalattackdetector/service/OpticalAttackDetectorServiceServicerImpl.py @@ -221,7 +221,7 @@ class OpticalAttackDetectorServiceServicerImpl(OpticalAttackDetectorServiceServi monitoring_client.IncludeKpi(kpi) # if -1 in response.cluster_indices: # attack detected - if kpi.kpi_value.int32Val == -1: + if kpi.kpi_value.int32Val == 1: attack = AttackDescription() attack.cs_id.uuid = request.service_id.service_uuid.uuid with HISTOGRAM_DURATION.labels(step="mitigation", **METRIC_LABELS).time(): diff --git a/src/opticalattackdetector/tests/test_unitary.py b/src/opticalattackdetector/tests/test_unitary.py index 6c7579238a157a0f00e9eb0c9df53a04c1774ff6..0112ec75cac40e527390ed1991db7092461bdc1a 100644 --- a/src/opticalattackdetector/tests/test_unitary.py +++ b/src/opticalattackdetector/tests/test_unitary.py @@ -15,13 +15,13 @@ import logging import uuid import queue +import time from unittest.mock import patch import pytest from common.proto import dbscanserving_pb2 as dbscan from common.proto.optical_attack_detector_pb2 import DetectionRequest -from common.tests.MockServicerImpl_Monitoring import MockServicerImpl_Monitoring from opticalattackdetector.client.OpticalAttackDetectorClient import \ OpticalAttackDetectorClient @@ -37,6 +37,7 @@ LOGGER = logging.getLogger(__name__) def optical_attack_detector_service(): _service = OpticalAttackDetectorService() _service.start() + time.sleep(2) yield _service _service.stop() @@ -44,7 +45,7 @@ def optical_attack_detector_service(): @pytest.fixture(scope="session") def optical_attack_detector_client(optical_attack_detector_service: OpticalAttackDetectorService): _client = OpticalAttackDetectorClient( - host=optical_attack_detector_service.bind_address, + host="127.0.0.1", port=optical_attack_detector_service.bind_port, ) yield _client @@ -56,26 +57,20 @@ def test_detect_attack( optical_attack_detector_client: OpticalAttackDetectorClient, ): message = dbscan.DetectionResponse() - message.cluster_indices.extend([0, 1, -1, -1, -1]) + message.cluster_indices.extend([0, 1] * 5 + [-1] * 10) - monitoring_mock = MockServicerImpl_Monitoring(queue_samples = queue.Queue()) with patch( "opticalattackdetector.service.OpticalAttackDetectorServiceServicerImpl.attack_mitigator_client" ) as mitigator, patch( - "opticalattackdetector.service.OpticalAttackDetectorServiceServicerImpl.monitoring_client", - monitoring_mock, + "opticalattackdetector.service.OpticalAttackDetectorServiceServicerImpl.monitoring_client.IncludeKpi", ) as monitoring, patch( "opticalattackdetector.service.OpticalAttackDetectorServiceServicerImpl.dbscanserving_client.Detect", - # TODO: return dumb object with "cluster_indices" attribute - # idea: create new response object return_value=message, ) as dbscanserving: - for _ in range(10): - request: DetectionRequest = DetectionRequest() - request.service_id.context_id.context_uuid.uuid = str(uuid.uuid4()) - request.service_id.service_uuid.uuid = str(uuid.uuid4()) - request.kpi_id.kpi_id.uuid = "1" - optical_attack_detector_client.DetectAttack(request) - dbscanserving.assert_called_once() - monitoring.IncludeKpi.assert_called_once() - mitigator.NotifyAttack.assert_called() + request: DetectionRequest = DetectionRequest() + request.service_id.context_id.context_uuid.uuid = str(uuid.uuid4()) + request.service_id.service_uuid.uuid = str(uuid.uuid4()) + request.kpi_id.kpi_id.uuid = "1" + optical_attack_detector_client.DetectAttack(request) + dbscanserving.assert_called() + monitoring.assert_called() diff --git a/src/opticalattackmanager/.gitlab-ci.yml b/src/opticalattackmanager/.gitlab-ci.yml index 1fe77d3159ba5d5f2d0bd99f23c4692e1f509d20..1054a8520ecc8e206bc98b44095100be67359d54 100644 --- a/src/opticalattackmanager/.gitlab-ci.yml +++ b/src/opticalattackmanager/.gitlab-ci.yml @@ -21,7 +21,7 @@ build opticalattackmanager: before_script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY script: - - docker build -t "$IMAGE_NAME:$IMAGE_TAG" -f ./src/$IMAGE_NAME/Dockerfile . + - docker buildx build -t "$IMAGE_NAME:$IMAGE_TAG" -f ./src/$IMAGE_NAME/Dockerfile . - docker tag "$IMAGE_NAME:$IMAGE_TAG" "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" - docker push "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" after_script: @@ -38,45 +38,45 @@ build opticalattackmanager: - manifests/${IMAGE_NAME}service.yaml - .gitlab-ci.yml -# Apply unit test to the component -unit_test opticalattackmanager: - variables: - IMAGE_NAME: 'opticalattackmanager' # name of the microservice - IMAGE_TAG: 'latest' # tag of the container image (production, development, etc) - stage: unit_test - needs: - - build opticalattackmanager - before_script: - - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY - - if docker network list | grep teraflowbridge; then echo "teraflowbridge is already created"; else docker network create -d bridge teraflowbridge; fi - - if docker container ls | grep $IMAGE_NAME; then docker rm -f $IMAGE_NAME; else echo "$IMAGE_NAME image is not in the system"; fi - script: - - docker pull "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" - - docker run --name $IMAGE_NAME -d -p 10005:10005 -e LOG_LEVEL=DEBUG -v "$PWD/src/$IMAGE_NAME/tests:/home/teraflow/controller/$IMAGE_NAME/results" --network=teraflowbridge $CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG - - docker ps -a - - docker logs $IMAGE_NAME - - docker exec -i $IMAGE_NAME bash -c "coverage run -m pytest --log-level=DEBUG --verbose $IMAGE_NAME/tests/test_unitary.py --junitxml=/home/teraflow/controller/$IMAGE_NAME/results/${IMAGE_NAME}_report.xml; coverage report --include='${IMAGE_NAME}/*' --show-missing" - - ls -la src/$IMAGE_NAME/tests - coverage: '/TOTAL\s+\d+\s+\d+\s+(\d+%)/' - after_script: - - docker rm -f $IMAGE_NAME - - docker network rm teraflowbridge - rules: - - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && ($CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH)' - - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "develop"' - - changes: - - src/common/**/*.py - - proto/*.proto - - src/$IMAGE_NAME/**/*.{py,in,yml} - - src/$IMAGE_NAME/Dockerfile - - src/$IMAGE_NAME/tests/*.py - - src/$IMAGE_NAME/tests/Dockerfile - - manifests/${IMAGE_NAME}service.yaml - - .gitlab-ci.yml - artifacts: - when: always - reports: - junit: src/$IMAGE_NAME/tests/${IMAGE_NAME}_report.xml +## Apply unit test to the component +#unit_test opticalattackmanager: +# variables: +# IMAGE_NAME: 'opticalattackmanager' # name of the microservice +# IMAGE_TAG: 'latest' # tag of the container image (production, development, etc) +# stage: unit_test +# needs: +# - build opticalattackmanager +# before_script: +# - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY +# - if docker network list | grep teraflowbridge; then echo "teraflowbridge is already created"; else docker network create -d bridge teraflowbridge; fi +# - if docker container ls | grep $IMAGE_NAME; then docker rm -f $IMAGE_NAME; else echo "$IMAGE_NAME image is not in the system"; fi +# script: +# - docker pull "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" +# - docker run --name $IMAGE_NAME -d -p 10005:10005 -e LOG_LEVEL=DEBUG -v "$PWD/src/$IMAGE_NAME/tests:/home/teraflow/controller/$IMAGE_NAME/results" --network=teraflowbridge $CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG +# - docker ps -a +# - docker logs $IMAGE_NAME +# - docker exec -i $IMAGE_NAME bash -c "coverage run -m pytest --log-level=DEBUG --verbose $IMAGE_NAME/tests/test_unitary.py --junitxml=/home/teraflow/controller/$IMAGE_NAME/results/${IMAGE_NAME}_report.xml; coverage report --include='${IMAGE_NAME}/*' --show-missing" +# - ls -la src/$IMAGE_NAME/tests +# coverage: '/TOTAL\s+\d+\s+\d+\s+(\d+%)/' +# after_script: +# - docker rm -f $IMAGE_NAME +# - docker network rm teraflowbridge +# rules: +# - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && ($CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH)' +# - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "develop"' +# - changes: +# - src/common/**/*.py +# - proto/*.proto +# - src/$IMAGE_NAME/**/*.{py,in,yml} +# - src/$IMAGE_NAME/Dockerfile +# - src/$IMAGE_NAME/tests/*.py +# - src/$IMAGE_NAME/tests/Dockerfile +# - manifests/${IMAGE_NAME}service.yaml +# - .gitlab-ci.yml +# artifacts: +# when: always +# reports: +# junit: src/$IMAGE_NAME/tests/${IMAGE_NAME}_report.xml # Deployment of the service in Kubernetes Cluster # deploy opticalattackmanager: diff --git a/src/opticalattackmitigator/.gitlab-ci.yml b/src/opticalattackmitigator/.gitlab-ci.yml index 30eb94b1b5a765eb3dbfac3e544b9bd94a6e415b..3456348fa82b0f19420abc4c4ff2ee32b2b4f3de 100644 --- a/src/opticalattackmitigator/.gitlab-ci.yml +++ b/src/opticalattackmitigator/.gitlab-ci.yml @@ -21,7 +21,7 @@ build opticalattackmitigator: before_script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY script: - - docker build -t "$IMAGE_NAME:$IMAGE_TAG" -f ./src/$IMAGE_NAME/Dockerfile . + - docker buildx build -t "$IMAGE_NAME:$IMAGE_TAG" -f ./src/$IMAGE_NAME/Dockerfile . - docker tag "$IMAGE_NAME:$IMAGE_TAG" "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" - docker push "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" after_script: @@ -36,41 +36,41 @@ build opticalattackmitigator: - manifests/${IMAGE_NAME}service.yaml - .gitlab-ci.yml -# apply unit test to the opticalattackmitigator component -unit_test opticalattackmitigator: - variables: - IMAGE_NAME: 'opticalattackmitigator' # name of the microservice - IMAGE_TAG: 'latest' # tag of the container image (production, development, etc) - stage: unit_test - needs: - - build opticalattackmitigator - before_script: - - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY - - if docker network list | grep teraflowbridge; then echo "teraflowbridge is already created"; else docker network create -d bridge teraflowbridge; fi - - if docker container ls | grep $IMAGE_NAME; then docker rm -f $IMAGE_NAME; else echo "$IMAGE_NAME container is not in the system"; fi - script: - - docker pull "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" - - docker run --name $IMAGE_NAME -d -p 10007:10007 -v "$PWD/src/$IMAGE_NAME/tests:/home/${IMAGE_NAME}/results" --network=teraflowbridge --rm $CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG - - sleep 5 - - docker ps -a - - docker exec -i $IMAGE_NAME bash -c "coverage run -m pytest --log-level=DEBUG --verbose $IMAGE_NAME/tests/test_unitary.py --junitxml=/home/${IMAGE_NAME}/results/${IMAGE_NAME}_report.xml; coverage xml -o /home/${IMAGE_NAME}/results/${IMAGE_NAME}_coverage.xml; coverage report --include='${IMAGE_NAME}/*' --show-missing" - coverage: '/TOTAL\s+\d+\s+\d+\s+(\d+%)/' - after_script: - - docker rm -f $IMAGE_NAME - - docker network rm teraflowbridge - rules: - - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && ($CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH)' - - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "develop"' - - changes: - - src/$IMAGE_NAME/**/*.{py,in,yml} - - src/$IMAGE_NAME/Dockerfile - - src/$IMAGE_NAME/tests/*.py - - manifests/${IMAGE_NAME}service.yaml - - .gitlab-ci.yml - artifacts: - when: always - reports: - junit: src/$IMAGE_NAME/tests/${IMAGE_NAME}_report.xml +## apply unit test to the opticalattackmitigator component +#unit_test opticalattackmitigator: +# variables: +# IMAGE_NAME: 'opticalattackmitigator' # name of the microservice +# IMAGE_TAG: 'latest' # tag of the container image (production, development, etc) +# stage: unit_test +# needs: +# - build opticalattackmitigator +# before_script: +# - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY +# - if docker network list | grep teraflowbridge; then echo "teraflowbridge is already created"; else docker network create -d bridge teraflowbridge; fi +# - if docker container ls | grep $IMAGE_NAME; then docker rm -f $IMAGE_NAME; else echo "$IMAGE_NAME container is not in the system"; fi +# script: +# - docker pull "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" +# - docker run --name $IMAGE_NAME -d -p 10007:10007 -v "$PWD/src/$IMAGE_NAME/tests:/home/${IMAGE_NAME}/results" --network=teraflowbridge --rm $CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG +# - sleep 5 +# - docker ps -a +# - docker exec -i $IMAGE_NAME bash -c "coverage run -m pytest --log-level=DEBUG --verbose $IMAGE_NAME/tests/test_unitary.py --junitxml=/home/${IMAGE_NAME}/results/${IMAGE_NAME}_report.xml; coverage xml -o /home/${IMAGE_NAME}/results/${IMAGE_NAME}_coverage.xml; coverage report --include='${IMAGE_NAME}/*' --show-missing" +# coverage: '/TOTAL\s+\d+\s+\d+\s+(\d+%)/' +# after_script: +# - docker rm -f $IMAGE_NAME +# - docker network rm teraflowbridge +# rules: +# - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && ($CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH)' +# - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "develop"' +# - changes: +# - src/$IMAGE_NAME/**/*.{py,in,yml} +# - src/$IMAGE_NAME/Dockerfile +# - src/$IMAGE_NAME/tests/*.py +# - manifests/${IMAGE_NAME}service.yaml +# - .gitlab-ci.yml +# artifacts: +# when: always +# reports: +# junit: src/$IMAGE_NAME/tests/${IMAGE_NAME}_report.xml # Deployment of the opticalattackmitigator service in Kubernetes Cluster diff --git a/src/opticalcontroller/.gitlab-ci.yml b/src/opticalcontroller/.gitlab-ci.yml new file mode 100644 index 0000000000000000000000000000000000000000..4f27f0a4240a4cf5840750b7ead31117bd6c73c4 --- /dev/null +++ b/src/opticalcontroller/.gitlab-ci.yml @@ -0,0 +1,105 @@ +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# +# 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. + +# Build, tag, and push the Docker image to the GitLab Docker registry +build opticalcontroller: + variables: + IMAGE_NAME: 'opticalcontroller' # name of the microservice + IMAGE_TAG: 'latest' # tag of the container image (production, development, etc) + stage: build + before_script: + - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY + script: + - docker buildx build -t "$IMAGE_NAME:$IMAGE_TAG" -f ./src/$IMAGE_NAME/Dockerfile . + - docker tag "$IMAGE_NAME:$IMAGE_TAG" "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" + - docker push "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" + after_script: + - docker images --filter="dangling=true" --quiet | xargs -r docker rmi + rules: + - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && ($CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH)' + - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "develop"' + - changes: + - src/common/**/*.py + - proto/*.proto + - src/$IMAGE_NAME/**/*.{py,in,yml} + - src/$IMAGE_NAME/Dockerfile + - src/$IMAGE_NAME/tests/*.py + - manifests/${IMAGE_NAME}service.yaml + - .gitlab-ci.yml + +## Apply unit test to the component +#unit_test opticalcontroller: +# variables: +# IMAGE_NAME: 'opticalcontroller' # name of the microservice +# IMAGE_TAG: 'latest' # tag of the container image (production, development, etc) +# stage: unit_test +# needs: +# - build opticalcontroller +# before_script: +# - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY +# - if docker network list | grep teraflowbridge; then echo "teraflowbridge is already created"; else docker network create --driver=bridge teraflowbridge; fi +# - if docker container ls | grep $IMAGE_NAME; then docker rm -f $IMAGE_NAME; else echo "$IMAGE_NAME image is not in the system"; fi +# script: +# - docker pull "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" +# - docker run --name $IMAGE_NAME -d -p 20030:20030 -v "$PWD/src/$IMAGE_NAME/tests:/opt/results" --network=teraflowbridge $CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG +# - sleep 5 +# - docker ps -a +# - docker logs $IMAGE_NAME +# - docker exec -i $IMAGE_NAME bash -c "coverage run -m pytest --log-level=INFO --verbose $IMAGE_NAME/tests/test_unitary.py --junitxml=/opt/results/${IMAGE_NAME}_report.xml" +# - docker exec -i $IMAGE_NAME bash -c "coverage report --include='${IMAGE_NAME}/*' --show-missing" +# coverage: '/TOTAL\s+\d+\s+\d+\s+(\d+%)/' +# after_script: +# - docker rm -f $IMAGE_NAME +# - docker network rm teraflowbridge +# rules: +# - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && ($CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH)' +# - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "develop"' +# - changes: +# - src/common/**/*.py +# - proto/*.proto +# - src/$IMAGE_NAME/**/*.{py,in,yml} +# - src/$IMAGE_NAME/Dockerfile +# - src/$IMAGE_NAME/tests/*.py +# - manifests/${IMAGE_NAME}service.yaml +# - .gitlab-ci.yml +# artifacts: +# when: always +# reports: +# junit: src/$IMAGE_NAME/tests/${IMAGE_NAME}_report.xml + +## Deployment of the service in Kubernetes Cluster +#deploy opticalcontroller: +# variables: +# IMAGE_NAME: 'opticalcontroller' # name of the microservice +# IMAGE_TAG: 'latest' # tag of the container image (production, development, etc) +# stage: deploy +# needs: +# - unit test opticalcontroller +# # - integ_test execute +# script: +# - 'sed -i "s/$IMAGE_NAME:.*/$IMAGE_NAME:$IMAGE_TAG/" manifests/${IMAGE_NAME}service.yaml' +# - kubectl version +# - kubectl get all +# - kubectl apply -f "manifests/${IMAGE_NAME}service.yaml" +# - kubectl get all +# # environment: +# # name: test +# # url: https://example.com +# # kubernetes: +# # namespace: test +# rules: +# - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && ($CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH)' +# when: manual +# - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "develop"' +# when: manual diff --git a/src/opticalcontroller/Dockerfile b/src/opticalcontroller/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..d54566ccbec04e30e089e5fb6bb66d706c5ce356 --- /dev/null +++ b/src/opticalcontroller/Dockerfile @@ -0,0 +1,71 @@ +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# +# 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. + +FROM python:3.9-slim + +# Install dependencies +RUN apt-get --yes --quiet --quiet update && \ + apt-get --yes --quiet --quiet install wget g++ git && \ + rm -rf /var/lib/apt/lists/* + +# Set Python to show logs as they occur +ENV PYTHONUNBUFFERED=0 + +# Download the gRPC health probe +RUN GRPC_HEALTH_PROBE_VERSION=v0.2.0 && \ + wget -qO/bin/grpc_health_probe https://github.com/grpc-ecosystem/grpc-health-probe/releases/download/${GRPC_HEALTH_PROBE_VERSION}/grpc_health_probe-linux-amd64 && \ + chmod +x /bin/grpc_health_probe + +# Get generic Python packages +RUN python3 -m pip install --upgrade pip +RUN python3 -m pip install --upgrade setuptools wheel +RUN python3 -m pip install --upgrade pip-tools + +# Get common Python packages +# Note: this step enables sharing the previous Docker build steps among all the Python components +WORKDIR /var/teraflow +COPY common_requirements.in common_requirements.in +RUN pip-compile --quiet --output-file=common_requirements.txt common_requirements.in +RUN python3 -m pip install -r common_requirements.txt + +# Add common files into working directory +WORKDIR /var/teraflow/common +COPY src/common/. ./ +RUN rm -rf proto + +# Create proto sub-folder, copy .proto files, and generate Python code +RUN mkdir -p /var/teraflow/common/proto +WORKDIR /var/teraflow/common/proto +RUN touch __init__.py +COPY proto/*.proto ./ +RUN python3 -m grpc_tools.protoc -I=. --python_out=. --grpc_python_out=. *.proto +RUN rm *.proto +RUN find . -type f -exec sed -i -E 's/(import\ .*)_pb2/from . \1_pb2/g' {} \; + +# Create component sub-folders, get specific Python packages +RUN mkdir -p /var/teraflow/opticalcontroller +WORKDIR /var/teraflow/opticalcontroller +COPY src/opticalcontroller/requirements.in requirements.in +RUN pip-compile --quiet --output-file=requirements.txt requirements.in +RUN python3 -m pip install -r requirements.txt + +# Add component files into working directory +WORKDIR /var/teraflow +COPY src/context/__init__.py context/__init__.py +COPY src/context/client/. context/client/ +COPY src/opticalcontroller/. opticalcontroller/ + +# Start the service +WORKDIR /var/teraflow/opticalcontroller +ENTRYPOINT ["python", "OpticalController.py"] diff --git a/src/opticalcontroller/OpticalController.py b/src/opticalcontroller/OpticalController.py new file mode 100644 index 0000000000000000000000000000000000000000..c2805695a75933c73d4ad367176bee8b504d4460 --- /dev/null +++ b/src/opticalcontroller/OpticalController.py @@ -0,0 +1,245 @@ +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# +# 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. + +from flask import Flask +from flask import render_template +from flask_restplus import Resource, Api + +from tools import * +from variables import * +from RSA import RSA +import time +import logging + + +rsa = None +LOGGER = logging.getLogger(__name__) + +app = Flask(__name__) +api = Api(app, version='1.0', title='Optical controller API', + description='Rest API to configure OC Optical devices in TFS') +# app.config.from_object('config') +# appbuilder = AppBuilder(app, indexview=MyIndexView) +optical = api.namespace('OpticalTFS', description='TFS Optical APIs') + + +@app.route('/index') +def index(): + return render_template('index.html') + + +#@optical.route('/AddLightpath////') +@optical.route('/AddLightpath///') +@optical.response(200, 'Success') +@optical.response(404, 'Error, not found') +class AddLightpath(Resource): + @staticmethod + def put(src, dst, bitrate, bidir=1): + + LOGGER.info("INFO: New Lightpath request from {} to {} with rate {} ".format(src, dst, bitrate)) + t0 = time.time()*1000.0 + if debug: + rsa.g.printGraph() + + if rsa is not None: + flow_id = rsa.rsa_computation(src, dst, bitrate, bidir) + if rsa.db_flows[flow_id]["op-mode"] == 0: + return 'No path found', 404 + t1 = time.time()*1000.0 + elapsed = t1 - t0 + LOGGER.info("INFO: time elapsed = {} ms".format(elapsed)) + return rsa.db_flows[flow_id], 200 + else: + return "Error", 404 + + +#@optical.route('/AddFlexLightpath///') +@optical.route('/AddFlexLightpath///', + defaults={"bidir": 1, "band": None}) +@optical.route('/AddFlexLightpath////', + defaults={"band": None}) +@optical.route('/AddFlexLightpath/////',) +@optical.response(200, 'Success') +@optical.response(404, 'Error, not found') +class AddFlexLightpath(Resource): + @staticmethod + def put(src, dst, bitrate,bidir=1, band=None): + + print("INFO: New FlexLightpath request from {} to {} with rate {} ".format(src, dst, bitrate)) + LOGGER.info("INFO: New FlexLightpath request from {} to {} with rate {} ".format(src, dst, bitrate)) + t0 = time.time()*1000.0 + if debug: + rsa.g.printGraph() + + if rsa is not None: + flow_id, optical_band_id = rsa.rsa_fs_computation(src, dst, bitrate, bidir, band) + print (f"flow_id {flow_id} and optical_band_id {optical_band_id} ") + if flow_id is not None: + if rsa.db_flows[flow_id]["op-mode"] == 0: + return 'No path found', 404 + t1 = time.time() * 1000.0 + elapsed = t1 - t0 + print("INFO: time elapsed = {} ms".format(elapsed)) + + return rsa.db_flows[flow_id], 200 + else: + if len(rsa.optical_bands[optical_band_id]["flows"]) == 0: + return 'No path found', 404 + else: + t1 = time.time() * 1000.0 + elapsed = t1 - t0 + LOGGER.info("INFO: time elapsed = {} ms".format(elapsed)) + + return rsa.optical_bands[optical_band_id], 200 + else: + return "Error", 404 + +@optical.route('/DelFlexLightpath/////') +@optical.response(200, 'Success') +@optical.response(404, 'Error, not found') +class DelLightpath(Resource): + @staticmethod + def delete(flow_id, src, dst, bitrate, o_band_id): + if flow_id in rsa.db_flows.keys(): + flow = rsa.db_flows[flow_id] + bidir = flow["bidir"] + match1 = flow["src"] == src and flow["dst"] == dst and flow["bitrate"] == bitrate + if bidir: + match2 = flow["src"] == dst and flow["dst"] == src and flow["bitrate"] == bitrate + if match1 or match2: + ob_id = flow["parent_opt_band"] + rsa.del_flow(flow, ob_id) + rsa.db_flows[flow_id]["is_active"] = False + rsa.optical_bands[ob_id]["served_lightpaths"].remove(flow_id) + if rsa.optical_bands[ob_id]["reverse_optical_band_id"] != 0: + rev_ob_id = rsa.optical_bands[ob_id]["reverse_optical_band_id"] + rsa.optical_bands[rev_ob_id]["served_lightpaths"].remove(flow_id) + + if debug: + LOGGER.info(links_dict) + return "flow {} deleted".format(flow_id), 200 + else: + return "flow {} not matching".format(flow_id), 404 + else: + if match1: + ob_id = flow["parent_opt_band"] + rsa.del_flow(flow, ob_id) + rsa.db_flows[flow_id]["is_active"] = False + rsa.optical_bands[ob_id]["served_lightpaths"].remove(flow_id) + if debug: + LOGGER.info(links_dict) + return "flow {} deleted".format(flow_id), 200 + else: + return "flow {} not matching".format(flow_id), 404 + else: + return "flow id {} does not exist".format(flow_id), 404 + + + +@optical.route('/DelLightpath////') +@optical.response(200, 'Success') +@optical.response(404, 'Error, not found') +class DelLightpath(Resource): + @staticmethod + def delete(flow_id, src, dst, bitrate): + if flow_id in rsa.db_flows.keys(): + flow = rsa.db_flows[flow_id] + match1 = flow["src"] == src and flow["dst"] == dst and flow["bitrate"] == bitrate + match2 = flow["src"] == dst and flow["dst"] == src and flow["bitrate"] == bitrate + if match1 or match2: + rsa.del_flow(flow) + rsa.db_flows[flow_id]["is_active"] = False + if debug: + LOGGER.info(links_dict) + return "flow {} deleted".format(flow_id), 200 + else: + return "flow {} not matching".format(flow_id), 404 + else: + return "flow id {} does not exist".format(flow_id), 404 + + +@optical.route('/GetLightpaths') +@optical.response(200, 'Success') +@optical.response(404, 'Error, not found') +class GetFlows(Resource): + @staticmethod + def get(): + try: + if debug: + LOGGER.info(rsa.db_flows) + return rsa.db_flows, 200 + except: + return "Error", 404 + +@optical.route('/GetOpticalBands') +@optical.response(200, 'Success') +@optical.response(404, 'Error, not found') +class GetBands(Resource): + @staticmethod + def get(): + print("Getting ") + LOGGER.info("Getting") + try: + if debug: + LOGGER.info(rsa.optical_bands) + return rsa.optical_bands, 200 + except: + return "Error", 404 + + +@optical.route('/GetOpticalBand/') +@optical.response(200, 'Success') +@optical.response(404, 'Error, not found') +class GetBand(Resource): + @staticmethod + def get(ob_id): + for ob_idx in rsa.optical_bands.keys(): + if str(ob_idx) == str(ob_id): + if debug: + LOGGER.info(rsa.optical_bands[ob_id]) + return rsa.optical_bands[ob_idx], 200 + return {}, 404 + + +@optical.route('/GetLinks') +@optical.response(200, 'Success') +@optical.response(404, 'Error, not found') +class GetFlows(Resource): + @staticmethod + def get(): + global links_dict + try: + if debug: + LOGGER.info(links_dict) + return links_dict, 200 + except: + return "Error", 404 + + +if __name__ == '__main__': + + + # Start metrics server + + LOGGER.info('Starting...') + + + + nodes_dict, links_dict = readTopologyData(nodes_json, topology_json) + + #topologies, links = getTopology() + #print("topologies{} and devices {}".format(topologies,links)) + rsa = RSA(nodes_dict, links_dict) + + app.run(host='0.0.0.0', port=10060, debug=True) diff --git a/src/opticalcontroller/README.md b/src/opticalcontroller/README.md new file mode 100644 index 0000000000000000000000000000000000000000..5fd94c59e51cbd78dd76a7db0f24aaaec4ebd9db --- /dev/null +++ b/src/opticalcontroller/README.md @@ -0,0 +1,17 @@ +# optical-controller +This a framework to implement the optical controller for the RMSA algorithm. +#create a venv +python -m venv venv + +in linux +source venv/Scripts/activate + +in windows +venv\Scripts\activate + +pip install -r requirements_opt.txt + +python OpticalController.py +![Reference Architecture](images/topo.png) + + diff --git a/src/opticalcontroller/RSA.py b/src/opticalcontroller/RSA.py new file mode 100644 index 0000000000000000000000000000000000000000..9b12b1ac8d9302c2bb622b2d4b81924b5453036c --- /dev/null +++ b/src/opticalcontroller/RSA.py @@ -0,0 +1,931 @@ +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# +# 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. + +import dijsktra +from tools import * +from variables import * + + +class RSA(): + def __init__(self, nodes, links): + self.nodes_dict = nodes + self.links_dict = links + self.g = None + + self.flow_id = 0 + self.opt_band_id = 0 + self.db_flows = {} + self.initGraph() + self.c_slot_number = 0 + self.l_slot_number = 0 + self.s_slot_number = 0 + self.optical_bands = {} + + def init_link_slots(self, testing): + if not testing: + for l in self.links_dict["links"]: + for fib in l["optical_link"]["details"]["fibers"]: + #fib = self.links_dict[l]["fibers"][f] + if len(fib["c_slots"]) > 0: + fib["c_slots"] = list(range(0, Nc)) + if len(fib["l_slots"]) > 0: + fib["l_slots"] = list(range(0, Nl)) + if len(fib["s_slots"]) > 0: + fib["s_slots"] = list(range(0, Ns)) + if debug: + print(fib) + for l1 in self.links_dict["links"]: + + for fib1 in l1["optical_link"]["details"]["fibers"]: + #fib1 = self.links_dict[l1]["details"]["fibers"][f1] + + self.c_slot_number = len(fib1["c_slots"]) + self.l_slot_number = len(fib1["l_slots"]) + self.s_slot_number = len(fib1["s_slots"]) + + break + break + return "{},{},{}".format(self.c_slot_number, self.l_slot_number, self.s_slot_number) + + def initGraph(self): + self.g = dijsktra.Graph() + for n in self.nodes_dict: + self.g.add_vertex(n) + for l in self.links_dict["links"]: + if debug: + print(l) + [s, d] = l["optical_link"]["name"].split('-') + ps = l["optical_link"]["details"]["source"] + pd = l["optical_link"]["details"]["target"] + self.g.add_edge(s, d, ps, pd, 1) + + print("INFO: Graph initiated.") + if debug: + self.g.printGraph() + + def compute_path(self, src, dst): + path = dijsktra.shortest_path(self.g, self.g.get_vertex(src), self.g.get_vertex(dst)) + print("INFO: Path from {} to {} with distance: {}".format(src, dst, self.g.get_vertex(dst).get_distance())) + if debug: + print(path) + links = [] + for i in range(0, len(path) - 1): + s = path[i] + if debug: + print(s) + if i < len(path) - 1: + d = path[i + 1] + link_id = "{}-{}".format(s, d) + if debug: + #print(link_id, self.links_dict[link_id]) + print(link_id, self.get_link_by_name(link_id)) + + links.append(link_id) + self.g.reset_graph() + return links, path + + def get_slots(self, links, slots, optical_band_id = None): + + if isinstance(slots, int): + val_c = slots + val_s = slots + val_l = slots + else: + val_c = self.c_slot_number + val_l = self.l_slot_number + val_s = self.s_slot_number + + c_sts = [] + l_sts = [] + s_sts = [] + c_slots = {} + l_slots = {} + s_slots = {} + add = "" + drop = "" + src_1, dst_1 = links[0].split('-') + src_2, dst_2 = links[-1].split('-') + if self.nodes_dict[src_1]["type"] == "OC-TP": + add = links[0] + if self.nodes_dict[dst_2]["type"] == "OC-TP": + drop = links[-1] + + for l in links: + c_slots[l] = [] + l_slots[l] = [] + s_slots[l] = [] + found = 0 + for link in self.links_dict["links"]: + if link["optical_link"]["name"] == l: + #for f in self.links_dict[l]['fibers'].keys(): + for fib in link["optical_link"]["details"]["fibers"]: + if l == add: + if 'used' in fib: + if fib["used"]: + #if debug: + print("WARNING!!!: link {}, fiber {} is already in use".format(l, fib["ID"])) + continue + if l == drop: + if 'used' in fib: + if fib["used"]: + #if debug: + print("WARNING!!!: link {}, fiber {} is already in use".format(l, fib["ID"])) + continue + if len(fib["c_slots"]) > 0: + c_slots[l] = combine(c_slots[l], consecutives(fib["c_slots"], val_c)) + if len(fib["l_slots"]) > 0: + l_slots[l] = combine(l_slots[l], consecutives(fib["l_slots"], val_l)) + if len(fib["s_slots"]) > 0: + s_slots[l] = combine(s_slots[l], consecutives(fib["s_slots"], val_s)) + if debug: + print(l, c_slots[l]) + found = 1 + if found == 0: + return [], [], [] + + keys = list(c_slots.keys()) + if debug: + print(len(keys)) + if debug: + print(keys[0]) + # intersection among the slots over all links + if len(keys) == 1: + c_sts = c_slots[keys[0]] + l_sts = l_slots[keys[0]] + s_sts = s_slots[keys[0]] + else: + for i in range(1, len(keys)): + if debug: + print(keys[i]) + # set a for the intersection + if i == 1: + a_c = c_slots[keys[i - 1]] + a_l = l_slots[keys[i - 1]] + a_s = s_slots[keys[i - 1]] + else: + a_c = c_sts + a_l = l_sts + a_s = s_sts + # set b for the intersection + b_c = c_slots[keys[i]] + b_l = l_slots[keys[i]] + b_s = s_slots[keys[i]] + + c_sts = common_slots(a_c, b_c) + l_sts = common_slots(a_l, b_l) + s_sts = common_slots(a_s, b_s) + if optical_band_id is not None: + if "c_slots" in self.optical_bands[optical_band_id].keys(): + if len(self.optical_bands[optical_band_id]["c_slots"]) > 0: + a_c = c_sts + b_c = self.optical_bands[optical_band_id]["c_slots"] + c_sts = common_slots(a_c, b_c) + else: + c_sts = [] + else: + c_sts = [] + if "l_slots" in self.optical_bands[optical_band_id].keys(): + if len(self.optical_bands[optical_band_id]["l_slots"]) > 0: + a_l = l_sts + b_l = self.optical_bands[optical_band_id]["l_slots"] + l_sts = common_slots(a_l, b_l) + else: + l_sts = [] + else: + l_sts = [] + if "s_slots" in self.optical_bands[optical_band_id].keys(): + if len(self.optical_bands[optical_band_id]["s_slots"]) > 0: + a_s = s_sts + b_s = self.optical_bands[optical_band_id]["s_slots"] + s_sts = common_slots(a_s, b_s) + else: + s_sts = [] + else: + s_sts = [] + + return c_sts, l_sts, s_sts + + def update_link(self, fib, slots, band): + for i in slots: + fib[band].remove(i) + if 'used' in fib: + fib['used'] = True + + def update_optical_band(self, optical_band_id, slots, band): + for i in slots: + self.optical_bands[optical_band_id][band].remove(i) + + def restore_link(self, fib, slots, band): + for i in slots: + fib[band].append(int(i)) + if 'used' in fib: + fib['used'] = False + fib[band].sort() + + def restore_optical_band(self, optical_band_id, slots, band): + for i in slots: + self.optical_bands[optical_band_id][band].append(int(i)) + self.optical_bands[optical_band_id][band].sort() + + def del_flow(self, flow, o_b_id = None): + flows = flow["flows"] + band = flow["band_type"] + slots = flow["slots"] + fiber_f = flow["fiber_forward"] + fiber_b = flow["fiber_backward"] + op = flow["op-mode"] + n_slots = flow["n_slots"] + path = flow["path"] + links = flow["links"] + bidir = flow["bidir"] + + for l in fiber_f.keys(): + if debug: + print(l) + print(fiber_f[l]) + #link = self.links_dict[l] + #f = fiber_f[l] + #fib = link['fibers'][f] + fib = self.get_fiber_details(l, fiber_f[l]) + if not list_in_list(slots, fib[band]): + self.restore_link(fib, slots, band) + if debug: + print(fib[band]) + if o_b_id is not None: + self.restore_optical_band(o_b_id, slots, band) + if bidir: + for rl in fiber_b.keys(): + if debug: + print(rl) + print(fiber_b[rl]) + #rlink = self.links_dict[rl] + #rf = fiber_b[rl] + #rfib = rlink['fibers'][rf] + rfib = self.get_fiber_details(rl, fiber_b[rl]) + if not list_in_list(slots, rfib[band]): + self.restore_link(rfib, slots, band) + if debug: + print(rfib[band]) + #changed according to TFS development + #if o_b_id is not None: + # rev_o_band_id = self.optical_bands[o_b_id]["reverse_optical_band_id"] + # self.restore_optical_band(rev_o_band_id, slots, band) + return True + + def get_fibers_forward(self, links, slots, band): + fiber_list = {} + add = links[0] + drop = links[-1] + print(links) + ''' + for link in self.links_dict["links"]: + if link["optical_link"]["name"] == l: + # for f in self.links_dict[l]['fibers'].keys(): + for fib in link["optical_link"]["details"]["fibers"]: + + ''' + for l in links: + for link in self.links_dict["links"]: + if link["optical_link"]["name"] == l: + for fib in link["optical_link"]["details"]["fibers"]: + #for f in self.links_dict[l]['fibers'].keys(): + #for fib in l["optical_link"]["details"]["fibers"]: + #fib = self.links_dict[l]['fibers'][f] + if l == add: + if 'used' in fib: + if fib["used"]: + if debug: + print("link {}, fiber {} is already in use".format(l, fib["ID"])) + continue + if l == drop: + if 'used' in fib: + if fib["used"]: + if debug: + print("link {}, fiber {} is already in use".format(l, fib["ID"])) + continue + if list_in_list(slots, fib[band]): + fiber_list[l] = fib["ID"] + self.update_link(fib, slots, band) + break + print("INFO: Path forward computation completed") + return fiber_list + + def get_link_by_name (self, key): + result = None + for link in self.links_dict["links"]: + if link["optical_link"]["name"] == key: + if debug: + print(link) + result = link + break + return result + + def get_fiber_details(self, link_key, fiber_id): + for link in self.links_dict["links"]: + if link["optical_link"]["name"] == link_key: + if debug: + print(link) + for fib in link["optical_link"]["details"]["fibers"]: + if fib["ID"] == fiber_id: + return fib + return None + + + def get_fibers_backward(self, links, fibers, slots, band): + fiber_list = {} + #r_drop = reverse_link(links[0]) + #r_add = reverse_link(links[-1]) + for l in fibers.keys(): + fib = self.get_fiber_details(l, fibers[l]) + ''' + link = self.get_link_by_name(l) + #port = self.links_dict[l]["fibers"][fibers[l]]["src_port"] + for fib in link["optical_link"]["details"]["fibers"]: + if fib["ID"] == fibers[l]: + ''' + port = fib["src_port"] + r_l = reverse_link(l) + r_link = self.get_link_by_name(r_l) + #for f in r_link["fibers"].keys(): + for r_fib in r_link["optical_link"]["details"]["fibers"]: + if r_fib["remote_peer_port"] == port: + if list_in_list(slots, r_fib[band]): + fiber_list[r_l] = r_fib["ID"] + self.update_link(r_fib, slots, band) + print("INFO: Path backward computation completed") + return fiber_list + + def select_slots_and_ports(self, links, n_slots, c, l, s, bidir): + if debug: + print(self.links_dict) + band, slots = slot_selection(c, l, s, n_slots, self.c_slot_number, self.l_slot_number, self.s_slot_number) + if band is None: + print("No slots available in the three bands") + return None, None, None + if debug: + print(band, slots) + fibers_f = self.get_fibers_forward(links, slots, band) + + fibers_b = [] + if bidir: + fibers_b = self.get_fibers_backward(links, fibers_f, slots, band) + if debug: + print("forward") + print(fibers_f) + print("backward") + print(fibers_b) + add = links[0] + drop = links[-1] + inport = "0" + outport = "0" + r_inport = "0" + r_outport = "0" + t_flows = {} + #if len(links) == 1: + + for lx in fibers_f: + if lx == add: + inport = "0" + r_outport = "0" + if lx == drop: + outport = "0" + r_inport = "0" + f = fibers_f[lx] + src, dst = lx.split("-") + fibx = self.get_fiber_details(lx, f) + #outport = self.links_dict[lx]['fibers'][f]["src_port"] + outport = fibx["src_port"] + + t_flows[src] = {} + t_flows[src]["f"] = {} + t_flows[src]["b"] = {} + t_flows[src]["f"] = {"in": inport, "out": outport} + + if bidir: + #r_inport = self.links_dict[lx]['fibers'][f]["local_peer_port"] + r_inport = fibx["local_peer_port"] + t_flows[src]["b"] = {"in": r_inport, "out": r_outport} + + #inport = self.links_dict[lx]['fibers'][f]["dst_port"] + inport = fibx["dst_port"] + if bidir: + #r_outport = self.links_dict[lx]['fibers'][f]["remote_peer_port"] + r_outport = fibx["remote_peer_port"] + t_flows[dst] = {} + t_flows[dst]["f"] = {} + t_flows[dst]["b"] = {} + t_flows[dst]["f"] = {"in": inport, "out": "0"} + if bidir: + t_flows[dst]["b"] = {"in": "0", "out": r_outport} + + if debug: + print(self.links_dict) + + if debug: + print(t_flows) + print("INFO: Flow matrix computed") + + return t_flows, band, slots, fibers_f, fibers_b + + def select_slots_and_ports_fs(self, links, n_slots, c, l, s, bidir, o_band_id): + if debug: + print(self.links_dict) + band, slots = slot_selection(c, l, s, n_slots, self.c_slot_number, self.l_slot_number, self.s_slot_number) + if band is None: + print("No slots available in the three bands") + return None, None, None, None, None + if debug: + print(band, slots) + fibers_f = self.get_fibers_forward(links, slots, band) + self.update_optical_band(o_band_id, slots, band) + fibers_b = [] + if bidir: + fibers_b = self.get_fibers_backward(links, fibers_f, slots, band) + ''' + + rev_o_band_id = self.optical_bands[o_band_id]["reverse_optical_band_id"] + self.update_optical_band(rev_o_band_id, slots, band) + ''' + if debug: + print("forward") + print(fibers_f) + if bidir: + print("backward") + print(fibers_b) + add = links[0] + drop = links[-1] + port_0 = "0" + + t_flows = {} + + #flows_add_side + f = fibers_f[add] + src, dst = add.split("-") + fibx = self.get_fiber_details(add, f) + #outport = self.links_dict[add]['fibers'][f]["src_port"] + outport = fibx["src_port"] + #T1 rules + t_flows[src] = {} + t_flows[src]["f"] = {} + t_flows[src]["b"] = {} + t_flows[src]["f"] = {"in": port_0, "out": outport} + if bidir: + #r_inport = self.links_dict[add]['fibers'][f]["local_peer_port"] + r_inport = fibx["local_peer_port"] + t_flows[src]["b"] = {"in": r_inport, "out": port_0} + + #R1 rules + t_flows[dst] = {} + t_flows[dst]["f"] = {} + t_flows[dst]["b"] = {} + #inport = self.links_dict[add]['fibers'][f]["dst_port"] + inport = fibx["dst_port"] + opt_band_src_port = self.optical_bands[o_band_id]["src_port"] + t_flows[dst]["f"] = {"in": inport, "out": opt_band_src_port} + #to modify to peer ports + if bidir: + #r_inport = self.links_dict[add]['fibers'][f]["local_peer_port"] + r_inport = fibx["local_peer_port"] + t_flows[src]["b"] = {"in": r_inport, "out": port_0} + if bidir: + rev_opt_band_dst_port = self.optical_bands[o_band_id]["rev_dst_port"] + #r_outport = self.links_dict[add]['fibers'][f]["remote_peer_port"] + r_outport = fibx["remote_peer_port"] + t_flows[dst]["b"] = {"in": rev_opt_band_dst_port, "out": r_outport} + + #flows_drop_side + # R2 rules + f = fibers_f[drop] + src, dst = drop.split("-") + fiby = self.get_fiber_details(drop, f) + #outport = self.links_dict[drop]['fibers'][f]["src_port"] + outport = fiby["src_port"] + + t_flows[src] = {} + t_flows[src]["f"] = {} + t_flows[src]["b"] = {} + opt_band_dst_port = self.optical_bands[o_band_id]["dst_port"] + t_flows[src]["f"] = {"in": opt_band_dst_port, "out": outport} + if bidir: + rev_opt_band_src_port = self.optical_bands[o_band_id]["rev_src_port"] + #r_inport = self.links_dict[drop]['fibers'][f]["local_peer_port"] + r_inport = fiby["local_peer_port"] + t_flows[src]["b"] = {"in": r_inport, "out": rev_opt_band_src_port} + t_flows[dst] = {} + t_flows[dst]["f"] = {} + t_flows[dst]["b"] = {} + #inport = self.links_dict[drop]['fibers'][f]["dst_port"] + inport = fiby["dst_port"] + t_flows[dst]["f"] = {"in": inport, "out": port_0} + if bidir: + #r_inport = self.links_dict[drop]['fibers'][f]["remote_peer_port"] + r_inport = fiby["remote_peer_port"] + t_flows[dst]["b"] = {"in": port_0, "out": r_inport} + + if debug: + print(self.links_dict) + + if debug: + print(t_flows) + print("INFO: Flow matrix computed for Flex Lightpath") + + return t_flows, band, slots, fibers_f, fibers_b + + def rsa_computation(self, src, dst, rate, bidir): + self.flow_id += 1 + self.db_flows[self.flow_id] = {} + self.db_flows[self.flow_id]["flow_id"] = self.flow_id + self.db_flows[self.flow_id]["src"] = src + self.db_flows[self.flow_id]["dst"] = dst + self.db_flows[self.flow_id]["bitrate"] = rate + self.db_flows[self.flow_id]["bidir"] = bidir + + links, path = self.compute_path(src, dst) + + if len(path) < 1: + self.null_values(self.flow_id) + return self.flow_id + op, num_slots = map_rate_to_slot(rate) + c_slots, l_slots, s_slots = self.get_slots(links, num_slots) + if debug: + print(c_slots) + print(l_slots) + print(s_slots) + if len(c_slots) > 0 or len(l_slots) > 0 or len(s_slots) > 0: + flow_list, band_range, slots, fiber_f, fiber_b = self.select_slots_and_ports(links, num_slots, c_slots, + l_slots, s_slots, bidir) + f0, band = freqency_converter(band_range, slots) + if debug: + print(f0, band) + print("INFO: RSA completed for normal wavelenght connection") + if flow_list is None: + self.null_values(self.flow_id) + return self.flow_id + slots_i = [] + for i in slots: + slots_i.append(int(i)) + # return links, path, flow_list, band_range, slots, fiber_f, fiber_b, op, num_slots, f0, band + # links, path, flows, bx, slots, fiber_f, fiber_b, op, n_slots, f0, band + self.db_flows[self.flow_id]["flows"] = flow_list + self.db_flows[self.flow_id]["band_type"] = band_range + self.db_flows[self.flow_id]["slots"] = slots_i + self.db_flows[self.flow_id]["fiber_forward"] = fiber_f + self.db_flows[self.flow_id]["fiber_backward"] = fiber_b + self.db_flows[self.flow_id]["op-mode"] = op + self.db_flows[self.flow_id]["n_slots"] = num_slots + self.db_flows[self.flow_id]["links"] = links + self.db_flows[self.flow_id]["path"] = path + self.db_flows[self.flow_id]["band"] = band + self.db_flows[self.flow_id]["freq"] = f0 + self.db_flows[self.flow_id]["is_active"] = True + return self.flow_id + + def null_values(self, flow_id): + self.db_flows[flow_id]["flows"] = {} + self.db_flows[flow_id]["band_type"] = "" + self.db_flows[flow_id]["slots"] = [] + self.db_flows[flow_id]["fiber_forward"] = [] + self.db_flows[flow_id]["fiber_backward"] = [] + self.db_flows[flow_id]["op-mode"] = 0 + self.db_flows[flow_id]["n_slots"] = 0 + self.db_flows[flow_id]["links"] = {} + self.db_flows[flow_id]["path"] = [] + self.db_flows[flow_id]["band"] = 0 + self.db_flows[flow_id]["freq"] = 0 + self.db_flows[flow_id]["is_active"] = False + + def null_values_ob(self, ob_id): + self.optical_bands[ob_id]["flows"] = {} + self.optical_bands[ob_id]["band_type"] = "" + #self.optical_bands[ob_id]["slots"] = [] + self.optical_bands[ob_id]["fiber_forward"] = [] + self.optical_bands[ob_id]["n_slots"] = 0 + self.optical_bands[ob_id]["links"] = {} + self.optical_bands[ob_id]["path"] = [] + self.optical_bands[ob_id]["band"] = 0 + self.optical_bands[ob_id]["freq"] = 0 + self.optical_bands[ob_id]["is_active"] = False + self.optical_bands[ob_id]["c_slots"] = [] + self.optical_bands[ob_id]["l_slots"] = [] + self.optical_bands[ob_id]["s_slots"] = [] + self.optical_bands[ob_id]["served_lightpaths"] = [] + self.optical_bands[ob_id]["reverse_optical_band_id"] = 0 + self.db_flows[self.flow_id]["parent_opt_band"] = 0 + self.db_flows[self.flow_id]["new_optical_band"] = 0 + + def create_optical_band(self, links, path, bidir, num_slots): + print("INFO: Creating optical-band of {} slots".format(num_slots)) + self.opt_band_id += 1 + forw_opt_band_id = self.opt_band_id + self.optical_bands[forw_opt_band_id] = {} + self.optical_bands[forw_opt_band_id]["optical_band_id"] = forw_opt_band_id + self.optical_bands[forw_opt_band_id]["bidir"] = bidir + ''' + back_opt_band_id = 0 + if bidir: + self.opt_band_id += 1 + back_opt_band_id = self.opt_band_id + self.optical_bands[back_opt_band_id] = {} + self.optical_bands[back_opt_band_id]["optical_band_id"] = back_opt_band_id + self.optical_bands[back_opt_band_id]["bidir"] = bidir + self.optical_bands[back_opt_band_id]["reverse_optical_band_id"] = forw_opt_band_id + self.optical_bands[forw_opt_band_id]["reverse_optical_band_id"] = back_opt_band_id + else: + self.optical_bands[forw_opt_band_id]["reverse_optical_band_id"] = 0 + ''' + op = 0 + temp_links = [] + #num_slots = "all" + if self.nodes_dict[path[0]]["type"] == "OC-TP": + add_link = links[0] + temp_links.append(add_link) + links.remove(add_link) + path.remove(path[0]) + self.optical_bands[forw_opt_band_id]["src"] = path[0] + ''' + if bidir: + self.optical_bands[back_opt_band_id]["dst"] = path[0] + ''' + if self.nodes_dict[path[-1]]["type"] == "OC-TP": + drop_link = links[-1] + temp_links.append(drop_link) + links.remove(drop_link) + path.remove(path[-1]) + self.optical_bands[forw_opt_band_id]["dst"] = path[-1] + ''' + if bidir: + self.optical_bands[back_opt_band_id]["src"] = path[-1] + ''' + + c_slots, l_slots, s_slots = self.get_slots(links, num_slots) + if debug: + print(c_slots) + print(l_slots) + print(s_slots) + if len(c_slots) > 0 or len(l_slots) > 0 or len(s_slots) > 0: + flow_list, band_range, slots, fiber_f, fiber_b = self.select_slots_and_ports(links, num_slots, c_slots, l_slots, s_slots, bidir) + f0, band = freqency_converter(band_range, slots) + print(flow_list, band_range, slots, fiber_f, fiber_b) + ''' + + flow_list_b = {} + rev_path = path.copy() + rev_path.reverse() + rev_links = reverse_links(links) + if bidir: + for dev_x in flow_list.keys(): + flow_list_b[dev_x] = {} + flow_list_b[dev_x]["f"] = flow_list[dev_x]["b"] + del flow_list[dev_x]["b"] + rev_path = path.copy() + ''' + if debug: + print(f0, band) + print("INFO: RSA completed for optical band") + if flow_list is None: + self.null_values(self.flow_id) + return self.flow_id, [] + slots_i = [] + for i in slots: + slots_i.append(int(i)) + + # return links, path, flow_list, band_range, slots, fiber_f, fiber_b, op, num_slots, f0, band + # links, path, flows, bx, slots, fiber_f, fiber_b, op, n_slots, f0, band + if len(flow_list) > 0: + src_port = flow_list[path[0]]['f']['out'] + dst_port = flow_list[path[-1]]['f']['in'] + print(flow_list) + if len(fiber_f.keys()) == 1: + link_x = list(fiber_f.keys())[0] + #fib_x = fiber_f[link_x] + #rev_dst_port = self.links_dict[link_x]['fibers'][fib_x]["local_peer_port"] + #rev_src_port = self.links_dict[link_x]['fibers'][fib_x]["remote_peer_port"] + fibx = self.get_fiber_details(link_x, fiber_f[link_x]) + rev_dst_port = fibx["local_peer_port"] + rev_src_port = fibx["remote_peer_port"] + else: + link_in = list(fiber_f.keys())[0] + link_out = list(fiber_f.keys())[-1] + fib_inx = self.get_fiber_details(link_in, fiber_f[link_in]) + fib_outx = self.get_fiber_details(link_out, fiber_f[link_out]) + rev_dst_port = fib_inx["local_peer_port"] + rev_src_port = fib_outx["remote_peer_port"] + + #fib_in = fiber_f[link_in] + #fib_out = fiber_f[link_out] + #rev_dst_port = self.links_dict[link_in]['fibers'][fib_in]["local_peer_port"] + #rev_src_port = self.links_dict[link_out]['fibers'][fib_out]["remote_peer_port"] + + self.optical_bands[forw_opt_band_id]["flows"] = flow_list + self.optical_bands[forw_opt_band_id]["band_type"] = band_range + self.optical_bands[forw_opt_band_id]["fiber_forward"] = fiber_f + self.optical_bands[forw_opt_band_id]["fiber_backward"] = fiber_b + self.optical_bands[forw_opt_band_id]["op-mode"] = op + self.optical_bands[forw_opt_band_id]["n_slots"] = num_slots + self.optical_bands[forw_opt_band_id]["links"] = links + self.optical_bands[forw_opt_band_id]["path"] = path + self.optical_bands[forw_opt_band_id]["band"] = band + self.optical_bands[forw_opt_band_id]["freq"] = f0 + self.optical_bands[forw_opt_band_id]["is_active"] = True + self.optical_bands[forw_opt_band_id]["src_port"] = src_port + self.optical_bands[forw_opt_band_id]["dst_port"] = dst_port + self.optical_bands[forw_opt_band_id]["rev_dst_port"] = rev_dst_port + self.optical_bands[forw_opt_band_id]["rev_src_port"] = rev_src_port + self.optical_bands[forw_opt_band_id][band_range] = slots_i + self.optical_bands[forw_opt_band_id]["served_lightpaths"] = [] + ''' + if bidir: + self.optical_bands[back_opt_band_id]["flows"] = flow_list_b + self.optical_bands[back_opt_band_id]["band_type"] = band_range + self.optical_bands[back_opt_band_id]["fiber_forward"] = fiber_b + # self.optical_bands[back_opt_band_id]["fiber_backward"] = fiber_b + self.optical_bands[back_opt_band_id]["op-mode"] = op + self.optical_bands[back_opt_band_id]["n_slots"] = num_slots + self.optical_bands[back_opt_band_id]["links"] = rev_links + self.optical_bands[back_opt_band_id]["path"] = rev_path + self.optical_bands[back_opt_band_id]["band"] = band + self.optical_bands[back_opt_band_id]["freq"] = f0 + self.optical_bands[back_opt_band_id]["is_active"] = True + self.optical_bands[back_opt_band_id]["src_port"] = rev_src_port + self.optical_bands[back_opt_band_id]["dst_port"] = rev_dst_port + self.optical_bands[back_opt_band_id][band_range] = slots_i.copy() + self.optical_bands[back_opt_band_id]["served_lightpaths"] = [] + ''' + + return forw_opt_band_id, temp_links + + def get_optical_bands(self, r_src, r_dst): + result = [] + for ob_id in self.optical_bands: + ob = self.optical_bands[ob_id] + if debug: + print(r_src, ob["src"]) + print(r_dst, ob["dst"]) + print(ob) + if ob["src"] == r_src and ob["dst"] == r_dst: + result.append(ob_id) + return result + + def rsa_fs_computation(self, src, dst, rate, bidir, band): + num_slots_ob = "full_band" + if band is not None: + num_slots_ob = map_band_to_slot(band) + print(band, num_slots_ob) + if self.nodes_dict[src]["type"] == "OC-ROADM" and self.nodes_dict[dst]["type"] == "OC-ROADM": + print("INFO: ROADM to ROADM connection") + links, path = self.compute_path(src, dst) + if len(path) < 1: + self.null_values_ob(self.opt_band_id) + return self.flow_id, [] + optical_band_id, temp_links = self.create_optical_band(links, path, bidir, num_slots_ob) + return None, optical_band_id + self.flow_id += 1 + self.db_flows[self.flow_id] = {} + self.db_flows[self.flow_id]["flow_id"] = self.flow_id + self.db_flows[self.flow_id]["src"] = src + self.db_flows[self.flow_id]["dst"] = dst + self.db_flows[self.flow_id]["bitrate"] = rate + self.db_flows[self.flow_id]["bidir"] = bidir + print("INFO: TP to TP connection") + if band is None: + temp_links2 = [] + temp_path = [] + src_links = get_links_from_node(self.links_dict, src) + dst_links = get_links_to_node(self.links_dict, dst) + if len(src_links.keys()) >= 1: + temp_links2.append(list(src_links.keys())[0]) + if len(dst_links.keys()) >= 1: + temp_links2.append(list(dst_links.keys())[0]) + + if len(temp_links2) == 2: + [t_src, roadm_src] = temp_links2[0].split('-') + [roadm_dst, t_dst] = temp_links2[1].split('-') + temp_path.append(t_src) + temp_path.append(roadm_src) + temp_path.append(roadm_dst) + temp_path.append(t_dst) + existing_ob = self.get_optical_bands(roadm_src, roadm_dst) + + + if len(existing_ob) > 0: + print("INFO: Evaluating existing OB {}".format(existing_ob)) + #first checking in existing OB + ob_found = 0 + for ob_id in existing_ob: + op, num_slots = map_rate_to_slot(rate) + if debug: + print(temp_links2) + c_slots, l_slots, s_slots = self.get_slots(temp_links2, num_slots, ob_id) + if debug: + print(c_slots) + print(l_slots) + print(s_slots) + if len(c_slots) >= num_slots or len(l_slots) >= num_slots or len(s_slots) >= num_slots: + flow_list, band_range, slots, fiber_f, fiber_b = self.select_slots_and_ports_fs(temp_links2, num_slots, + c_slots, + l_slots, s_slots, bidir, + ob_id) + f0, band = freqency_converter(band_range, slots) + if debug: + print(f0, band) + print("INFO: RSA completed for Flex Lightpath with OB already in place") + if flow_list is None: + self.null_values(self.flow_id) + continue + slots_i = [] + for i in slots: + slots_i.append(int(i)) + # return links, path, flow_list, band_range, slots, fiber_f, fiber_b, op, num_slots, f0, band + # links, path, flows, bx, slots, fiber_f, fiber_b, op, n_slots, f0, band + self.db_flows[self.flow_id]["flows"] = flow_list + self.db_flows[self.flow_id]["band_type"] = band_range + self.db_flows[self.flow_id]["slots"] = slots_i + self.db_flows[self.flow_id]["fiber_forward"] = fiber_f + self.db_flows[self.flow_id]["fiber_backward"] = fiber_b + self.db_flows[self.flow_id]["op-mode"] = op + self.db_flows[self.flow_id]["n_slots"] = num_slots + self.db_flows[self.flow_id]["links"] = temp_links2 + self.db_flows[self.flow_id]["path"] = temp_path + self.db_flows[self.flow_id]["band"] = band + self.db_flows[self.flow_id]["freq"] = f0 + self.db_flows[self.flow_id]["is_active"] = True + self.db_flows[self.flow_id]["parent_opt_band"] = ob_id + self.db_flows[self.flow_id]["new_optical_band"] = 0 + self.optical_bands[ob_id]["served_lightpaths"].append(self.flow_id) + ''' + if bidir: + rev_ob_id = self.optical_bands[ob_id]["reverse_optical_band_id"] + self.optical_bands[rev_ob_id]["served_lightpaths"].append(self.flow_id) + ''' + return self.flow_id, ob_id + else: + print("not enough slots") + if band is None: + print("INFO: Not existing optical-band meeting the requirements") + else: + print("INFO: optical-band width specified") + #if no OB I create a new one + links, path = self.compute_path(src, dst) + optical_band_id, temp_links = self.create_optical_band(links, path, bidir, num_slots_ob) + op, num_slots = map_rate_to_slot(rate) + # self.flow_id += 1 + # self.db_flows[self.flow_id] = {} + # self.db_flows[self.flow_id]["flow_id"] = self.flow_id + # self.db_flows[self.flow_id]["src"] = src + # self.db_flows[self.flow_id]["dst"] = dst + # self.db_flows[self.flow_id]["bitrate"] = rate + # self.db_flows[self.flow_id]["bidir"] = bidir + + if debug: + print(temp_links) + c_slots, l_slots, s_slots = self.get_slots(temp_links, num_slots, optical_band_id) + if debug: + print(c_slots) + print(l_slots) + print(s_slots) + if len(c_slots) > 0 or len(l_slots) > 0 or len(s_slots) > 0: + flow_list, band_range, slots, fiber_f, fiber_b = self.select_slots_and_ports_fs(temp_links, num_slots, c_slots, + l_slots, s_slots, bidir, optical_band_id) + f0, band = freqency_converter(band_range, slots) + if debug: + print(f0, band) + print("INFO: RSA completed for FLex Lightpath with new OB") + if flow_list is None: + self.null_values(self.flow_id) + return self.flow_id, optical_band_id + slots_i = [] + for i in slots: + slots_i.append(int(i)) + + self.db_flows[self.flow_id]["flows"] = flow_list + self.db_flows[self.flow_id]["band_type"] = band_range + self.db_flows[self.flow_id]["slots"] = slots_i + self.db_flows[self.flow_id]["fiber_forward"] = fiber_f + self.db_flows[self.flow_id]["fiber_backward"] = fiber_b + self.db_flows[self.flow_id]["op-mode"] = op + self.db_flows[self.flow_id]["n_slots"] = num_slots + self.db_flows[self.flow_id]["links"] = temp_links + self.db_flows[self.flow_id]["path"] = path + self.db_flows[self.flow_id]["band"] = band + self.db_flows[self.flow_id]["freq"] = f0 + self.db_flows[self.flow_id]["is_active"] = True + self.db_flows[self.flow_id]["parent_opt_band"] = optical_band_id + self.db_flows[self.flow_id]["new_optical_band"] = 1 + self.optical_bands[optical_band_id]["served_lightpaths"].append(self.flow_id) + ''' + if bidir: + rev_ob_id = self.optical_bands[optical_band_id]["reverse_optical_band_id"] + self.optical_bands[rev_ob_id]["served_lightpaths"].append(self.flow_id) + ''' + return self.flow_id, optical_band_id diff --git a/src/opticalcontroller/__init__.py b/src/opticalcontroller/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..38d04994fb0fa1951fb465bc127eb72659dc2eaf --- /dev/null +++ b/src/opticalcontroller/__init__.py @@ -0,0 +1,13 @@ +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# +# 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. diff --git a/src/opticalcontroller/dijsktra.py b/src/opticalcontroller/dijsktra.py new file mode 100644 index 0000000000000000000000000000000000000000..a86d1d93dcbc30b9e4e3b95a34a0922439871bf6 --- /dev/null +++ b/src/opticalcontroller/dijsktra.py @@ -0,0 +1,240 @@ +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# +# 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. + +# TODO: migrate to NetworkX: +# https://networkx.org/documentation/stable/index.html +# https://networkx.org/documentation/stable/reference/algorithms/shortest_paths.html + +import sys + +class Vertex: + def __init__(self, node): + self.id = node + self.adjacent = {} + # Set distance to infinity for all nodes + self.distance = float("inf") + # Mark all nodes unvisited + self.visited = False + # Predecessor + self.previous = None + + # heapq compara gli item nella coda usando <= per vedere ci sono duplciati: + # se ho una coda di tuple, + # compara il primo elemento della prima tupla nella coda con il primo elemento della seconda tupla nella coda + # se sono diversi si ferma, se sono uguali continua + # la tupla nel caso in esame è: (v.get_distance(),v) + # se due nodi hanno stessa distanza, heapq procede a comparare v: Vertex(). + # Va quindi definita una politica per confrontare i Vertex + def __lt__(self, other): + if self.id < other.id: + return True + else: + return False + + def __le__(self, other): + if self.id <= other.id: + return True + else: + return False + + def add_neighbor(self, neighbor, port): + self.adjacent[neighbor] = port + + def del_neighbor(self, neighbor): + self.adjacent.pop(neighbor) + + def get_connections(self): + return self.adjacent.keys() + + def get_id(self): + return self.id + + def get_port(self, neighbor): + return self.adjacent[neighbor][0] + + def get_weight(self, neighbor): + return self.adjacent[neighbor][1] + + def set_distance(self, dist): + self.distance = dist + + def get_distance(self): + return self.distance + + def set_previous(self, prev): + self.previous = prev + + def set_visited(self): + self.visited = True + + def reset_vertex(self): + self.visited = False + self.previous = None + self.distance = float("inf") + + def __str__(self): + return str(self.id) + ' adjacent: ' + str([x.id for x in self.adjacent]) + +class Graph: + def __init__(self): + self.vert_dict = {} + self.num_vertices = 0 + + def __iter__(self): + return iter(self.vert_dict.values()) + + def reset_graph(self): + for n in self.vert_dict: + self.get_vertex(n).reset_vertex() + + def printGraph(self): + for v in self: + for w in v.get_connections(): + vid = v.get_id() + wid = w.get_id() + print ('( %s , %s, %s, %s, %s, %s)' % ( vid, wid, v.get_port(w), w.get_port(v), v.get_weight(w), w.get_weight(v))) + + def add_vertex(self, node): + self.num_vertices = self.num_vertices + 1 + new_vertex = Vertex(node) + self.vert_dict[node] = new_vertex + return new_vertex + + def del_Vertex(self, node): + self.vert_dict.pop(node) + + def get_vertex(self, n): + if n in self.vert_dict: + return self.vert_dict[n] + else: + return None + + def add_edge(self, frm, to, port_frm, port_to,w): + if frm not in self.vert_dict: + self.add_vertex(frm) + if to not in self.vert_dict: + self.add_vertex(to) + + self.vert_dict[frm].add_neighbor(self.vert_dict[to], [port_frm, w]) + self.vert_dict[to].add_neighbor(self.vert_dict[frm], [port_to, w]) + + def del_edge(self, frm, to, cost = 0): + self.vert_dict[frm].del_neighbor(self.vert_dict[to]) + self.vert_dict[to].del_neighbor(self.vert_dict[frm]) + + def get_vertices(self): + return self.vert_dict.keys() + + def set_previous(self, current): + self.previous = current + + def get_previous(self, current): + return self.previous + +def shortest(v, path): + if v.previous: + path.append(v.previous.get_id()) + shortest(v.previous, path) + return + +import heapq + +def dijkstra(aGraph, start): + """print ('''Dijkstra's shortest path''')""" + # Set the distance for the start node to zero + start.set_distance(0) + + # Put tuple pair into the priority queue + unvisited_queue = [(v.get_distance(),v) for v in aGraph] + #priority queue->costruisce un albero in cui ogni nodo parent ha ha un valore <= di ogni child + #heappop prende il valore più piccolo, nel caso di dikstra, il nodo più vicino + heapq.heapify(unvisited_queue) + + while len(unvisited_queue): + # Pops a vertex with the smallest distance + uv = heapq.heappop(unvisited_queue) + current = uv[1] + current.set_visited() + + #for next in v.adjacent: + for next in current.adjacent: + # if visited, skip + if next.visited: + continue + new_dist = current.get_distance() + current.get_weight(next) + + if new_dist < next.get_distance(): + next.set_distance(new_dist) + next.set_previous(current) + """print ('updated : current = %s next = %s new_dist = %s' \ + %(current.get_id(), next.get_id(), next.get_distance()))""" + else: + """print ('not updated : current = %s next = %s new_dist = %s' \ + %(current.get_id(), next.get_id(), next.get_distance()))""" + + # Rebuild heap + # 1. Pop every item + while len(unvisited_queue): + heapq.heappop(unvisited_queue) + # 2. Put all vertices not visited into the queue + unvisited_queue = [(v.get_distance(),v) for v in aGraph if not v.visited] + heapq.heapify(unvisited_queue) + +def shortest_path(graph, src, dst): + dijkstra(graph, src) + target = dst + path = [target.get_id()] + shortest(target, path) + return path[::-1] + +if __name__ == '__main__': + + print("Testing Algo") + g = Graph() + + g.add_vertex('a') + g.add_vertex('b') + g.add_vertex('c') + g.add_vertex('d') + g.add_vertex('e') + g.add_vertex('f') + + g.add_edge('a', 'b', 7) + g.add_edge('a', 'c', 9) + g.add_edge('a', 'f', 14) + g.add_edge('b', 'c', 10) + g.add_edge('b', 'd', 15) + g.add_edge('c', 'd', 11) + g.add_edge('c', 'f', 2) + g.add_edge('d', 'e', 6) + g.add_edge('e', 'f', 9) + + + """print ('Graph data:') + for v in g: + for w in v.get_connections(): + vid = v.get_id() + wid = w.get_id() + print ('( %s , %s, %3d)' % ( vid, wid, v.get_weight(w))) + + + dijkstra(g, g.get_vertex('a')) + + target = g.get_vertex('e') + path = [target.get_id()] + shortest(target, path) + print ('The shortest path : %s' %(path[::-1]))""" + + p = shortest_path(g, g.get_vertex('a'), g.get_vertex('e')) + print(p) diff --git a/src/opticalcontroller/images/topo.png b/src/opticalcontroller/images/topo.png new file mode 100644 index 0000000000000000000000000000000000000000..216e1360b3caecd68285ca8b69fd498049dcbf79 Binary files /dev/null and b/src/opticalcontroller/images/topo.png differ diff --git a/src/opticalcontroller/json_files/nodes.json b/src/opticalcontroller/json_files/nodes.json new file mode 100644 index 0000000000000000000000000000000000000000..60f017c19d7c7a578c0ddfc2225cab742deb0026 --- /dev/null +++ b/src/opticalcontroller/json_files/nodes.json @@ -0,0 +1,39 @@ +{ + "R1":{ + "id":0, + "ip":"10.30.2.207", + "port":"50001", + "type":"OC-ROADM", + "driver": "OpticalOC" + }, + + "R2":{ + "id":1, + "ip":"10.30.2.208", + "port":"50001", + "type":"OC-ROADM", + "driver": "OpticalOC" + }, + + "R3":{ + "id":2, + "ip":"10.30.2.209", + "port":"50001", + "type":"OC-ROADM", + "driver": "OpticalOC" + }, + "T1":{ + "id":3, + "ip":"10.30.2.210", + "port":"50001", + "type":"OC-TP", + "driver": "OpticalOC" + }, + "T2":{ + "id":4, + "ip":"10.30.2.211", + "port":"50001", + "type":"OC-TP", + "driver": "OpticalOC" + } +} diff --git a/src/opticalcontroller/json_files/optical_TFSworking.json b/src/opticalcontroller/json_files/optical_TFSworking.json new file mode 100644 index 0000000000000000000000000000000000000000..ff1841eeea9df1e73bcfb25d07f19d64554f11e1 --- /dev/null +++ b/src/opticalcontroller/json_files/optical_TFSworking.json @@ -0,0 +1,486 @@ +{ + "R1-R2": { + "length": 80, + "source": "d1", + "target": "d1", + "fibers": { + "d1-1": { + "length": 80, + "src_port": "3", + "dst_port": "14", + "local_peer_port": "13", + "remote_peer_port": "4", + "c_slots": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "l_slots": [ + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120 + ], + "s_slots": [ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520 + ] + } + } + }, + "R2-R1": { + "length": 80, + "source": "d1", + "target": "d1", + "fibers": { + "d1-1": { + "length": 80, + "src_port": "4", + "dst_port": "13", + "local_peer_port": "14", + "remote_peer_port": "3", + "c_slots": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "l_slots": [ + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120 + ], + "s_slots": [ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520 + ] + } + } + }, + "T1-R1": { + "length": 0, + "source": "muxT", + "target": "srgR", + "fibers": { + "M1": { + "length": 0, + "src_port": "1", + "dst_port": "12", + "local_peer_port": "1", + "remote_peer_port": "2", + "used": false, + "c_slots": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "l_slots": [ + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120 + ], + "s_slots": [ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520 + ] + } + } + }, + "R1-T1": { + "length": 0, + "source": "srgT", + "target": "muxR", + "fibers": { + "S1": { + "length": 0, + "src_port": "2", + "dst_port": "1", + "local_peer_port": "12", + "remote_peer_port": "1", + "used": false, + "c_slots": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "l_slots": [ + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120 + ], + "s_slots": [ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520 + ] + } + } + }, + "T2-R2": { + "length": 0, + "source": "muxT", + "target": "srgR", + "fibers": { + "M1": { + "length": 0, + "src_port": "6", + "dst_port": "15", + "local_peer_port": "6", + "remote_peer_port": "5", + "used": false, + "c_slots": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "l_slots": [ + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120 + ], + "s_slots": [ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520 + ] + } + } + }, + "R2-T2": { + "length": 0, + "source": "srgT", + "target": "muxR", + "fibers": { + "S1": { + "length": 0, + "src_port": "5", + "dst_port": "6", + "local_peer_port": "15", + "remote_peer_port": "6", + "used": false, + "c_slots": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "l_slots": [ + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120 + ], + "s_slots": [ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520 + ] + } + } + } +} diff --git a/src/opticalcontroller/json_files/optical_topoTFS.json b/src/opticalcontroller/json_files/optical_topoTFS.json new file mode 100644 index 0000000000000000000000000000000000000000..7dea474cd676b7c699cffc1c180e14598b987473 --- /dev/null +++ b/src/opticalcontroller/json_files/optical_topoTFS.json @@ -0,0 +1,1836 @@ +{ + "R1-R2": { + "length": 80, + "source": "d1", + "target": "d1", + "fibers": { + "d1-1": { + "length": 80, + "src_port": "101", + "dst_port": "201", + "local_peer_port": "201", + "remote_peer_port": "101", + "c_slots": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "l_slots": [ + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120 + ], + "s_slots": [ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520 + ] + }, + "d1-2": { + "length": 80, + "src_port": "102", + "dst_port": "202", + "local_peer_port": "202", + "remote_peer_port": "102", + "c_slots": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "l_slots": [ + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120 + ], + "s_slots": [ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520 + ] + } + } + }, + "R2-R1": { + "length": 80, + "source": "d1", + "target": "d1", + "fibers": { + "d1-1": { + "length": 80, + "src_port": "101", + "dst_port": "201", + "local_peer_port": "201", + "remote_peer_port": "101", + "c_slots": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "l_slots": [ + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120 + ], + "s_slots": [ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520 + ] + }, + "d1-2": { + "length": 80, + "src_port": "102", + "dst_port": "202", + "local_peer_port": "202", + "remote_peer_port": "102", + "c_slots": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "l_slots": [ + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120 + ], + "s_slots": [ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520 + ] + } + } + }, + "R1-R3": { + "length": 80, + "source": "d2", + "target": "d1", + "fibers": { + "d2-1": { + "length": 80, + "src_port": "103", + "dst_port": "201", + "local_peer_port": "203", + "remote_peer_port": "101", + "c_slots": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "l_slots": [ + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120 + ], + "s_slots": [ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520 + ] + }, + "d2-2": { + "length": 80, + "src_port": "104", + "dst_port": "202", + "local_peer_port": "204", + "remote_peer_port": "102", + "c_slots": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "l_slots": [ + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120 + ], + "s_slots": [ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520 + ] + } + } + }, + "R3-R1": { + "length": 80, + "source": "d1", + "target": "d2", + "fibers": { + "d1-1": { + "length": 80, + "src_port": "101", + "dst_port": "203", + "local_peer_port": "201", + "remote_peer_port": "103", + "c_slots": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "l_slots": [ + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120 + ], + "s_slots": [ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520 + ] + }, + "d1-2": { + "length": 80, + "src_port": "102", + "dst_port": "204", + "local_peer_port": "202", + "remote_peer_port": "104", + "c_slots": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "l_slots": [ + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120 + ], + "s_slots": [ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520 + ] + } + } + }, + "R2-R3": { + "length": 80, + "source": "d2", + "target": "d2", + "fibers": { + "d2-1": { + "length": 80, + "src_port": "103", + "dst_port": "203", + "local_peer_port": "203", + "remote_peer_port": "103", + "c_slots": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "l_slots": [ + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120 + ], + "s_slots": [ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520 + ] + }, + "d2-2": { + "length": 80, + "src_port": "104", + "dst_port": "204", + "local_peer_port": "204", + "remote_peer_port": "104", + "c_slots": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "l_slots": [ + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120 + ], + "s_slots": [ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520 + ] + } + } + }, + "R3-R2": { + "length": 80, + "source": "d2", + "target": "d2", + "fibers": { + "d2-1": { + "length": 80, + "src_port": "103", + "dst_port": "203", + "local_peer_port": "203", + "remote_peer_port": "103", + "c_slots": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "l_slots": [ + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120 + ], + "s_slots": [ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520 + ] + }, + "d2-2": { + "length": 80, + "src_port": "104", + "dst_port": "204", + "local_peer_port": "204", + "remote_peer_port": "104", + "c_slots": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "l_slots": [ + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120 + ], + "s_slots": [ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520 + ] + } + } + }, + "T1-R1": { + "length": 0, + "source": "muxT", + "target": "srgR", + "fibers": { + "M1": { + "length": 0, + "src_port": "1", + "dst_port": "2001", + "local_peer_port": "1", + "remote_peer_port": "1001", + "used": false, + "c_slots": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "l_slots": [ + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120 + ], + "s_slots": [ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520 + ] + }, + "M2": { + "length": 0, + "src_port": "2", + "dst_port": "2002", + "local_peer_port": "2", + "remote_peer_port": "1002", + "used": false, + "c_slots": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "l_slots": [ + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120 + ], + "s_slots": [ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520 + ] + }, + "M3": { + "length": 0, + "src_port": "3", + "dst_port": "2003", + "local_peer_port": "3", + "remote_peer_port": "1003", + "used": false, + "c_slots": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "l_slots": [ + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120 + ], + "s_slots": [ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520 + ] + } + } + }, + "R1-T1": { + "length": 0, + "source": "srgT", + "target": "muxR", + "fibers": { + "S1": { + "length": 0, + "src_port": "1001", + "dst_port": "1", + "local_peer_port": "2001", + "remote_peer_port": "1", + "used": false, + "c_slots": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "l_slots": [ + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120 + ], + "s_slots": [ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520 + ] + }, + "S2": { + "length": 0, + "src_port": "1002", + "dst_port": "2", + "local_peer_port": "2002", + "remote_peer_port": "2", + "used": false, + "c_slots": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "l_slots": [ + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120 + ], + "s_slots": [ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520 + ] + }, + "S3": { + "length": 0, + "src_port": "1003", + "dst_port": "3", + "local_peer_port": "2003", + "remote_peer_port": "3", + "used": false, + "c_slots": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "l_slots": [ + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120 + ], + "s_slots": [ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520 + ] + } + } + }, + "T2-R2": { + "length": 0, + "source": "muxT", + "target": "srgR", + "fibers": { + "M1": { + "length": 0, + "src_port": "1", + "dst_port": "2001", + "local_peer_port": "1", + "remote_peer_port": "1001", + "used": false, + "c_slots": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "l_slots": [ + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120 + ], + "s_slots": [ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520 + ] + }, + "M2": { + "length": 0, + "src_port": "2", + "dst_port": "2002", + "local_peer_port": "2", + "remote_peer_port": "1002", + "used": false, + "c_slots": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "l_slots": [ + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120 + ], + "s_slots": [ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520 + ] + }, + "M3": { + "length": 0, + "src_port": "3", + "dst_port": "2003", + "local_peer_port": "3", + "remote_peer_port": "1003", + "used": false, + "c_slots": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "l_slots": [ + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120 + ], + "s_slots": [ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520 + ] + } + } + }, + "R2-T2": { + "length": 0, + "source": "srgT", + "target": "muxR", + "fibers": { + "S1": { + "length": 0, + "src_port": "1001", + "dst_port": "1", + "local_peer_port": "2001", + "remote_peer_port": "1", + "used": false, + "c_slots": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "l_slots": [ + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120 + ], + "s_slots": [ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520 + ] + }, + "S2": { + "length": 0, + "src_port": "1002", + "dst_port": "2", + "local_peer_port": "2002", + "remote_peer_port": "2", + "used": false, + "c_slots": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "l_slots": [ + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120 + ], + "s_slots": [ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520 + ] + }, + "S3": { + "length": 0, + "src_port": "1003", + "dst_port": "3", + "local_peer_port": "2003", + "remote_peer_port": "3", + "used": false, + "c_slots": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "l_slots": [ + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120 + ], + "s_slots": [ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520 + ] + } + } + } +} diff --git a/src/opticalcontroller/json_files/tfs.json b/src/opticalcontroller/json_files/tfs.json new file mode 100644 index 0000000000000000000000000000000000000000..31803b893b5639e957be33465599573baa475ca2 --- /dev/null +++ b/src/opticalcontroller/json_files/tfs.json @@ -0,0 +1,686 @@ +{ + "links": [ + { + "link_id": { + "link_uuid": { + "uuid": "T1->R1" + } + }, + "link_endpoint_ids": [ + { + "device_id": { + "device_uuid": { + "uuid": "T1" + } + }, + "endpoint_uuid": { + "uuid": "1" + } + }, + { + "device_id": { + "device_uuid": { + "uuid": "R1" + } + }, + "endpoint_uuid": { + "uuid": "12" + } + } + ], + "optical_link": { + "name": "T1-R1", + "details": { + "length": 0, + "source": "muxT", + "target": "srgR", + "fibers": [ + { + "ID": "M1", + "length": 0, + "src_port": "1", + "dst_port": "12", + "local_peer_port": "1", + "remote_peer_port": "2", + "used": false, + "c_slots": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "l_slots": [ + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120 + ], + "s_slots": [ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520 + ] + } + ] + } + } + }, + { + "link_id": { + "link_uuid": { + "uuid": "R1->T1" + } + }, + "link_endpoint_ids": [ + { + "device_id": { + "device_uuid": { + "uuid": "R1" + } + }, + "endpoint_uuid": { + "uuid": "2" + } + }, + { + "device_id": { + "device_uuid": { + "uuid": "T1" + } + }, + "endpoint_uuid": { + "uuid": "1" + } + } + ], + "optical_link": { + "name": "R1-T1", + "details": { + "length": 0, + "source": "srgT", + "target": "muxT", + "fibers": [ + { + "ID": "M1", + "length": 0, + "src_port": "2", + "dst_port": "1", + "local_peer_port": "12", + "remote_peer_port": "1", + "used": false, + "c_slots": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "l_slots": [ + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120 + ], + "s_slots": [ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520 + ] + } + ] + } + } + }, + { + "link_id": { + "link_uuid": { + "uuid": "R1->R2" + } + }, + "link_endpoint_ids": [ + { + "device_id": { + "device_uuid": { + "uuid": "R1" + } + }, + "endpoint_uuid": { + "uuid": "3" + } + }, + { + "device_id": { + "device_uuid": { + "uuid": "R2" + } + }, + "endpoint_uuid": { + "uuid": "14" + } + } + ], + "optical_link": { + "name": "R1-R2", + "details": { + "length": 0, + "source": "D1", + "target": "D1", + "fibers": [ + { + "ID": "D11", + "length": 0, + "src_port": "3", + "dst_port": "14", + "local_peer_port": "13", + "remote_peer_port": "4", + "c_slots": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "l_slots": [ + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120 + ], + "s_slots": [ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520 + ] + } + ] + } + } + }, + { + "link_id": { + "link_uuid": { + "uuid": "R2->R1" + } + }, + "link_endpoint_ids": [ + { + "device_id": { + "device_uuid": { + "uuid": "R2" + } + }, + "endpoint_uuid": { + "uuid": "4" + } + }, + { + "device_id": { + "device_uuid": { + "uuid": "R1" + } + }, + "endpoint_uuid": { + "uuid": "13" + } + } + ], + "optical_link": { + "name": "R2-R1", + "details": { + "length": 0, + "source": "D1", + "target": "D1", + "fibers": [ + { + "ID": "D11", + "length": 0, + "src_port": "4", + "dst_port": "13", + "local_peer_port": "14", + "remote_peer_port": "3", + "c_slots": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "l_slots": [ + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120 + ], + "s_slots": [ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520 + ] + } + ] + } + } + }, + { + "link_id": { + "link_uuid": { + "uuid": "T2->R2" + } + }, + "link_endpoint_ids": [ + { + "device_id": { + "device_uuid": { + "uuid": "T2" + } + }, + "endpoint_uuid": { + "uuid": "6" + } + }, + { + "device_id": { + "device_uuid": { + "uuid": "R2" + } + }, + "endpoint_uuid": { + "uuid": "15" + } + } + ], + "optical_link": { + "name": "T2-R2", + "details": { + "length": 0, + "source": "srgT", + "target": "muxT", + "fibers": [ + { + "ID": "M1", + "length": 0, + "src_port": "6", + "dst_port": "15", + "local_peer_port": "6", + "remote_peer_port": "5", + "used": false, + "c_slots": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "l_slots": [ + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120 + ], + "s_slots": [ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520 + ] + } + ] + } + } + }, + { + "link_id": { + "link_uuid": { + "uuid": "R2->T2" + } + }, + "link_endpoint_ids": [ + { + "device_id": { + "device_uuid": { + "uuid": "R2" + } + }, + "endpoint_uuid": { + "uuid": "5" + } + }, + { + "device_id": { + "device_uuid": { + "uuid": "T2" + } + }, + "endpoint_uuid": { + "uuid": "6" + } + } + ], + "optical_link": { + "name": "R2-T2", + "details": { + "length": 0, + "source": "srgT", + "target": "muxT", + "fibers": [ + { + "ID": "M1", + "length": 0, + "src_port": "5", + "dst_port": "6", + "local_peer_port": "15", + "remote_peer_port": "6", + "used": false, + "c_slots": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "l_slots": [ + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120 + ], + "s_slots": [ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520 + ] + } + ] + } + } + } + ] +} \ No newline at end of file diff --git a/src/opticalcontroller/json_files/topo_2_links.json b/src/opticalcontroller/json_files/topo_2_links.json new file mode 100644 index 0000000000000000000000000000000000000000..02165938ce675071a4ff4c3424e3b53244d40810 --- /dev/null +++ b/src/opticalcontroller/json_files/topo_2_links.json @@ -0,0 +1,1530 @@ +{ + "R1-R3": { + "length": 80, + "source": "d2", + "target": "d1", + "fibers": { + "d2-1": { + "length": 80, + "src_port": "103", + "dst_port": "201", + "local_peer_port": "203", + "remote_peer_port": "101", + "c_slots": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "l_slots": [ + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120 + ], + "s_slots": [ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520 + ] + }, + "d2-2": { + "length": 80, + "src_port": "104", + "dst_port": "202", + "local_peer_port": "204", + "remote_peer_port": "102", + "c_slots": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "l_slots": [ + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120 + ], + "s_slots": [ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520 + ] + } + } + }, + "R3-R1": { + "length": 80, + "source": "d1", + "target": "d2", + "fibers": { + "d1-1": { + "length": 80, + "src_port": "101", + "dst_port": "203", + "local_peer_port": "201", + "remote_peer_port": "103", + "c_slots": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "l_slots": [ + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120 + ], + "s_slots": [ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520 + ] + }, + "d1-2": { + "length": 80, + "src_port": "102", + "dst_port": "204", + "local_peer_port": "202", + "remote_peer_port": "104", + "c_slots": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "l_slots": [ + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120 + ], + "s_slots": [ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520 + ] + } + } + }, + "R2-R3": { + "length": 80, + "source": "d2", + "target": "d2", + "fibers": { + "d2-1": { + "length": 80, + "src_port": "103", + "dst_port": "203", + "local_peer_port": "203", + "remote_peer_port": "103", + "c_slots": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "l_slots": [ + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120 + ], + "s_slots": [ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520 + ] + }, + "d2-2": { + "length": 80, + "src_port": "104", + "dst_port": "204", + "local_peer_port": "204", + "remote_peer_port": "104", + "c_slots": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "l_slots": [ + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120 + ], + "s_slots": [ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520 + ] + } + } + }, + "R3-R2": { + "length": 80, + "source": "d2", + "target": "d2", + "fibers": { + "d2-1": { + "length": 80, + "src_port": "103", + "dst_port": "203", + "local_peer_port": "203", + "remote_peer_port": "103", + "c_slots": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "l_slots": [ + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120 + ], + "s_slots": [ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520 + ] + }, + "d2-2": { + "length": 80, + "src_port": "104", + "dst_port": "204", + "local_peer_port": "204", + "remote_peer_port": "104", + "c_slots": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "l_slots": [ + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120 + ], + "s_slots": [ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520 + ] + } + } + }, + "T1-R1": { + "length": 0, + "source": "muxT", + "target": "srgR", + "fibers": { + "M1": { + "length": 0, + "src_port": "1", + "dst_port": "2001", + "local_peer_port": "1", + "remote_peer_port": "1001", + "used": false, + "c_slots": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "l_slots": [ + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120 + ], + "s_slots": [ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520 + ] + }, + "M2": { + "length": 0, + "src_port": "2", + "dst_port": "2002", + "local_peer_port": "2", + "remote_peer_port": "1002", + "used": false, + "c_slots": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "l_slots": [ + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120 + ], + "s_slots": [ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520 + ] + }, + "M3": { + "length": 0, + "src_port": "3", + "dst_port": "2003", + "local_peer_port": "3", + "remote_peer_port": "1003", + "used": false, + "c_slots": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "l_slots": [ + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120 + ], + "s_slots": [ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520 + ] + } + } + }, + "R1-T1": { + "length": 0, + "source": "srgT", + "target": "muxR", + "fibers": { + "S1": { + "length": 0, + "src_port": "1001", + "dst_port": "1", + "local_peer_port": "2001", + "remote_peer_port": "1", + "used": false, + "c_slots": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "l_slots": [ + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120 + ], + "s_slots": [ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520 + ] + }, + "S2": { + "length": 0, + "src_port": "1002", + "dst_port": "2", + "local_peer_port": "2002", + "remote_peer_port": "2", + "used": false, + "c_slots": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "l_slots": [ + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120 + ], + "s_slots": [ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520 + ] + }, + "S3": { + "length": 0, + "src_port": "1003", + "dst_port": "3", + "local_peer_port": "2003", + "remote_peer_port": "3", + "used": false, + "c_slots": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "l_slots": [ + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120 + ], + "s_slots": [ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520 + ] + } + } + }, + "T2-R2": { + "length": 0, + "source": "muxT", + "target": "srgR", + "fibers": { + "M1": { + "length": 0, + "src_port": "1", + "dst_port": "2001", + "local_peer_port": "1", + "remote_peer_port": "1001", + "used": false, + "c_slots": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "l_slots": [ + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120 + ], + "s_slots": [ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520 + ] + }, + "M2": { + "length": 0, + "src_port": "2", + "dst_port": "2002", + "local_peer_port": "2", + "remote_peer_port": "1002", + "used": false, + "c_slots": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "l_slots": [ + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120 + ], + "s_slots": [ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520 + ] + }, + "M3": { + "length": 0, + "src_port": "3", + "dst_port": "2003", + "local_peer_port": "3", + "remote_peer_port": "1003", + "used": false, + "c_slots": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "l_slots": [ + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120 + ], + "s_slots": [ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520 + ] + } + } + }, + "R2-T2": { + "length": 0, + "source": "srgT", + "target": "muxR", + "fibers": { + "S1": { + "length": 0, + "src_port": "1001", + "dst_port": "1", + "local_peer_port": "2001", + "remote_peer_port": "1", + "used": false, + "c_slots": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "l_slots": [ + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120 + ], + "s_slots": [ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520 + ] + }, + "S2": { + "length": 0, + "src_port": "1002", + "dst_port": "2", + "local_peer_port": "2002", + "remote_peer_port": "2", + "used": false, + "c_slots": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "l_slots": [ + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120 + ], + "s_slots": [ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520 + ] + }, + "S3": { + "length": 0, + "src_port": "1003", + "dst_port": "3", + "local_peer_port": "2003", + "remote_peer_port": "3", + "used": false, + "c_slots": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "l_slots": [ + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120 + ], + "s_slots": [ + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520 + ] + } + } + } +} diff --git a/src/opticalcontroller/json_files/topology-optical.json b/src/opticalcontroller/json_files/topology-optical.json new file mode 100644 index 0000000000000000000000000000000000000000..e2453b654d53fc3200570ce9c2b17effc964bd25 --- /dev/null +++ b/src/opticalcontroller/json_files/topology-optical.json @@ -0,0 +1,252 @@ +{ + "r1-r2": { + "length": 80, + "source" : "d1", + "target" : "d1", + "fibers" : { + "d1-1": { + "src_port": "1T", + "dst_port": "1R", + "c_slots": {"1": 1, "2": 1, "3": 1, "4": 1}, + "l_slots": {"101": 1, "102": 1, "103": 1, "104": 1}, + "s_slots": {"1001": 1, "1002": 1, "1003": 1, "1004": 1} + }, + "d1-2":{ + "src_port": "2T", + "dst_port": "2R", + "c_slots": {"1": 1, "2": 1, "3": 1, "4": 1}, + "l_slots": {"101": 1, "102": 1, "103": 1, "104": 1}, + "s_slots": {"1001": 1, "1002": 1, "1003": 1, "1004": 1} + } + } + }, + "r2-r1": { + "length": 80, + "source" : "d1", + "target" : "d1", + "fibers" : { + "d1-1" : { + "src_port": "1T", + "dst_port": "1R", + "c_slots": {"1": 1, "2": 1, "3": 1, "4": 1}, + "l_slots": {"101": 1, "102": 1, "103": 1, "104": 1}, + "s_slots": {"1001": 1, "1002": 1, "1003": 1, "1004": 1} + }, + "d1-2" : { + "src_port": "2T", + "dst_port": "2R", + "c_slots": {"1": 1, "2": 1, "3": 1, "4": 1}, + "l_slots": {"101": 1, "102": 1, "103": 1, "104": 1}, + "s_slots": {"1001": 1, "1002": 1, "1003": 1, "1004": 1} + } + } + }, + "r1-r3": { + "length": 80, + "source" : "d2", + "target" : "d1", + "fibers" : { + "d2-1":{ + "src_port": "3T", + "dst_port": "1R", + "c_slots": {"1": 1, "2": 1, "3": 1, "4": 1}, + "l_slots": {"101": 1, "102": 1, "103": 1, "104": 1}, + "s_slots": {"1001": 1, "1002": 1, "1003": 1, "1004": 1} + }, + "d2-2":{ + "src_port": "4T", + "dst_port": "2R", + "c_slots": {"1": 1, "2": 1, "3": 1, "4": 1}, + "l_slots": {"101": 1, "102": 1, "103": 1, "104": 1}, + "s_slots": {"1001": 1, "1002": 1, "1003": 1, "1004": 1} + } + } + }, + "r3-r1": { + "length": 80, + "source" : "d1", + "target" : "d2", + "fibers" : { + "d1-1": { + "src_port": "1T", + "dst_port": "3R", + "c_slots": {"1": 1, "2": 1, "3": 1, "4": 1}, + "l_slots": {"101": 1, "102": 1, "103": 1, "104": 1}, + "s_slots": {"1001": 1, "1002": 1, "1003": 1, "1004": 1} + }, + "d1-2": { + "src_port": "2T", + "dst_port": "4R", + "c_slots": {"1": 1, "2": 1, "3": 1, "4": 1}, + "l_slots": {"101": 1, "102": 1, "103": 1, "104": 1}, + "s_slots": {"1001": 1, "1002": 1, "1003": 1, "1004": 1} + } + } + }, + "r2-r3": { + "length": 80, + "source" : "d2", + "target" : "d2", + "fibers" : { + "d2-1": { + "src_port": "3T", + "dst_port": "3R", + "c_slots": {"1": 1, "2": 1, "3": 1, "4": 1}, + "l_slots": {"101": 1, "102": 1, "103": 1, "104": 1}, + "s_slots": {"1001": 1, "1002": 1, "1003": 1, "1004": 1} + }, + "d2-2": { + "src_port": "4T", + "dst_port": "4R", + "c_slots": {"1": 1, "2": 1, "3": 1, "4": 1}, + "l_slots": {"101": 1, "102": 1, "103": 1, "104": 1}, + "s_slots": {"1001": 1, "1002": 1, "1003": 1, "1004": 1} + } + } + }, + "r3-r2": { + "length": 80, + "source" : "d2", + "target" : "d2", + "fibers" : { + "d2-1": { + "src_port": "3T", + "dst_port": "3R", + "c_slots": {"1": 1, "2": 1, "3": 1, "4": 1}, + "l_slots": {"101": 1, "102": 1, "103": 1, "104": 1}, + "s_slots": {"1001": 1, "1002": 1, "1003": 1, "1004": 1} + }, + "d2-2":{ + "src_port": "4T", + "dst_port": "4R", + "c_slots": {"1": 1, "2": 1, "3": 1, "4": 1}, + "l_slots": {"101": 1, "102": 1, "103": 1, "104": 1}, + "s_slots": {"1001": 1, "1002": 1, "1003": 1, "1004": 1} + } + } + }, + "t1-r1": { + "length": 0, + "source" : "muxT", + "target" : "srgR", + "fibers" : { + "M1": { + "src_port": "1", + "dst_port": "101R", + "used": false, + "c_slots": {"1": 1, "2": 1, "3": 1, "4": 1}, + "l_slots": {"101": 1, "102": 1, "103": 1, "104": 1}, + "s_slots": {"1001": 1, "1002": 1, "1003": 1, "1004": 1} + }, + "M2": { + "src_port": "2", + "dst_port": "102R", + "used": false, + "c_slots": {"1": 1, "2": 1, "3": 1, "4": 1}, + "l_slots": {"101": 1, "102": 1, "103": 1, "104": 1}, + "s_slots": {"1001": 1, "1002": 1, "1003": 1, "1004": 1} + }, + "M3": { + "src_port": "3", + "dst_port": "103R", + "used": false, + "c_slots": {"1": 1, "2": 1, "3": 1, "4": 1}, + "l_slots": {"101": 1, "102": 1, "103": 1, "104": 1}, + "s_slots": {"1001": 1, "1002": 1, "1003": 1, "1004": 1} + } + } + }, + "r1-t1": { + "length": 0, + "source" : "srgT", + "target" : "muxR", + "fibers" : { + "S1": { + "src_port": "101T", + "dst_port": "1", + "used": false, + "c_slots": {"1": 1, "2": 1, "3": 1, "4": 1}, + "l_slots": {"101": 1, "102": 1, "103": 1, "104": 1}, + "s_slots": {"1001": 1, "1002": 1, "1003": 1, "1004": 1} + }, + "S2": { + "src_port": "102T", + "dst_port": "2", + "used": false, + "c_slots": {"1": 1, "2": 1, "3": 1, "4": 1}, + "l_slots": {"101": 1, "102": 1, "103": 1, "104": 1}, + "s_slots": {"1001": 1, "1002": 1, "1003": 1, "1004": 1} + }, + "S3": { + "src_port": "103T", + "dst_port": "3", + "used": false, + "c_slots": {"1": 1, "2": 1, "3": 1, "4": 1}, + "l_slots": {"101": 1, "102": 1, "103": 1, "104": 1}, + "s_slots": {"1001": 1, "1002": 1, "1003": 1, "1004": 1} + } + } + }, + "t2-r2": { + "length": 0, + "source" : "muxT", + "target" : "srgR", + "fibers" : { + "M1": { + "src_port": "1", + "dst_port": "101R", + "used": false, + "c_slots": {"1": 1, "2": 1, "3": 1, "4": 1}, + "l_slots": {"101": 1, "102": 1, "103": 1, "104": 1}, + "s_slots": {"1001": 1, "1002": 1, "1003": 1, "1004": 1} + }, + "M2": { + "src_port": "2", + "dst_port": "102R", + "used": false, + "c_slots": {"1": 1, "2": 1, "3": 1, "4": 1}, + "l_slots": {"101": 1, "102": 1, "103": 1, "104": 1}, + "s_slots": {"1001": 1, "1002": 1, "1003": 1, "1004": 1} + }, + "M3": { + "src_port": "3", + "dst_port": "103R", + "used": false, + "c_slots": {"1": 1, "2": 1, "3": 1, "4": 1}, + "l_slots": {"101": 1, "102": 1, "103": 1, "104": 1}, + "s_slots": {"1001": 1, "1002": 1, "1003": 1, "1004": 1} + } + } + }, + "r2-t2": { + "length": 0, + "source" : "srgT", + "target" : "muxR", + "fibers" : { + "S1": { + "src_port": "101T", + "dst_port": "1", + "used": false, + "c_slots": {"1": 1, "2": 1, "3": 1, "4": 1}, + "l_slots": {"101": 1, "102": 1, "103": 1, "104": 1}, + "s_slots": {"1001": 1, "1002": 1, "1003": 1, "1004": 1} + }, + "S2": { + "src_port": "102T", + "dst_port": "2", + "used": false, + "c_slots": {"1": 1, "2": 1, "3": 1, "4": 1}, + "l_slots": {"101": 1, "102": 1, "103": 1, "104": 1}, + "s_slots": {"1001": 1, "1002": 1, "1003": 1, "1004": 1} + }, + "S3": { + "src_port": "103T", + "dst_port": "3", + "used": false, + "c_slots": {"1": 1, "2": 1, "3": 1, "4": 1}, + "l_slots": {"101": 1, "102": 1, "103": 1, "104": 1}, + "s_slots": {"1001": 1, "1002": 1, "1003": 1, "1004": 1} + } + } + } +} diff --git a/src/opticalcontroller/json_files/topology-optical2.json b/src/opticalcontroller/json_files/topology-optical2.json new file mode 100644 index 0000000000000000000000000000000000000000..fe8e9866bcc64d52b2f49089ce03af47d72df9d0 --- /dev/null +++ b/src/opticalcontroller/json_files/topology-optical2.json @@ -0,0 +1,324 @@ +{ + "r1-r2": { + "length": 80, + "source" : "d1", + "target" : "d1", + "fibers" : { + "d1-1": { + "length": 80, + "src_port": "1T", + "dst_port": "1R", + "local_peer_port": "1R", + "remote_peer_port": "1T", + "c_slots": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], + "l_slots": [101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119 ,120], + "s_slots": [501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519 ,520] + }, + "d1-2":{ + "length": 80, + "src_port": "2T", + "dst_port": "2R", + "local_peer_port": "2R", + "remote_peer_port": "2T", + "c_slots": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], + "l_slots": [101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119 ,120], + "s_slots": [501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519 ,520] + } + } + }, + "r2-r1": { + "length": 80, + "source" : "d1", + "target" : "d1", + "fibers" : { + "d1-1" : { + "length": 80, + "src_port": "1T", + "dst_port": "1R", + "local_peer_port": "1R", + "remote_peer_port": "1T", + "c_slots": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], + "l_slots": [101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119 ,120], + "s_slots": [501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519 ,520] + }, + "d1-2" : { + "length": 80, + "src_port": "2T", + "dst_port": "2R", + "local_peer_port": "2R", + "remote_peer_port": "2T", + "c_slots": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], + "l_slots": [101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119 ,120], + "s_slots": [501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519 ,520] + } + } + }, + "r1-r3": { + "length": 80, + "source" : "d2", + "target" : "d1", + "fibers" : { + "d2-1":{ + "length": 80, + "src_port": "3T", + "dst_port": "1R", + "local_peer_port": "3R", + "remote_peer_port": "1T", + "c_slots": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], + "l_slots": [101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119 ,120], + "s_slots": [501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519 ,520] + }, + "d2-2":{ + "length": 80, + "src_port": "4T", + "dst_port": "2R", + "local_peer_port": "4R", + "remote_peer_port": "2T", + "c_slots": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], + "l_slots": [101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119 ,120], + "s_slots": [501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519 ,520] + } + } + }, + "r3-r1": { + "length": 80, + "source" : "d1", + "target" : "d2", + "fibers" : { + "d1-1": { + "length": 80, + "src_port": "1T", + "dst_port": "3R", + "local_peer_port": "1R", + "remote_peer_port": "3T", + "c_slots": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], + "l_slots": [101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119 ,120], + "s_slots": [501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519 ,520] + }, + "d1-2": { + "length": 80, + "src_port": "2T", + "dst_port": "4R", + "local_peer_port": "2R", + "remote_peer_port": "4T", + "c_slots": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], + "l_slots": [101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119 ,120], + "s_slots": [501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519 ,520] + } + } + }, + "r2-r3": { + "length": 80, + "source" : "d2", + "target" : "d2", + "fibers" : { + "d2-1": { + "length": 80, + "src_port": "3T", + "dst_port": "3R", + "local_peer_port": "3R", + "remote_peer_port": "3T", + "c_slots": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], + "l_slots": [101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119 ,120], + "s_slots": [501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519 ,520] + }, + "d2-2": { + "length": 80, + "src_port": "4T", + "dst_port": "4R", + "local_peer_port": "4R", + "remote_peer_port": "4T", + "c_slots": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], + "l_slots": [101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119 ,120], + "s_slots": [501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519 ,520] + } + } + }, + "r3-r2": { + "length": 80, + "source" : "d2", + "target" : "d2", + "fibers" : { + "d2-1": { + "length": 80, + "src_port": "3T", + "dst_port": "3R", + "local_peer_port": "3R", + "remote_peer_port": "3T", + "c_slots": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], + "l_slots": [101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119 ,120], + "s_slots": [501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519 ,520] + }, + "d2-2":{ + "length": 80, + "src_port": "4T", + "dst_port": "4R", + "local_peer_port": "4R", + "remote_peer_port": "4T", + "c_slots": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], + "l_slots": [101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119 ,120], + "s_slots": [501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519 ,520] + } + } + }, + "t1-r1": { + "length": 0, + "source" : "muxT", + "target" : "srgR", + "fibers" : { + "M1": { + "length": 0, + "src_port": "1", + "dst_port": "101R", + "local_peer_port": "1", + "remote_peer_port": "101T", + "used": false, + "c_slots": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], + "l_slots": [101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119 ,120], + "s_slots": [501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519 ,520] + }, + "M2": { + "length": 0, + "src_port": "2", + "dst_port": "102R", + "local_peer_port": "2", + "remote_peer_port": "102T", + "used": false, + "c_slots": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], + "l_slots": [101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119 ,120], + "s_slots": [501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519 ,520] + }, + "M3": { + "length": 0, + "src_port": "3", + "dst_port": "103R", + "local_peer_port": "3", + "remote_peer_port": "103T", + "used": false, + "c_slots": [], + "l_slots": [101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119 ,120], + "s_slots": [501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519 ,520] + } + } + }, + "r1-t1": { + "length": 0, + "source" : "srgT", + "target" : "muxR", + "fibers" : { + "S1": { + "length": 0, + "src_port": "101T", + "dst_port": "1", + "local_peer_port": "101R", + "remote_peer_port": "1", + "used": false, + "c_slots": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], + "l_slots": [101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119 ,120], + "s_slots": [501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519 ,520] + }, + "S2": { + "length": 0, + "src_port": "102T", + "dst_port": "2", + "local_peer_port": "102T", + "remote_peer_port": "2", + "used": false, + "c_slots": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], + "l_slots": [101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119 ,120], + "s_slots": [501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519 ,520] + }, + "S3": { + "length": 0, + "src_port": "103T", + "dst_port": "3", + "local_peer_port": "103R", + "remote_peer_port": "3", + "used": false, + "c_slots": [], + "l_slots": [101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119 ,120], + "s_slots": [501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519 ,520] + } + } + }, + "t2-r2": { + "length": 0, + "source" : "muxT", + "target" : "srgR", + "fibers" : { + "M1": { + "length": 0, + "src_port": "1", + "dst_port": "101R", + "local_peer_port": "1", + "remote_peer_port": "101T", + "used": false, + "c_slots": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], + "l_slots": [101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119 ,120], + "s_slots": [501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519 ,520] + }, + "M2": { + "length": 0, + "src_port": "2", + "dst_port": "102R", + "local_peer_port": "2", + "remote_peer_port": "102T", + "used": false, + "c_slots": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], + "l_slots": [101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119 ,120], + "s_slots": [501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519 ,520] + }, + "M3": { + "length": 0, + "src_port": "3", + "dst_port": "103R", + "local_peer_port": "3", + "remote_peer_port": "103T", + "used": false, + "c_slots": [], + "l_slots": [101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119 ,120], + "s_slots": [501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519 ,520] + } + } + }, + "r2-t2": { + "length": 0, + "source" : "srgT", + "target" : "muxR", + "fibers" : { + "S1": { + "length": 0, + "src_port": "101T", + "dst_port": "1", + "local_peer_port": "101R", + "remote_peer_port": "1", + "used": false, + "c_slots": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], + "l_slots": [101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119 ,120], + "s_slots": [501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519 ,520] + }, + "S2": { + "length": 0, + "src_port": "102T", + "dst_port": "2", + "local_peer_port": "102R", + "remote_peer_port": "2", + "used": false, + "c_slots": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], + "l_slots": [101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119 ,120], + "s_slots": [501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519 ,520] + }, + "S3": { + "length": 0, + "src_port": "103T", + "dst_port": "3", + "local_peer_port": "103R", + "remote_peer_port": "3", + "used": false, + "c_slots": [], + "l_slots": [101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119 ,120], + "s_slots": [501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519 ,520] + } + } + } +} diff --git a/src/opticalcontroller/requirements.in b/src/opticalcontroller/requirements.in new file mode 100644 index 0000000000000000000000000000000000000000..fefe604bc6f0d8d84c56817e7e85bb41015240ad --- /dev/null +++ b/src/opticalcontroller/requirements.in @@ -0,0 +1,21 @@ +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# +# 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. + +Flask==1.1.2 +flask-restplus==0.13.0 +itsdangerous==1.1.0 +Jinja2==2.11.3 +MarkupSafe==1.1.1 +numpy==1.23.0 +Werkzeug==0.16.1 diff --git a/src/opticalcontroller/tools.py b/src/opticalcontroller/tools.py new file mode 100644 index 0000000000000000000000000000000000000000..3b3223d81b2fe4e80956c02afae1a71c429493cf --- /dev/null +++ b/src/opticalcontroller/tools.py @@ -0,0 +1,189 @@ +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# +# 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. + +import numpy as np +from variables import * +import json + + +def common_slots(a, b): + return list(np.intersect1d(a, b)) + + +def map_modulation_to_op(mod): + if mod == "DP-QPSK": + return 1 + if mod == "DP-16QAM": + return 7 + if mod == "DP-64QAM": + return 10 + + +def map_band_to_slot(band): + return int(band/12.5) + + +def map_rate_to_slot(rate): + if rate == 100: + mod = "DP-QPSK" + slots = 4 + op = map_modulation_to_op(mod) + return op, slots + if rate == 400: + mod = "DP-16QAM" + slots = 8 + op = map_modulation_to_op(mod) + return op, slots + if rate == 1000: + mod = "DP-64QAM" + slots = 18 + op = map_modulation_to_op(mod) + return op, slots + else: + return 2, 5 + + +def consecutives(x, val): + res = [] + temp = [] + x.sort() + temp.append(x[0]) + y = 1 + for i in range(1, len(x)): + if x[i] == x[i - 1] + 1: + y += 1 + temp.append(x[i]) + else: + if y >= val: + res.extend(temp) + temp = [x[i]] + y = 1 + if i == len(x) - 1 and y >= val: + res.extend(temp) + return res + + +def combine(ls1, ls2): + temp = ls1 + for i in ls2: + if i not in ls1: + temp.append(i) + temp.sort() + return temp + + +def list_in_list(a, b): + # convert list A to numpy array + a_arr = np.array(a) + # convert list B to numpy array + b_arr = np.array(b) + + for i in range(len(b_arr)): + if np.array_equal(a_arr, b_arr[i:i + len(a_arr)]): + return True + return False + + +def reverse_link(link): + s, d = link.split('-') + r_link = "{}-{}".format(d, s) + return r_link + + +def get_slot_frequency(b, n): + if debug: + print(n) + if b == "c_slots": + return Fc + n * 12.5 + if b == "s_slots": + return Fs + n * 12.5 + if b == "l_slots": + return Fl + n * 12.5 + + +def freqency_converter(b, slots): + l = len(slots) + if debug: + print(slots) + if l % 2 == 0: + if debug: + print("pari {}".format(l)) + fx = get_slot_frequency(b, slots[int(l / 2)-1]) + if debug: + print(fx) + #GHz + # #f0 = fx + 6.25 + #MHz + f0 = int((fx + 6.25) * 1000) + else: + f0 = get_slot_frequency(b, slots[int((l + 1) / 2) - 1]) + #GHz + # #return f0, 12.5 * l + # MHz + return f0, int((12.5 * l) * 1000) + + +def readTopologyData(nodes, topology): + nodes_file = open(nodes, 'r') + topo_file = open(topology, 'r') + nodes = json.load(nodes_file) + topo = json.load(topo_file) + print(topo) + nodes_file.close() + topo_file.close() + return nodes, topo + + +def reverse_links(links): + temp_links = links.copy() + temp_links.reverse() + result = [] + for link in temp_links: + [a, b] = link.split("-") + result.append("{}-{}".format(b, a)) + return result + +def get_links_from_node(topology, node): + result = {} + for link in topology["links"]: + if "{}-".format(node) in link["optical_link"]["name"]: + result[link["optical_link"]["name"]] = link + return result + +def get_links_to_node(topology, node): + result = {} + for link in topology["links"]: + if "-{}".format(node) in link["optical_link"]["name"]: + result[link["optical_link"]["name"]] = link + return result + + +def slot_selection(c, l, s, n_slots, Nc, Nl, Ns): + # First Fit + if isinstance(n_slots, int): + slot_c = n_slots + slot_l = n_slots + slot_s = n_slots + else: + slot_c = Nc + slot_l = Nl + slot_s = Ns + if len(c) >= slot_c: + return "c_slots", c[0: slot_c] + elif len(l) >= slot_l: + return "l_slots", l[0: slot_l] + elif len(l) >= slot_s: + return "s_slots", s[0: slot_s] + else: + return None, None diff --git a/src/opticalcontroller/variables.py b/src/opticalcontroller/variables.py new file mode 100644 index 0000000000000000000000000000000000000000..cbb65200f2f0c5ef9cd490c1435fb7a9120e5d63 --- /dev/null +++ b/src/opticalcontroller/variables.py @@ -0,0 +1,32 @@ +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# +# 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. + +debug = 1 + +Fl = 184800 +Fc = 192000 +Fs = 196200 + +Nl = 550 +Nc = 320 +#Nc = 10 +Ns = 720 + +nodes_json = 'json_files/nodes.json' +topology_json = 'json_files/tfs.json' #LAST +#topology_json = 'json_files/optical_TFSworking.json' #LAST +#topology_json = 'json_files/optical_topoTFS.json' +#topology_json = 'json_files/topo_2_links.json' + +testing = 1 diff --git a/src/pathcomp/.gitlab-ci.yml b/src/pathcomp/.gitlab-ci.yml index 05113d0feab441543d6567f3eb3ab1cacac3a971..cc5db9818416d42fb52daf5c6bb29504c3311da4 100644 --- a/src/pathcomp/.gitlab-ci.yml +++ b/src/pathcomp/.gitlab-ci.yml @@ -22,9 +22,9 @@ build pathcomp: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY script: # This first build tags the builder resulting image to prevent being removed by dangling image removal command - - docker build -t "${IMAGE_NAME}-backend:${IMAGE_TAG}-builder" --target builder -f ./src/$IMAGE_NAME/backend/Dockerfile . - - docker build -t "${IMAGE_NAME}-backend:$IMAGE_TAG" -f ./src/$IMAGE_NAME/backend/Dockerfile . - - docker build -t "${IMAGE_NAME}-frontend:$IMAGE_TAG" -f ./src/$IMAGE_NAME/frontend/Dockerfile . + - docker buildx build -t "${IMAGE_NAME}-backend:${IMAGE_TAG}-builder" --target builder -f ./src/$IMAGE_NAME/backend/Dockerfile . + - docker buildx build -t "${IMAGE_NAME}-backend:$IMAGE_TAG" -f ./src/$IMAGE_NAME/backend/Dockerfile . + - docker buildx build -t "${IMAGE_NAME}-frontend:$IMAGE_TAG" -f ./src/$IMAGE_NAME/frontend/Dockerfile . - docker tag "${IMAGE_NAME}-backend:$IMAGE_TAG" "$CI_REGISTRY_IMAGE/${IMAGE_NAME}-backend:$IMAGE_TAG" - docker tag "${IMAGE_NAME}-frontend:$IMAGE_TAG" "$CI_REGISTRY_IMAGE/${IMAGE_NAME}-frontend:$IMAGE_TAG" - docker push "$CI_REGISTRY_IMAGE/${IMAGE_NAME}-backend:$IMAGE_TAG" diff --git a/src/pathcomp/frontend/Dockerfile b/src/pathcomp/frontend/Dockerfile index 955844cf4d80b39fc0913c9c523fd1267ca0fb1d..c2b9a7a7c7892a3dbce4ed1295b1530e292751c6 100644 --- a/src/pathcomp/frontend/Dockerfile +++ b/src/pathcomp/frontend/Dockerfile @@ -54,18 +54,22 @@ RUN rm *.proto RUN find . -type f -exec sed -i -E 's/(import\ .*)_pb2/from . \1_pb2/g' {} \; # Create component sub-folders, get specific Python packages -RUN mkdir -p /var/teraflow/pathcomp -WORKDIR /var/teraflow/pathcomp +RUN mkdir -p /var/teraflow/pathcomp/frontend +WORKDIR /var/teraflow/pathcomp/frontend COPY src/pathcomp/frontend/requirements.in requirements.in RUN pip-compile --quiet --output-file=requirements.txt requirements.in RUN python3 -m pip install -r requirements.txt # Add component files into working directory WORKDIR /var/teraflow +COPY src/pathcomp/__init__.py pathcomp/__init__.py +COPY src/pathcomp/frontend/. pathcomp/frontend/ COPY src/context/__init__.py context/__init__.py COPY src/context/client/. context/client/ COPY src/device/__init__.py device/__init__.py COPY src/device/client/. device/client/ +# Requires entire Forecaster component for the tests +# TODO: Improve testing framework COPY src/forecaster/. forecaster/ COPY src/monitoring/__init__.py monitoring/__init__.py COPY src/monitoring/client/. monitoring/client/ @@ -73,7 +77,6 @@ COPY src/service/__init__.py service/__init__.py COPY src/service/client/. service/client/ COPY src/slice/__init__.py slice/__init__.py COPY src/slice/client/. slice/client/ -COPY src/pathcomp/. pathcomp/ # Start the service ENTRYPOINT ["python", "-m", "pathcomp.frontend.service"] diff --git a/src/policy/.gitlab-ci.yml b/src/policy/.gitlab-ci.yml index 8c326ff16e77e2bfef7e065b1e11921e65ec8e9b..6ec51e86fdb94ce2bcfe316f17612ac92608ea10 100644 --- a/src/policy/.gitlab-ci.yml +++ b/src/policy/.gitlab-ci.yml @@ -24,7 +24,7 @@ build policy: - export IMAGE_TAG=$(grep -m1 '' ./src/$IMAGE_NAME_POLICY/pom.xml | grep -oP '(?<=>).*(?=<)') - echo "IMAGE_TAG=${IMAGE_TAG}" >> ${BUILD_ENV_POLICY} - cat ${BUILD_ENV_POLICY} - - docker build -t "$IMAGE_NAME_POLICY:$IMAGE_TAG" -f ./src/$IMAGE_NAME_POLICY/src/main/docker/Dockerfile.multistage.jvm ./src/$IMAGE_NAME_POLICY/ --target builder + - docker buildx build -t "$IMAGE_NAME_POLICY:$IMAGE_TAG" -f ./src/$IMAGE_NAME_POLICY/src/main/docker/Dockerfile.multistage.jvm ./src/$IMAGE_NAME_POLICY/ --target builder after_script: - docker images --filter="dangling=true" --quiet | xargs -r docker rmi artifacts: @@ -50,7 +50,7 @@ unit_test policy: - docker rm ${REPORTS_CONTAINER} || true script: - echo "Running tests for image ${IMAGE_TAG}" - - docker build -t "$IMAGE_NAME_POLICY:$IMAGE_TAG" -f ./src/$IMAGE_NAME_POLICY/src/main/docker/Dockerfile.multistage.jvm ./src/$IMAGE_NAME_POLICY/ --target unit-test + - docker buildx build -t "$IMAGE_NAME_POLICY:$IMAGE_TAG" -f ./src/$IMAGE_NAME_POLICY/src/main/docker/Dockerfile.multistage.jvm ./src/$IMAGE_NAME_POLICY/ --target unit-test # Transfer JaCoCo and Surefire reports from within tests image - docker create --name ${REPORTS_CONTAINER} "$IMAGE_NAME_POLICY:$IMAGE_TAG" - mkdir -p ${REPORTS_PATH_POLICY} @@ -60,7 +60,7 @@ unit_test policy: - cat ${REPORTS_PATH_POLICY}/coverage.html | grep -o 'Total[^%]*%' | sed 's/<.*>/ /; s/Total/JaCoCo Coverage Total:/' - docker run -v "$(pwd)/src/${IMAGE_NAME_POLICY}:/${IMAGE_NAME_POLICY}" --rm registry.gitlab.com/haynes/jacoco2cobertura:1.0.7 python /opt/cover2cover.py ${IMAGE_NAME_POLICY}/reports/jacoco.xml ${IMAGE_NAME_POLICY}/src/main/java > ${REPORTS_PATH_POLICY}/cobertura.xml # Build final image - - docker build -t "$IMAGE_NAME_POLICY:$IMAGE_TAG" -f ./src/$IMAGE_NAME_POLICY/src/main/docker/Dockerfile.multistage.jvm ./src/$IMAGE_NAME_POLICY/ --target release + - docker buildx build -t "$IMAGE_NAME_POLICY:$IMAGE_TAG" -f ./src/$IMAGE_NAME_POLICY/src/main/docker/Dockerfile.multistage.jvm ./src/$IMAGE_NAME_POLICY/ --target release - docker tag "$IMAGE_NAME_POLICY:$IMAGE_TAG" "$CI_REGISTRY_IMAGE/$IMAGE_NAME_POLICY:$IMAGE_TAG" - docker push "$CI_REGISTRY_IMAGE/$IMAGE_NAME_POLICY:$IMAGE_TAG" after_script: diff --git a/src/policy/.mvn/wrapper/maven-wrapper.properties b/src/policy/.mvn/wrapper/maven-wrapper.properties index ffdc10e59f87823d5abb635aa2e37bf281698e83..abd303b6738e8492a676925355189594fe1528ac 100644 --- a/src/policy/.mvn/wrapper/maven-wrapper.properties +++ b/src/policy/.mvn/wrapper/maven-wrapper.properties @@ -1,2 +1,2 @@ -distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.1/apache-maven-3.8.1-bin.zip +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.2/apache-maven-3.8.2-bin.zip wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar diff --git a/src/policy/pom.xml b/src/policy/pom.xml index ce873a2d8a1078ea00bf47230f4eca17b20f4442..260368259e748fee2d4ea259da67ccf225a20e4d 100644 --- a/src/policy/pom.xml +++ b/src/policy/pom.xml @@ -56,9 +56,10 @@ 3.8.0.2131 2.10.3 2.8.1 - ${quarkus.platform.version} + 3.1.3.Final + 2.16.12.Final - 2.2.2.Final + 3.1.3.Final @@ -151,6 +152,13 @@ quarkus-config-yaml + + org.projectlombok + lombok + 1.18.30 + provided + + org.assertj @@ -277,7 +285,7 @@ io.quarkus quarkus-bootstrap-maven-plugin - ${quarkus-maven-plugin.version} + ${quarkus-bootstrap-maven-version} diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/Serializer.java b/src/policy/src/main/java/org/etsi/tfs/policy/Serializer.java index f777c77209b0d023da5a30270ab472de6117bb59..570a7fb9e5501ce9e81037e7010cdb1c5fc35a94 100644 --- a/src/policy/src/main/java/org/etsi/tfs/policy/Serializer.java +++ b/src/policy/src/main/java/org/etsi/tfs/policy/Serializer.java @@ -25,10 +25,10 @@ import context.ContextOuterClass.DeviceId; import context.ContextOuterClass.DeviceOperationalStatusEnum; import context.ContextOuterClass.Location.LocationCase; import context.ContextOuterClass.Uuid; +import jakarta.inject.Singleton; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; -import javax.inject.Singleton; import kpi_sample_types.KpiSampleTypes; import monitoring.Monitoring; import monitoring.Monitoring.AlarmID; @@ -85,7 +85,6 @@ import org.etsi.tfs.policy.context.model.ServiceTypeEnum; import org.etsi.tfs.policy.context.model.SliceId; import org.etsi.tfs.policy.context.model.TopologyId; import org.etsi.tfs.policy.kpi_sample_types.model.KpiSampleType; -import org.etsi.tfs.policy.model.*; import org.etsi.tfs.policy.monitoring.model.AlarmDescriptor; import org.etsi.tfs.policy.monitoring.model.AlarmResponse; import org.etsi.tfs.policy.monitoring.model.AlarmSubscription; @@ -101,6 +100,21 @@ import org.etsi.tfs.policy.monitoring.model.MonitorKpiRequest; import org.etsi.tfs.policy.monitoring.model.StringKpiValue; import org.etsi.tfs.policy.monitoring.model.SubsDescriptor; import org.etsi.tfs.policy.monitoring.model.SubsResponse; +import org.etsi.tfs.policy.policy.model.*; +import org.etsi.tfs.policy.policy.model.BooleanOperator; +import org.etsi.tfs.policy.policy.model.NumericalOperator; +import org.etsi.tfs.policy.policy.model.PolicyRule; +import org.etsi.tfs.policy.policy.model.PolicyRuleAction; +import org.etsi.tfs.policy.policy.model.PolicyRuleActionConfig; +import org.etsi.tfs.policy.policy.model.PolicyRuleActionEnum; +import org.etsi.tfs.policy.policy.model.PolicyRuleBasic; +import org.etsi.tfs.policy.policy.model.PolicyRuleCondition; +import org.etsi.tfs.policy.policy.model.PolicyRuleDevice; +import org.etsi.tfs.policy.policy.model.PolicyRuleService; +import org.etsi.tfs.policy.policy.model.PolicyRuleState; +import org.etsi.tfs.policy.policy.model.PolicyRuleStateEnum; +import org.etsi.tfs.policy.policy.model.PolicyRuleTypeDevice; +import org.etsi.tfs.policy.policy.model.PolicyRuleTypeService; import policy.Policy; import policy.Policy.PolicyRuleId; import policy.PolicyAction; diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/SimpleLivenessCheck.java b/src/policy/src/main/java/org/etsi/tfs/policy/SimpleLivenessCheck.java index b03d92076d04cf4d0c4a8985a4439b78fbf51cc4..294bb76abed9ff0738d67f57380a9643bdab5d61 100644 --- a/src/policy/src/main/java/org/etsi/tfs/policy/SimpleLivenessCheck.java +++ b/src/policy/src/main/java/org/etsi/tfs/policy/SimpleLivenessCheck.java @@ -16,7 +16,7 @@ package org.etsi.tfs.policy; -import javax.enterprise.context.ApplicationScoped; +import jakarta.enterprise.context.ApplicationScoped; import org.eclipse.microprofile.health.HealthCheck; import org.eclipse.microprofile.health.HealthCheckResponse; import org.eclipse.microprofile.health.Liveness; diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/SimpleReadinessCheck.java b/src/policy/src/main/java/org/etsi/tfs/policy/SimpleReadinessCheck.java index 93728b48c8e66fdd93659f11be3d79f96572cd40..8ffcf9a19ba62b9bbc336b779add0577e8cf16ae 100644 --- a/src/policy/src/main/java/org/etsi/tfs/policy/SimpleReadinessCheck.java +++ b/src/policy/src/main/java/org/etsi/tfs/policy/SimpleReadinessCheck.java @@ -16,7 +16,7 @@ package org.etsi.tfs.policy; -import javax.enterprise.context.ApplicationScoped; +import jakarta.enterprise.context.ApplicationScoped; import org.eclipse.microprofile.health.HealthCheck; import org.eclipse.microprofile.health.HealthCheckResponse; import org.eclipse.microprofile.health.Readiness; diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/common/ApplicationProperties.java b/src/policy/src/main/java/org/etsi/tfs/policy/common/ApplicationProperties.java new file mode 100644 index 0000000000000000000000000000000000000000..daedca1f1ad7bf0bbfb1cb54615796164694d60c --- /dev/null +++ b/src/policy/src/main/java/org/etsi/tfs/policy/common/ApplicationProperties.java @@ -0,0 +1,59 @@ +/* +* Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +* +* 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.etsi.tfs.policy.common; + +import org.etsi.tfs.policy.policy.model.PolicyRuleState; +import org.etsi.tfs.policy.policy.model.PolicyRuleStateEnum; + +public class ApplicationProperties { + + public static final String INVALID_MESSAGE = "%s is invalid."; + public static final String VALID_MESSAGE = "%s is valid."; + + public static final PolicyRuleState INSERTED_POLICYRULE_STATE = + new PolicyRuleState( + PolicyRuleStateEnum.POLICY_INSERTED, "Successfully entered to INSERTED state"); + public static final PolicyRuleState VALIDATED_POLICYRULE_STATE = + new PolicyRuleState( + PolicyRuleStateEnum.POLICY_VALIDATED, "Successfully transitioned to VALIDATED state"); + public static final PolicyRuleState PROVISIONED_POLICYRULE_STATE = + new PolicyRuleState( + PolicyRuleStateEnum.POLICY_PROVISIONED, + "Successfully transitioned from VALIDATED to PROVISIONED state"); + public static final PolicyRuleState ACTIVE_POLICYRULE_STATE = + new PolicyRuleState( + PolicyRuleStateEnum.POLICY_ACTIVE, + "Successfully transitioned from PROVISIONED to ACTIVE state"); + public static final PolicyRuleState ENFORCED_POLICYRULE_STATE = + new PolicyRuleState( + PolicyRuleStateEnum.POLICY_ENFORCED, + "Successfully transitioned from ACTIVE to ENFORCED state"); + public static final PolicyRuleState INEFFECTIVE_POLICYRULE_STATE = + new PolicyRuleState( + PolicyRuleStateEnum.POLICY_INEFFECTIVE, + "Transitioned from ENFORCED to INEFFECTIVE state"); + public static final PolicyRuleState EFFECTIVE_POLICYRULE_STATE = + new PolicyRuleState( + PolicyRuleStateEnum.POLICY_EFFECTIVE, + "Successfully transitioned from ENFORCED to EFFECTIVE state"); + public static final PolicyRuleState UPDATED_POLICYRULE_STATE = + new PolicyRuleState( + PolicyRuleStateEnum.POLICY_UPDATED, "Successfully entered to UPDATED state"); + public static final PolicyRuleState REMOVED_POLICYRULE_STATE = + new PolicyRuleState( + PolicyRuleStateEnum.POLICY_REMOVED, "Successfully entered to REMOVED state"); +} diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/context/ContextGateway.java b/src/policy/src/main/java/org/etsi/tfs/policy/context/ContextGateway.java index 42c82baa40a5b700a0f25852718ea05ae273f40b..8326775833ed3256a66a8d54d5169bab5b87a71e 100644 --- a/src/policy/src/main/java/org/etsi/tfs/policy/context/ContextGateway.java +++ b/src/policy/src/main/java/org/etsi/tfs/policy/context/ContextGateway.java @@ -21,7 +21,7 @@ import org.etsi.tfs.policy.context.model.Device; import org.etsi.tfs.policy.context.model.Empty; import org.etsi.tfs.policy.context.model.Service; import org.etsi.tfs.policy.context.model.ServiceId; -import org.etsi.tfs.policy.model.PolicyRule; +import org.etsi.tfs.policy.policy.model.PolicyRule; public interface ContextGateway { diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/context/ContextGatewayImpl.java b/src/policy/src/main/java/org/etsi/tfs/policy/context/ContextGatewayImpl.java index 7a5c6345563ec58862ce86a1233151706db6d16e..4ee57445ff11bf841ab5c09c635f21e5447c364d 100644 --- a/src/policy/src/main/java/org/etsi/tfs/policy/context/ContextGatewayImpl.java +++ b/src/policy/src/main/java/org/etsi/tfs/policy/context/ContextGatewayImpl.java @@ -20,14 +20,14 @@ import context.MutinyContextServiceGrpc.MutinyContextServiceStub; import context_policy.MutinyContextPolicyServiceGrpc.MutinyContextPolicyServiceStub; import io.quarkus.grpc.GrpcClient; import io.smallrye.mutiny.Uni; -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; import org.etsi.tfs.policy.Serializer; import org.etsi.tfs.policy.context.model.Device; import org.etsi.tfs.policy.context.model.Empty; import org.etsi.tfs.policy.context.model.Service; import org.etsi.tfs.policy.context.model.ServiceId; -import org.etsi.tfs.policy.model.PolicyRule; +import org.etsi.tfs.policy.policy.model.PolicyRule; @ApplicationScoped public class ContextGatewayImpl implements ContextGateway { diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/context/ContextService.java b/src/policy/src/main/java/org/etsi/tfs/policy/context/ContextService.java index a8a81ed313d9106fea018d32c53445a8bd27ece5..ae1dff4c214bd92e7cbbfe08e29a521b9de59b2b 100644 --- a/src/policy/src/main/java/org/etsi/tfs/policy/context/ContextService.java +++ b/src/policy/src/main/java/org/etsi/tfs/policy/context/ContextService.java @@ -21,7 +21,7 @@ import org.etsi.tfs.policy.context.model.Device; import org.etsi.tfs.policy.context.model.Empty; import org.etsi.tfs.policy.context.model.Service; import org.etsi.tfs.policy.context.model.ServiceId; -import org.etsi.tfs.policy.model.PolicyRule; +import org.etsi.tfs.policy.policy.model.PolicyRule; public interface ContextService { diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/context/ContextServiceImpl.java b/src/policy/src/main/java/org/etsi/tfs/policy/context/ContextServiceImpl.java index 662ded654f36acbd6bf70fdc4a29f335fa246bf9..b9c733b2b106c988a68a02c62e90757bfa85abe1 100644 --- a/src/policy/src/main/java/org/etsi/tfs/policy/context/ContextServiceImpl.java +++ b/src/policy/src/main/java/org/etsi/tfs/policy/context/ContextServiceImpl.java @@ -17,13 +17,13 @@ package org.etsi.tfs.policy.context; import io.smallrye.mutiny.Uni; -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; import org.etsi.tfs.policy.context.model.Device; import org.etsi.tfs.policy.context.model.Empty; import org.etsi.tfs.policy.context.model.Service; import org.etsi.tfs.policy.context.model.ServiceId; -import org.etsi.tfs.policy.model.PolicyRule; +import org.etsi.tfs.policy.policy.model.PolicyRule; @ApplicationScoped public class ContextServiceImpl implements ContextService { diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/device/DeviceGatewayImpl.java b/src/policy/src/main/java/org/etsi/tfs/policy/device/DeviceGatewayImpl.java index 7233e8c02340813f53fbf7621fbc3f0f8cb5bd8d..322273dae46ee6e1b6194399fe5f310c7a9c56c5 100644 --- a/src/policy/src/main/java/org/etsi/tfs/policy/device/DeviceGatewayImpl.java +++ b/src/policy/src/main/java/org/etsi/tfs/policy/device/DeviceGatewayImpl.java @@ -19,8 +19,8 @@ package org.etsi.tfs.policy.device; import device.DeviceService; import io.quarkus.grpc.GrpcClient; import io.smallrye.mutiny.Uni; -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; import org.etsi.tfs.policy.Serializer; import org.etsi.tfs.policy.context.model.Device; import org.etsi.tfs.policy.context.model.DeviceConfig; diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/device/DeviceServiceImpl.java b/src/policy/src/main/java/org/etsi/tfs/policy/device/DeviceServiceImpl.java index ce6f82237b6b4ab00d016d3f669039a766fd53c6..e2c0f1b0f7801e9a332cb0783d50b21b5a68f7cd 100644 --- a/src/policy/src/main/java/org/etsi/tfs/policy/device/DeviceServiceImpl.java +++ b/src/policy/src/main/java/org/etsi/tfs/policy/device/DeviceServiceImpl.java @@ -17,8 +17,8 @@ package org.etsi.tfs.policy.device; import io.smallrye.mutiny.Uni; -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; import org.etsi.tfs.policy.context.model.Device; import org.etsi.tfs.policy.context.model.DeviceConfig; import org.etsi.tfs.policy.context.model.Empty; diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/exception/ExternalServiceFailureException.java b/src/policy/src/main/java/org/etsi/tfs/policy/exception/ExternalServiceFailureException.java new file mode 100644 index 0000000000000000000000000000000000000000..5b45d04999ddc26ca06d49bc25f1f538d7f05959 --- /dev/null +++ b/src/policy/src/main/java/org/etsi/tfs/policy/exception/ExternalServiceFailureException.java @@ -0,0 +1,28 @@ +/* +* Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +* +* 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.etsi.tfs.policy.exception; + +public class ExternalServiceFailureException extends RuntimeException { + + public ExternalServiceFailureException(String message, Exception e) { + super(message, e); + } + + public ExternalServiceFailureException(String message) { + super(message); + } +} diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/exception/GeneralExceptionHandler.java b/src/policy/src/main/java/org/etsi/tfs/policy/exception/GeneralExceptionHandler.java new file mode 100644 index 0000000000000000000000000000000000000000..35b05666e3e489fec89ffeb24461f6d15b6bd102 --- /dev/null +++ b/src/policy/src/main/java/org/etsi/tfs/policy/exception/GeneralExceptionHandler.java @@ -0,0 +1,58 @@ +/* +* Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +* +* 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.etsi.tfs.policy.exception; + +import io.grpc.Metadata; +import io.grpc.ServerCall; +import io.grpc.Status; +import io.grpc.StatusRuntimeException; +import io.quarkus.grpc.ExceptionHandler; +import io.quarkus.grpc.ExceptionHandlerProvider; +import jakarta.enterprise.context.ApplicationScoped; + +@ApplicationScoped +public class GeneralExceptionHandler implements ExceptionHandlerProvider { + @Override + public ExceptionHandler createHandler( + ServerCall.Listener listener, ServerCall serverCall, Metadata metadata) { + return new HelloExceptionHandler<>(listener, serverCall, metadata); + } + + @Override + public Throwable transform(Throwable t) { + if (t instanceof ExternalServiceFailureException) { + return new StatusRuntimeException(Status.INTERNAL.withDescription(t.getMessage())); + } else { + return ExceptionHandlerProvider.toStatusException(t, true); + } + } + + private static class HelloExceptionHandler extends ExceptionHandler { + public HelloExceptionHandler( + ServerCall.Listener listener, ServerCall call, Metadata metadata) { + super(listener, call, metadata); + } + + @Override + protected void handleException(Throwable t, ServerCall call, Metadata metadata) { + StatusRuntimeException sre = + (StatusRuntimeException) ExceptionHandlerProvider.toStatusException(t, true); + Metadata trailers = sre.getTrailers() != null ? sre.getTrailers() : metadata; + call.close(sre.getStatus(), trailers); + } + } +} diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/monitoring/MonitoringGatewayImpl.java b/src/policy/src/main/java/org/etsi/tfs/policy/monitoring/MonitoringGatewayImpl.java index 3c16dff7e12532f3c33f1c2890befabfa679ebe9..25cdb92e8dd9dc9651d0bc8d3a5feb9ba5c45de4 100644 --- a/src/policy/src/main/java/org/etsi/tfs/policy/monitoring/MonitoringGatewayImpl.java +++ b/src/policy/src/main/java/org/etsi/tfs/policy/monitoring/MonitoringGatewayImpl.java @@ -19,8 +19,8 @@ package org.etsi.tfs.policy.monitoring; import io.quarkus.grpc.GrpcClient; import io.smallrye.mutiny.Multi; import io.smallrye.mutiny.Uni; -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; import monitoring.MutinyMonitoringServiceGrpc.MutinyMonitoringServiceStub; import org.etsi.tfs.policy.Serializer; import org.etsi.tfs.policy.context.model.Empty; diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/monitoring/MonitoringServiceImpl.java b/src/policy/src/main/java/org/etsi/tfs/policy/monitoring/MonitoringServiceImpl.java index 4da193b1dbb94e41c44031976968afd04a86e4fd..7d91a9dd154377d47e1591c7c96f8300c4b2c762 100644 --- a/src/policy/src/main/java/org/etsi/tfs/policy/monitoring/MonitoringServiceImpl.java +++ b/src/policy/src/main/java/org/etsi/tfs/policy/monitoring/MonitoringServiceImpl.java @@ -18,8 +18,8 @@ package org.etsi.tfs.policy.monitoring; import io.smallrye.mutiny.Multi; import io.smallrye.mutiny.Uni; -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; import org.etsi.tfs.policy.context.model.Empty; import org.etsi.tfs.policy.monitoring.model.AlarmDescriptor; import org.etsi.tfs.policy.monitoring.model.AlarmResponse; diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/policy/PolicyGateway.java b/src/policy/src/main/java/org/etsi/tfs/policy/policy/PolicyGateway.java new file mode 100644 index 0000000000000000000000000000000000000000..dfd48c7c4987641b678c9ba6a63362cddba527d9 --- /dev/null +++ b/src/policy/src/main/java/org/etsi/tfs/policy/policy/PolicyGateway.java @@ -0,0 +1,21 @@ +/* +* Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +* +* 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.etsi.tfs.policy.policy; + +import policy.PolicyService; + +public interface PolicyGateway extends PolicyService {} diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/policy/PolicyGatewayImpl.java b/src/policy/src/main/java/org/etsi/tfs/policy/policy/PolicyGatewayImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..9c3a2a4c9f8697bf16c9b6b2223bc38ed1477e2d --- /dev/null +++ b/src/policy/src/main/java/org/etsi/tfs/policy/policy/PolicyGatewayImpl.java @@ -0,0 +1,130 @@ +/* +* Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +* +* 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.etsi.tfs.policy.policy; + +import context.ContextOuterClass.ServiceId; +import io.quarkus.grpc.GrpcService; +import io.smallrye.mutiny.Uni; +import jakarta.inject.Inject; +import org.eclipse.microprofile.metrics.MetricUnits; +import org.eclipse.microprofile.metrics.annotation.Counted; +import org.eclipse.microprofile.metrics.annotation.Timed; +import org.etsi.tfs.policy.Serializer; +import policy.Policy; +import policy.Policy.PolicyRuleBasic; +import policy.Policy.PolicyRuleDevice; +import policy.Policy.PolicyRuleId; +import policy.Policy.PolicyRuleService; +import policy.Policy.PolicyRuleServiceList; +import policy.Policy.PolicyRuleState; + +@GrpcService +public class PolicyGatewayImpl implements PolicyGateway { + + private final PolicyService policyService; + private final Serializer serializer; + + @Inject + public PolicyGatewayImpl(PolicyService policyService, Serializer serializer) { + this.policyService = policyService; + this.serializer = serializer; + } + + @Override + @Counted(name = "policy_policyAddService_counter") + @Timed(name = "policy_policyAddService_histogram", unit = MetricUnits.MILLISECONDS) + public Uni policyAddService(PolicyRuleService request) { + final var policyRuleService = serializer.deserialize(request); + + return policyService + .addPolicyService(policyRuleService) + .onItem() + .transform(serializer::serialize); + } + + @Override + @Counted(name = "policy_policyUpdateService_counter") + @Timed(name = "policy_policyUpdateService_histogram", unit = MetricUnits.MILLISECONDS) + public Uni policyUpdateService(PolicyRuleService request) { + final var policyRuleService = serializer.deserialize(request); + + return policyService + .updatePolicyService(policyRuleService) + .onItem() + .transform(serializer::serialize); + } + + @Override + @Counted(name = "policy_policyAddDevice_counter") + @Timed(name = "policy_policyAddDevice_histogram", unit = MetricUnits.MILLISECONDS) + public Uni policyAddDevice(PolicyRuleDevice request) { + final var policyRuleDevice = serializer.deserialize(request); + + return policyService + .addPolicyDevice(policyRuleDevice) + .onItem() + .transform(serializer::serialize); + } + + @Override + @Counted(name = "policy_policyUpdateDevice_counter") + @Timed(name = "policy_policyUpdateDevice_histogram", unit = MetricUnits.MILLISECONDS) + public Uni policyUpdateDevice(PolicyRuleDevice request) { + final var policyRuleDevice = serializer.deserialize(request); + + return policyService + .updatePolicyDevice(policyRuleDevice) + .onItem() + .transform(serializer::serialize); + } + + @Override + @Counted(name = "policy_policyDelete_counter") + @Timed(name = "policy_policyDelete_histogram", unit = MetricUnits.MILLISECONDS) + public Uni policyDelete(PolicyRuleId request) { + final var policyRuleId = serializer.deserialize(request); + + return policyService.deletePolicy(policyRuleId).onItem().transform(serializer::serialize); + } + + @Override + @Counted(name = "policy_getPolicyService_counter") + @Timed(name = "policy_getPolicyService_histogram", unit = MetricUnits.MILLISECONDS) + public Uni getPolicyService(PolicyRuleId request) { + final var policyRuleBasic = PolicyRuleBasic.newBuilder().setPolicyRuleId(request).build(); + + return Uni.createFrom() + .item(() -> PolicyRuleService.newBuilder().setPolicyRuleBasic(policyRuleBasic).build()); + } + + @Override + @Counted(name = "policy_getPolicyDevice_counter") + @Timed(name = "policy_getPolicyDevice_histogram", unit = MetricUnits.MILLISECONDS) + public Uni getPolicyDevice(PolicyRuleId request) { + final var policyRuleBasic = PolicyRuleBasic.newBuilder().setPolicyRuleId(request).build(); + + return Uni.createFrom() + .item(() -> PolicyRuleDevice.newBuilder().setPolicyRuleBasic(policyRuleBasic).build()); + } + + @Override + @Counted(name = "policy_getPolicyByServiceId_counter") + @Timed(name = "policy_getPolicyByServiceId_histogram", unit = MetricUnits.MILLISECONDS) + public Uni getPolicyByServiceId(ServiceId request) { + return Uni.createFrom().item(() -> Policy.PolicyRuleServiceList.newBuilder().build()); + } +} diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/policy/PolicyService.java b/src/policy/src/main/java/org/etsi/tfs/policy/policy/PolicyService.java new file mode 100644 index 0000000000000000000000000000000000000000..ec8e3e3e96a1cd8eb66123e7e691e2dadaf290c3 --- /dev/null +++ b/src/policy/src/main/java/org/etsi/tfs/policy/policy/PolicyService.java @@ -0,0 +1,35 @@ +/* +* Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +* +* 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.etsi.tfs.policy.policy; + +import io.smallrye.mutiny.Uni; +import org.etsi.tfs.policy.policy.model.PolicyRuleDevice; +import org.etsi.tfs.policy.policy.model.PolicyRuleService; +import org.etsi.tfs.policy.policy.model.PolicyRuleState; + +public interface PolicyService { + + Uni addPolicyService(PolicyRuleService policyRuleService); + + Uni updatePolicyService(PolicyRuleService policyRuleService); + + Uni addPolicyDevice(PolicyRuleDevice policyRuleDevice); + + Uni updatePolicyDevice(PolicyRuleDevice policyRuleDevice); + + Uni deletePolicy(String policyRuleId); +} diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/policy/PolicyServiceImpl.java b/src/policy/src/main/java/org/etsi/tfs/policy/policy/PolicyServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..c756f8a2a573780ff27295ce710d4acb7379f756 --- /dev/null +++ b/src/policy/src/main/java/org/etsi/tfs/policy/policy/PolicyServiceImpl.java @@ -0,0 +1,983 @@ +/* +* Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +* +* 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.etsi.tfs.policy.policy; + +import static org.etsi.tfs.policy.common.ApplicationProperties.*; + +import io.smallrye.mutiny.Multi; +import io.smallrye.mutiny.Uni; +import io.smallrye.mutiny.groups.UniJoin; +import io.smallrye.mutiny.subscription.Cancellable; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; +import java.time.Instant; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Random; +import java.util.concurrent.ConcurrentHashMap; +import java.util.function.Function; +import org.etsi.tfs.policy.context.ContextService; +import org.etsi.tfs.policy.context.model.ConfigActionEnum; +import org.etsi.tfs.policy.context.model.ConfigRule; +import org.etsi.tfs.policy.context.model.ConfigRuleCustom; +import org.etsi.tfs.policy.context.model.ConfigRuleTypeCustom; +import org.etsi.tfs.policy.context.model.Constraint; +import org.etsi.tfs.policy.context.model.ConstraintCustom; +import org.etsi.tfs.policy.context.model.ConstraintTypeCustom; +import org.etsi.tfs.policy.context.model.ServiceConfig; +import org.etsi.tfs.policy.context.model.ServiceId; +import org.etsi.tfs.policy.device.DeviceService; +import org.etsi.tfs.policy.exception.ExternalServiceFailureException; +import org.etsi.tfs.policy.monitoring.MonitoringService; +import org.etsi.tfs.policy.monitoring.model.AlarmDescriptor; +import org.etsi.tfs.policy.monitoring.model.AlarmResponse; +import org.etsi.tfs.policy.monitoring.model.AlarmSubscription; +import org.etsi.tfs.policy.monitoring.model.KpiValueRange; +import org.etsi.tfs.policy.policy.model.BooleanOperator; +import org.etsi.tfs.policy.policy.model.PolicyRule; +import org.etsi.tfs.policy.policy.model.PolicyRuleAction; +import org.etsi.tfs.policy.policy.model.PolicyRuleActionConfig; +import org.etsi.tfs.policy.policy.model.PolicyRuleActionEnum; +import org.etsi.tfs.policy.policy.model.PolicyRuleBasic; +import org.etsi.tfs.policy.policy.model.PolicyRuleCondition; +import org.etsi.tfs.policy.policy.model.PolicyRuleDevice; +import org.etsi.tfs.policy.policy.model.PolicyRuleService; +import org.etsi.tfs.policy.policy.model.PolicyRuleState; +import org.etsi.tfs.policy.policy.model.PolicyRuleStateEnum; +import org.etsi.tfs.policy.policy.model.PolicyRuleTypeDevice; +import org.etsi.tfs.policy.policy.model.PolicyRuleTypeService; +import org.etsi.tfs.policy.policy.service.PolicyRuleConditionFieldsGetter; +import org.etsi.tfs.policy.policy.service.PolicyRuleConditionValidator; +import org.etsi.tfs.policy.service.ServiceService; +import org.jboss.logging.Logger; + +@ApplicationScoped +public class PolicyServiceImpl implements PolicyService { + + private static final Logger LOGGER = Logger.getLogger(PolicyServiceImpl.class); + + private static final int POLICY_EVALUATION_TIMEOUT = 5; + private static final int ACCEPTABLE_NUMBER_OF_ALARMS = 3; + private static final int MONITORING_WINDOW_IN_SECONDS = 5; + private static final int SAMPLING_RATE_PER_SECOND = 1; + // TODO: Find a better way to disregard alarms while reconfiguring path + // Temporary solution for not calling the same rpc more than it's needed + private static int noAlarms = 0; + + private final ContextService contextService; + private final MonitoringService monitoringService; + private final ServiceService serviceService; + private final DeviceService deviceService; + private final PolicyRuleConditionValidator policyRuleConditionValidator; + private final PolicyRuleConditionFieldsGetter policyRuleConditionFieldsGetter; + + private HashMap policyRuleActionMap = new HashMap<>(); + private ConcurrentHashMap alarmPolicyRuleServiceMap = + new ConcurrentHashMap<>(); + private ConcurrentHashMap alarmPolicyRuleDeviceMap = + new ConcurrentHashMap<>(); + private ConcurrentHashMap subscriptionList = new ConcurrentHashMap<>(); + + @Inject + public PolicyServiceImpl( + ContextService contextService, + MonitoringService monitoringService, + ServiceService serviceService, + DeviceService deviceService, + PolicyRuleConditionValidator policyRuleConditionValidator, + PolicyRuleConditionFieldsGetter policyRuleConditionFieldsGetter) { + this.contextService = contextService; + this.monitoringService = monitoringService; + this.serviceService = serviceService; + this.deviceService = deviceService; + this.policyRuleConditionValidator = policyRuleConditionValidator; + this.policyRuleConditionFieldsGetter = policyRuleConditionFieldsGetter; + } + + private static String gen() { + Random r = new Random(System.currentTimeMillis()); + return String.valueOf((1 + r.nextInt(2)) * 10000 + r.nextInt(10000)); + } + + private static double getTimeStamp() { + long now = Instant.now().getEpochSecond(); + return Long.valueOf(now).doubleValue(); + } + + @Override + public Uni addPolicyService(PolicyRuleService policyRuleService) { + LOGGER.infof("Received %s", policyRuleService); + + if (!policyRuleService.areArgumentsValid()) { + LOGGER.error(policyRuleService.getExceptionMessage()); + final var policyRuleState = + new PolicyRuleState( + PolicyRuleStateEnum.POLICY_FAILED, policyRuleService.getExceptionMessage()); + + return Uni.createFrom().item(policyRuleState); + } + + final var policyRuleBasic = policyRuleService.getPolicyRuleBasic(); + if (!policyRuleBasic.areArgumentsValid()) { + LOGGER.error(policyRuleService.getExceptionMessage()); + final var policyRuleState = + new PolicyRuleState( + PolicyRuleStateEnum.POLICY_FAILED, policyRuleBasic.getExceptionMessage()); + return Uni.createFrom().item(policyRuleState); + } + + final var serviceId = policyRuleService.getServiceId(); + final var deviceIds = policyRuleService.getDeviceIds(); + final var isServiceValid = policyRuleConditionValidator.isServiceIdValid(serviceId, deviceIds); + + return isServiceValid + .onFailure() + .transform(failure -> new ExternalServiceFailureException(failure.getMessage())) + .onItem() + .transform( + isService -> + constructPolicyStateBasedOnCriteria( + isService, serviceId, policyRuleService, policyRuleBasic)) + .flatMap(Function.identity()); + } + + private Uni constructPolicyStateBasedOnCriteria( + Boolean isService, + ServiceId serviceId, + PolicyRuleService policyRuleService, + PolicyRuleBasic policyRuleBasic) { + + if (!isService) { + var policyRuleState = + new PolicyRuleState( + PolicyRuleStateEnum.POLICY_FAILED, String.format(INVALID_MESSAGE, serviceId)); + + return Uni.createFrom().item(policyRuleState); + } + + final var policyRuleTypeService = new PolicyRuleTypeService(policyRuleService); + final var policyRule = new PolicyRule(policyRuleTypeService); + final var alarmDescriptorList = createAlarmDescriptorList(policyRule); + + if (alarmDescriptorList.isEmpty()) { + var policyRuleState = + new PolicyRuleState( + PolicyRuleStateEnum.POLICY_FAILED, + String.format( + "Invalid PolicyRuleConditions in PolicyRule with ID: %s", + policyRuleBasic.getPolicyRuleId())); + return Uni.createFrom().item(policyRuleState); + } + + return setPolicyRuleOnContextAndReturnState(policyRule, policyRuleService, alarmDescriptorList); + } + + private Uni setPolicyRuleOnContextAndReturnState( + PolicyRule policyRule, + PolicyRuleService policyRuleService, + List alarmDescriptorList) { + return contextService + .setPolicyRule(policyRule) + .onFailure() + .transform(failure -> new ExternalServiceFailureException(failure.getMessage())) + .onItem() + .transform( + policyId -> { + startMonitoringBasedOnAlarmDescriptors( + policyId, policyRuleService, alarmDescriptorList); + + return VALIDATED_POLICYRULE_STATE; + }); + } + + private void startMonitoringBasedOnAlarmDescriptors( + String policyId, + PolicyRuleService policyRuleService, + List alarmDescriptorList) { + setPolicyRuleServiceToContext(policyRuleService, VALIDATED_POLICYRULE_STATE); + noAlarms = 0; + + List> alarmIds = + createAlarmList(alarmDescriptorList); // setAllarmtomonitoring get back alarmid + + List> alarmResponseStreamList = + transformAlarmIds(alarmIds, policyRuleService); + + // Merge the promised alarms into one stream (Multi Object) + final var multi = Multi.createBy().merging().streams(alarmResponseStreamList); + setPolicyRuleServiceToContext(policyRuleService, PROVISIONED_POLICYRULE_STATE); + + subscriptionList.put(policyId, monitorAlarmResponseForService(multi)); + + // TODO: Resubscribe to the stream, if it has ended + + // TODO: Redesign evaluation of action + // evaluateAction(policyRule, alarmDescriptorList, multi); + } + + /** + * Transform the alarmIds into promised alarms returned from the getAlarmResponseStream + * + * @param alarmIds the list of alarm ids + * @param policyRuleService the policy rule service + * @return + */ + private List> transformAlarmIds( + List> alarmIds, PolicyRuleService policyRuleService) { + List> alarmResponseStreamList = new ArrayList<>(); + for (Uni alarmId : alarmIds) { + Multi alarmResponseStream = + alarmId.onItem().transformToMulti(id -> setPolicyMonitor(policyRuleService, id)); + + alarmResponseStreamList.add(alarmResponseStream); + } + return alarmResponseStreamList; + } + + private Multi setPolicyMonitor(PolicyRuleService policyRuleService, String id) { + alarmPolicyRuleServiceMap.put(id, policyRuleService); + + // TODO: Create infinite subscription + var alarmSubscription = new AlarmSubscription(id, 259200, 5000); + return monitoringService.getAlarmResponseStream(alarmSubscription); + } + + /** + * Create an alarmIds list that contains the promised ids returned from setKpiAlarm + * + * @param alarmDescriptorList the list of alarm descriptors + * @return the list of alarm descriptors + */ + public List> createAlarmList(List alarmDescriptorList) { + List> alarmIds = new ArrayList>(); + for (AlarmDescriptor alarmDescriptor : alarmDescriptorList) { + LOGGER.infof("alarmDescriptor:"); + LOGGER.infof(alarmDescriptor.toString()); + alarmIds.add(monitoringService.setKpiAlarm(alarmDescriptor)); + } + return alarmIds; + } + + @Override + public Uni addPolicyDevice(PolicyRuleDevice policyRuleDevice) { + LOGGER.infof("Received %s", policyRuleDevice); + + if (!policyRuleDevice.areArgumentsValid()) { + LOGGER.error(policyRuleDevice.getExceptionMessage()); + final var policyRuleState = + new PolicyRuleState( + PolicyRuleStateEnum.POLICY_FAILED, policyRuleDevice.getExceptionMessage()); + + return Uni.createFrom().item(policyRuleState); + } + + final var policyRuleBasic = policyRuleDevice.getPolicyRuleBasic(); + if (!policyRuleBasic.areArgumentsValid()) { + LOGGER.error(policyRuleDevice.getExceptionMessage()); + final var policyRuleState = + new PolicyRuleState( + PolicyRuleStateEnum.POLICY_FAILED, policyRuleBasic.getExceptionMessage()); + return Uni.createFrom().item(policyRuleState); + } + + final var deviceIds = policyRuleDevice.getDeviceIds(); + final var areDevicesValid = returnInvalidDeviceIds(deviceIds); + + return areDevicesValid + .onFailure() + .transform(failure -> new ExternalServiceFailureException(failure.getMessage())) + .onItem() + .transform(areDevices -> areDeviceOnContext(areDevices, policyRuleDevice, policyRuleBasic)) + .flatMap(Function.identity()); + } + + private Uni areDeviceOnContext( + List areDevices, + PolicyRuleDevice policyRuleDevice, + PolicyRuleBasic policyRuleBasic) { + if (areDevices.contains(false)) { + var policyRuleState = + new PolicyRuleState( + PolicyRuleStateEnum.POLICY_FAILED, + String.format( + INVALID_MESSAGE, policyRuleDevice.getPolicyRuleBasic().getPolicyRuleId())); + + return Uni.createFrom().item(policyRuleState); + } + + final var policyRuleTypeDevice = new PolicyRuleTypeDevice(policyRuleDevice); + final var policyRule = new PolicyRule(policyRuleTypeDevice); + + final var alarmDescriptorList = createAlarmDescriptorList(policyRule); + if (alarmDescriptorList.isEmpty()) { + var policyRuleState = + new PolicyRuleState( + PolicyRuleStateEnum.POLICY_FAILED, + String.format( + "Invalid PolicyRuleConditions in PolicyRule with ID: %s", + policyRuleBasic.getPolicyRuleId())); + return Uni.createFrom().item(policyRuleState); + } + + return contextService + .setPolicyRule(policyRule) + .onFailure() + .transform(failure -> new ExternalServiceFailureException(failure.getMessage())) + .onItem() + .transform( + policyId -> { + startMonitoringBasedOnAlarmDescriptors( + policyId, policyRuleDevice, alarmDescriptorList); + return VALIDATED_POLICYRULE_STATE; + }); + } + + private void startMonitoringBasedOnAlarmDescriptors( + String policyId, + PolicyRuleDevice policyRuleDevice, + List alarmDescriptorList) { + setPolicyRuleDeviceToContext(policyRuleDevice, VALIDATED_POLICYRULE_STATE); + noAlarms = 0; + + List> alarmIds = getAlarmIds(alarmDescriptorList); + + List> alarmResponseStreamList = + getAlarmResponse(alarmIds, policyRuleDevice); + + // Merge the promised alarms into one stream (Multi Object) + final var multi = Multi.createBy().merging().streams(alarmResponseStreamList); + setPolicyRuleDeviceToContext(policyRuleDevice, PROVISIONED_POLICYRULE_STATE); + + subscriptionList.put(policyId, monitorAlarmResponseForDevice(multi)); + + // TODO: Resubscribe to the stream, if it has ended + + // TODO: Redesign evaluation of action + // evaluateAction(policyRule, alarmDescriptorList, multi); + } + + private List> getAlarmResponse( + List> alarmIds, PolicyRuleDevice policyRuleDevice) { + // Transform the alarmIds into promised alarms returned from the + // getAlarmResponseStream + List> alarmResponseStreamList = new ArrayList<>(); + for (Uni alarmId : alarmIds) { + alarmResponseStreamList.add( + alarmId.onItem().transformToMulti(id -> setPolicyMonitoringDevice(policyRuleDevice, id))); + } + return alarmResponseStreamList; + } + + private Multi setPolicyMonitoringDevice( + PolicyRuleDevice policyRuleDevice, String id) { + alarmPolicyRuleDeviceMap.put(id, policyRuleDevice); + + // TODO: Create infinite subscription + var alarmSubscription = new AlarmSubscription(id, 259200, 5000); + return monitoringService.getAlarmResponseStream(alarmSubscription); + } + + private List> getAlarmIds(List alarmDescriptorList) { + List> alarmIds = new ArrayList>(); + for (AlarmDescriptor alarmDescriptor : alarmDescriptorList) { + LOGGER.infof("alarmDescriptor:"); + LOGGER.infof(alarmDescriptor.toString()); + alarmIds.add(monitoringService.setKpiAlarm(alarmDescriptor)); + } + return alarmIds; + } + + @Override + public Uni updatePolicyService(PolicyRuleService policyRuleService) { + LOGGER.infof("Received %s", policyRuleService); + + if (!policyRuleService.areArgumentsValid()) { + LOGGER.error(policyRuleService.getExceptionMessage()); + final var policyRuleState = + new PolicyRuleState( + PolicyRuleStateEnum.POLICY_FAILED, policyRuleService.getExceptionMessage()); + + return Uni.createFrom().item(policyRuleState); + } + + final var policyRuleBasic = policyRuleService.getPolicyRuleBasic(); + if (!policyRuleBasic.areArgumentsValid()) { + LOGGER.error(policyRuleService.getExceptionMessage()); + final var policyRuleState = + new PolicyRuleState( + PolicyRuleStateEnum.POLICY_FAILED, policyRuleBasic.getExceptionMessage()); + return Uni.createFrom().item(policyRuleState); + } + + final var serviceId = policyRuleService.getServiceId(); + final var policyRuleId = policyRuleBasic.getPolicyRuleId(); + final var isPolicyRuleServiceValid = + policyRuleConditionValidator.isPolicyRuleServiceValid(policyRuleId, serviceId); + + return isPolicyRuleServiceValid + .onFailure() + .transform(failure -> new ExternalServiceFailureException(failure.getMessage())) + .onItem() + .transform( + isPolicyRuleService -> { + if (!isPolicyRuleService) { + return new PolicyRuleState( + PolicyRuleStateEnum.POLICY_FAILED, String.format(INVALID_MESSAGE, serviceId)); + } + + return VALIDATED_POLICYRULE_STATE; + }); + } + + @Override + public Uni updatePolicyDevice(PolicyRuleDevice policyRuleDevice) { + LOGGER.infof("Received %s", policyRuleDevice); + + if (!policyRuleDevice.areArgumentsValid()) { + LOGGER.error(policyRuleDevice.getExceptionMessage()); + final var policyRuleState = + new PolicyRuleState( + PolicyRuleStateEnum.POLICY_FAILED, policyRuleDevice.getExceptionMessage()); + + return Uni.createFrom().item(policyRuleState); + } + + final var policyRuleBasic = policyRuleDevice.getPolicyRuleBasic(); + if (!policyRuleBasic.areArgumentsValid()) { + final var policyRuleState = + new PolicyRuleState( + PolicyRuleStateEnum.POLICY_FAILED, policyRuleBasic.getExceptionMessage()); + return Uni.createFrom().item(policyRuleState); + } + + final var policyRuleId = policyRuleBasic.getPolicyRuleId(); + final var isPolicyRuleValid = + policyRuleConditionValidator.isUpdatedPolicyRuleIdValid(policyRuleId); + + return isPolicyRuleValid + .onItem() + .transform( + isPolicyRuleService -> { + if (!isPolicyRuleService) { + return new PolicyRuleState( + PolicyRuleStateEnum.POLICY_FAILED, + String.format(INVALID_MESSAGE, policyRuleId)); + } + + return VALIDATED_POLICYRULE_STATE; + }); + } + + @Override + public Uni deletePolicy(String policyRuleId) { + LOGGER.infof("Received %s", policyRuleId); + + final var getPolicyRule = contextService.getPolicyRule(policyRuleId); + + return getPolicyRule.onItem().transform(policyRule -> removePolicyFromContext(policyRule)); + } + + private PolicyRuleState removePolicyFromContext(PolicyRule policyRule) { + var policyRuleBasic = policyRule.getPolicyRuleType().getPolicyRuleBasic(); + String policyId = policyRuleBasic.getPolicyRuleId(); + + policyRule + .getPolicyRuleType() + .getPolicyRuleBasic() + .setPolicyRuleState(REMOVED_POLICYRULE_STATE); + + contextService + .setPolicyRule(policyRule) + .subscribe() + .with( + tmp -> + LOGGER.infof( + "DeletePolicy with id: " + VALID_MESSAGE, policyRuleBasic.getPolicyRuleId())); + + contextService.removePolicyRule(policyId).subscribe().with(x -> {}); + + // TODO: When the Map doesn't contains the policyId we should throw an exception? + if (subscriptionList.contains(policyId)) subscriptionList.get(policyId).cancel(); + + return policyRuleBasic.getPolicyRuleState(); + } + + private Uni> returnInvalidDeviceIds(List deviceIds) { + UniJoin.Builder builder = Uni.join().builder(); + for (String deviceId : deviceIds) { + final var validatedDeviceId = policyRuleConditionValidator.isDeviceIdValid(deviceId); + builder.add(validatedDeviceId); + } + return builder.joinAll().andFailFast(); + } + + private List createAlarmDescriptorList(PolicyRule policyRule) { + final var policyRuleType = policyRule.getPolicyRuleType(); + final var policyRuleTypeSpecificType = policyRuleType.getPolicyRuleType(); + + List alarmDescriptorList = new ArrayList<>(); + if (policyRuleTypeSpecificType instanceof PolicyRuleService) { + final var policyRuleService = (PolicyRuleService) policyRuleTypeSpecificType; + final var policyRuleBasic = policyRuleService.getPolicyRuleBasic(); + + alarmDescriptorList = parsePolicyRuleCondition(policyRuleBasic); + if (alarmDescriptorList.isEmpty()) { + return List.of(); + } + } else { + final var policyRuleDevice = (PolicyRuleDevice) policyRuleTypeSpecificType; + final var policyRuleBasic = policyRuleDevice.getPolicyRuleBasic(); + + alarmDescriptorList = parsePolicyRuleCondition(policyRuleBasic); + if (alarmDescriptorList.isEmpty()) { + return List.of(); + } + for (AlarmDescriptor alarmDescriptor : alarmDescriptorList) { + alarmPolicyRuleDeviceMap.put(alarmDescriptor.getAlarmId(), policyRuleDevice); + } + } + + return alarmDescriptorList; + } + + private Cancellable monitorAlarmResponseForService(Multi multi) { + return multi + .subscribe() + .with( + alarmResponse -> { + LOGGER.infof("**************************Received Alarm!**************************"); + LOGGER.infof("alarmResponse:"); + LOGGER.info(alarmResponse); + LOGGER.info(alarmResponse.getAlarmId()); + applyActionService(alarmResponse.getAlarmId()); + }); + } + + private Cancellable monitorAlarmResponseForDevice(Multi multi) { + return multi + .subscribe() + .with( + alarmResponse -> { + LOGGER.infof("**************************Received Alarm!**************************"); + LOGGER.infof("alarmResponse:"); + LOGGER.info(alarmResponse); + LOGGER.info(alarmResponse.getAlarmId()); + applyActionDevice(alarmResponse.getAlarmId()); + }); + } + + // TODO: To be refactored or deprecated + // private void evaluateAction( + // PolicyRule policyRule, + // List alarmDescriptorList, + // Multi multi) { + // + // Long count = + // multi + // .collect() + // .with(Collectors.counting()) + // .await() + // .atMost(Duration.ofMinutes(POLICY_EVALUATION_TIMEOUT)); + // + // if (count > ACCEPTABLE_NUMBER_OF_ALARMS) { + // for (AlarmDescriptor alarmDescriptor : alarmDescriptorList) { + // monitoringService + // .deleteAlarm(alarmDescriptor.getAlarmId()) + // .subscribe() + // .with( + // emptyMessage -> + // LOGGER.infof( + // "Alarm [%s] has been deleted as ineffective.\n", + // alarmDescriptor.getAlarmId())); + // } + // setPolicyRuleToContext(policyRule, INEFFECTIVE_POLICYRULE_STATE); + // } else { + // setPolicyRuleToContext(policyRule, EFFECTIVE_POLICYRULE_STATE); + // } + // } + + private void applyActionDevice(String alarmId) { + PolicyRuleDevice policyRuleDevice = alarmPolicyRuleDeviceMap.get(alarmId); + + if (policyRuleActionMap.get(alarmId).getPolicyRuleActionEnum() + == PolicyRuleActionEnum.POLICY_RULE_ACTION_SET_DEVICE_STATUS) { + // In case additional PolicyRuleAction for Devices will be added + } + + setPolicyRuleDeviceToContext(policyRuleDevice, ACTIVE_POLICYRULE_STATE); + + List deviceIds = policyRuleDevice.getDeviceIds(); + List actionConfigs = + policyRuleActionMap.get(alarmId).getPolicyRuleActionConfigs(); + + if (deviceIds.size() != actionConfigs.size()) { + String message = + String.format( + "The number of action parameters in PolicyRuleDevice with ID: %s, is not aligned with the number of devices.", + policyRuleDevice.getPolicyRuleBasic().getPolicyRuleId()); + setPolicyRuleDeviceToContext( + policyRuleDevice, new PolicyRuleState(PolicyRuleStateEnum.POLICY_FAILED, message)); + return; + } + + for (var i = 0; i < deviceIds.size(); i++) { + activateDevice(deviceIds.get(i), actionConfigs.get(i)); + } + + setPolicyRuleDeviceToContext(policyRuleDevice, ENFORCED_POLICYRULE_STATE); + } + + private void activateDevice(String deviceId, PolicyRuleActionConfig actionConfig) { + + Boolean toBeEnabled; + if (actionConfig.getActionKey() == "ENABLED") { + toBeEnabled = true; + } else if (actionConfig.getActionKey() == "DISABLED") { + toBeEnabled = false; + } else { + LOGGER.errorf(INVALID_MESSAGE, actionConfig.getActionKey()); + return; + } + + final var deserializedDeviceUni = contextService.getDevice(deviceId); + + deserializedDeviceUni + .subscribe() + .with( + device -> { + if (toBeEnabled && device.isDisabled()) { + device.enableDevice(); + } else if (!toBeEnabled && device.isEnabled()) { + device.disableDevice(); + } else { + LOGGER.errorf(INVALID_MESSAGE, "Device is already in the desired state"); + return; + } + + deviceService.configureDevice(device); + }); + } + + private void addServiceConfigRule( + PolicyRuleService policyRuleService, PolicyRuleAction policyRuleAction) { + + ConfigActionEnum configActionEnum = ConfigActionEnum.SET; + List actionConfigs = policyRuleAction.getPolicyRuleActionConfigs(); + List newConfigRules = new ArrayList<>(); + + for (PolicyRuleActionConfig actionConfig : actionConfigs) { + ConfigRuleCustom configRuleCustom = + new ConfigRuleCustom(actionConfig.getActionKey(), actionConfig.getActionValue()); + ConfigRuleTypeCustom configRuleType = new ConfigRuleTypeCustom(configRuleCustom); + ConfigRule configRule = new ConfigRule(configActionEnum, configRuleType); + newConfigRules.add(configRule); + } + + var deserializedServiceUni = contextService.getService(policyRuleService.getServiceId()); + deserializedServiceUni + .subscribe() + .with( + deserializedService -> { + List configRules = + deserializedService.getServiceConfig().getConfigRules(); + configRules.addAll(newConfigRules); + deserializedService.setServiceConfig(new ServiceConfig(configRules)); + }); + } + + private void addServiceConstraint( + PolicyRuleService policyRuleService, PolicyRuleAction policyRuleAction) { + + List actionConfigs = policyRuleAction.getPolicyRuleActionConfigs(); + List constraintList = new ArrayList<>(); + + for (PolicyRuleActionConfig actionConfig : actionConfigs) { + var constraintCustom = + new ConstraintCustom(actionConfig.getActionKey(), actionConfig.getActionValue()); + var constraintTypeCustom = new ConstraintTypeCustom(constraintCustom); + constraintList.add(new Constraint(constraintTypeCustom)); + } + + final var deserializedServiceUni = contextService.getService(policyRuleService.getServiceId()); + + deserializedServiceUni + .subscribe() + .with( + deserializedService -> { + deserializedService.appendServiceConstraints(constraintList); + serviceService.updateService(deserializedService); + setPolicyRuleServiceToContext(policyRuleService, ENFORCED_POLICYRULE_STATE); + }); + } + + private void callRecalculatePathRPC( + PolicyRuleService policyRuleService, PolicyRuleAction policyRuleAction) { + + final var deserializedServiceUni = contextService.getService(policyRuleService.getServiceId()); + + deserializedServiceUni + .subscribe() + .with( + deserializedService -> { + serviceService + .recomputeConnections(deserializedService) + .subscribe() + .with( + x -> { + LOGGER.info("called recomputeConnections with:"); + LOGGER.info(deserializedService); + setPolicyRuleServiceToContext(policyRuleService, ENFORCED_POLICYRULE_STATE); + }); + }); + } + + private void applyActionService(String alarmId) { + PolicyRuleService policyRuleService = alarmPolicyRuleServiceMap.get(alarmId); + PolicyRuleAction policyRuleAction = + policyRuleService.getPolicyRuleBasic().getPolicyRuleActions().get(0); + + if (noAlarms == 0) { + noAlarms++; + setPolicyRuleServiceToContext(policyRuleService, ACTIVE_POLICYRULE_STATE); + + switch (policyRuleAction.getPolicyRuleActionEnum()) { + case POLICY_RULE_ACTION_ADD_SERVICE_CONSTRAINT: + addServiceConstraint(policyRuleService, policyRuleAction); + case POLICY_RULE_ACTION_ADD_SERVICE_CONFIGRULE: + addServiceConfigRule(policyRuleService, policyRuleAction); + case POLICY_RULE_ACTION_RECALCULATE_PATH: + callRecalculatePathRPC(policyRuleService, policyRuleAction); + default: + LOGGER.errorf(INVALID_MESSAGE, policyRuleAction.getPolicyRuleActionEnum()); + return; + } + } else if (noAlarms == 2) { + noAlarms = 0; + } else { + noAlarms++; + } + } + + private List parsePolicyRuleCondition(PolicyRuleBasic policyRuleBasic) { + BooleanOperator booleanOperator = policyRuleBasic.getBooleanOperator(); + if (booleanOperator == BooleanOperator.POLICYRULE_CONDITION_BOOLEAN_OR) { + return parsePolicyRuleConditionOr(policyRuleBasic); + } + if (booleanOperator == BooleanOperator.POLICYRULE_CONDITION_BOOLEAN_AND) { + return Arrays.asList(parsePolicyRuleConditionAnd(policyRuleBasic)); + } + return List.of(); + } + + private List parsePolicyRuleConditionOr(PolicyRuleBasic policyRuleBasic) { + + List policyRuleConditions = policyRuleBasic.getPolicyRuleConditions(); + List alarmDescriptorList = new ArrayList<>(); + + for (PolicyRuleCondition policyRuleCondition : policyRuleConditions) { + var kpiValueRange = convertPolicyRuleConditionToKpiValueRange(policyRuleCondition); + + // TODO: Temp fix for AlarmDescriptor object + AlarmDescriptor alarmDescriptor = + new AlarmDescriptor( + "", + "alarmDescription", + "alarmName-" + gen(), + policyRuleCondition.getKpiId(), + kpiValueRange, + getTimeStamp()); + + alarmDescriptorList.add(alarmDescriptor); + } + + HashMap policyRuleActionMap = new HashMap<>(); + List policyRuleActions = policyRuleBasic.getPolicyRuleActions(); + + for (int i = 0; i < policyRuleActions.size(); i++) { + policyRuleActionMap.put(alarmDescriptorList.get(i).getAlarmId(), policyRuleActions.get(i)); + } + + return alarmDescriptorList; + } + + private AlarmDescriptor parsePolicyRuleConditionAnd(PolicyRuleBasic policyRuleBasic) { + + // TODO: KpiIds should be the same. Add check. + + List policyRuleConditionList = policyRuleBasic.getPolicyRuleConditions(); + List kpisList = new ArrayList(); + + for (PolicyRuleCondition policyRuleCondition : policyRuleConditionList) { + kpisList.add(policyRuleCondition.getKpiId()); + } + + if (policyRuleConditionList.size() > 1) { + return createAlarmDescriptorWithRange(policyRuleConditionList); + } + + return createAlarmDescriptorWithoutRange(policyRuleConditionList.get(0)); + } + + private AlarmDescriptor createAlarmDescriptorWithoutRange( + PolicyRuleCondition policyRuleCondition) { + + final var kpiId = policyRuleCondition.getKpiId(); + final var kpiValueRange = convertPolicyRuleConditionToKpiValueRange(policyRuleCondition); + + return new AlarmDescriptor( + "", "alarmDescription", "alarmName-" + gen(), kpiId, kpiValueRange, getTimeStamp()); + } + + private AlarmDescriptor createAlarmDescriptorWithRange( + List policyRuleConditionList) { + + final var kpiId = policyRuleConditionList.get(0).getKpiId(); + + HashMap KpiValueRangeMap = new HashMap<>(); + for (PolicyRuleCondition policyRuleCondition : policyRuleConditionList) { + + if (!KpiValueRangeMap.containsKey(kpiId)) { + var kpiValueRange = convertPolicyRuleConditionToKpiValueRange(policyRuleCondition); + KpiValueRangeMap.put(kpiId, kpiValueRange); + continue; + } + + var kpiValueRange = convertPolicyRuleConditionToKpiValueRange(policyRuleCondition); + // TODO: Handle combineKpiValueRanges exceptions + var combinedKpiValueRange = + combineKpiValueRanges(kpiId, KpiValueRangeMap.get(kpiId), kpiValueRange); + KpiValueRangeMap.put(kpiId, combinedKpiValueRange); + } + + return new AlarmDescriptor( + "", + "alarmDescription", + "alarmName-" + gen(), + kpiId, + KpiValueRangeMap.get(kpiId), + getTimeStamp()); + } + + private KpiValueRange convertPolicyRuleConditionToKpiValueRange( + PolicyRuleCondition policyRuleCondition) { + + switch (policyRuleCondition.getNumericalOperator()) { + case POLICY_RULE_CONDITION_NUMERICAL_EQUAL: + return new KpiValueRange( + policyRuleCondition.getKpiValue(), policyRuleCondition.getKpiValue(), true, true, true); + case POLICY_RULE_CONDITION_NUMERICAL_NOT_EQUAL: + return new KpiValueRange( + policyRuleCondition.getKpiValue(), + policyRuleCondition.getKpiValue(), + true, + false, + false); + + case POLICY_RULE_CONDITION_NUMERICAL_GREATER_THAN: + return new KpiValueRange(null, policyRuleCondition.getKpiValue(), true, false, false); + + case POLICY_RULE_CONDITION_NUMERICAL_GREATER_THAN_EQUAL: + return new KpiValueRange(null, policyRuleCondition.getKpiValue(), true, true, false); + + case POLICY_RULE_CONDITION_NUMERICAL_LESS_THAN: + return new KpiValueRange(policyRuleCondition.getKpiValue(), null, true, false, false); + + case POLICY_RULE_CONDITION_NUMERICAL_LESS_THAN_EQUAL: + return new KpiValueRange(policyRuleCondition.getKpiValue(), null, true, false, true); + default: + return null; + } + } + + private KpiValueRange combineKpiValueRanges( + String kpiId, KpiValueRange firstKpiValueRange, KpiValueRange secondKpiValueRange) { + if (secondKpiValueRange.getInRange() == true) { + LOGGER.errorf("KpiId: %s, has already range values", kpiId); + return null; + } + + if ((firstKpiValueRange.getKpiMinValue() != null) + && (secondKpiValueRange.getKpiMinValue() != null)) { + LOGGER.errorf("KpiId: %s, has already min value", kpiId); + return null; + } + + if ((firstKpiValueRange.getKpiMaxValue() != null) + && (secondKpiValueRange.getKpiMinValue() != null)) { + LOGGER.errorf("KpiId: %s, has already max value", kpiId); + return null; + } + + // Objects.nonNull(secondKpiValueRange); + + var kpiMinValue = + firstKpiValueRange.getKpiMinValue() != null + ? firstKpiValueRange.getKpiMinValue() + : secondKpiValueRange.getKpiMinValue(); + var kpiMaxValue = + firstKpiValueRange.getKpiMaxValue() != null + ? firstKpiValueRange.getKpiMaxValue() + : secondKpiValueRange.getKpiMaxValue(); + boolean includeMinValue = + firstKpiValueRange.getIncludeMinValue() || secondKpiValueRange.getIncludeMinValue(); + boolean includeMaxValue = + firstKpiValueRange.getIncludeMaxValue() || secondKpiValueRange.getIncludeMaxValue(); + + return new KpiValueRange(kpiMinValue, kpiMaxValue, true, includeMinValue, includeMaxValue); + } + + private void setPolicyRuleToContext(PolicyRule policyRule, PolicyRuleState policyRuleState) { + final var policyRuleType = policyRule.getPolicyRuleType(); + final var policyRuleTypeSpecificType = policyRuleType.getPolicyRuleType(); + + if (policyRuleTypeSpecificType instanceof PolicyRuleService) { + setPolicyRuleServiceToContext( + (PolicyRuleService) policyRuleTypeSpecificType, policyRuleState); + } + if (policyRuleTypeSpecificType instanceof PolicyRuleDevice) { + setPolicyRuleDeviceToContext((PolicyRuleDevice) policyRuleTypeSpecificType, policyRuleState); + } + } + + private void setPolicyRuleServiceToContext( + PolicyRuleService policyRuleService, PolicyRuleState policyRuleState) { + LOGGER.infof("Setting Policy Rule state to [%s]", policyRuleState.toString()); + + final var policyRuleBasic = policyRuleService.getPolicyRuleBasic(); + policyRuleBasic.setPolicyRuleState(policyRuleState); + policyRuleService.setPolicyRuleBasic(policyRuleBasic); + + final var policyRuleTypeService = new PolicyRuleTypeService(policyRuleService); + final var policyRule = new PolicyRule(policyRuleTypeService); + contextService.setPolicyRule(policyRule).subscribe().with(x -> {}); + } + + private void setPolicyRuleDeviceToContext( + PolicyRuleDevice policyRuleDevice, PolicyRuleState policyRuleState) { + LOGGER.infof("Setting Policy Rule state to [%s]", policyRuleState.toString()); + + final var policyRuleBasic = policyRuleDevice.getPolicyRuleBasic(); + policyRuleBasic.setPolicyRuleState(policyRuleState); + policyRuleDevice.setPolicyRuleBasic(policyRuleBasic); + + final var policyRuleTypeService = new PolicyRuleTypeDevice(policyRuleDevice); + final var policyRule = new PolicyRule(policyRuleTypeService); + contextService.setPolicyRule(policyRule).subscribe().with(x -> {}); + } +} diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/BooleanOperator.java b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/BooleanOperator.java new file mode 100644 index 0000000000000000000000000000000000000000..fe3ac35322bbd38efaf7e52f680a6ad512b2cbbd --- /dev/null +++ b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/BooleanOperator.java @@ -0,0 +1,23 @@ +/* +* Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +* +* 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.etsi.tfs.policy.policy.model; + +public enum BooleanOperator { + POLICYRULE_CONDITION_BOOLEAN_UNDEFINED, + POLICYRULE_CONDITION_BOOLEAN_AND, + POLICYRULE_CONDITION_BOOLEAN_OR +} diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/NumericalOperator.java b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/NumericalOperator.java new file mode 100644 index 0000000000000000000000000000000000000000..bb6af774b5127c4c898d4d675c995cbd643571ff --- /dev/null +++ b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/NumericalOperator.java @@ -0,0 +1,27 @@ +/* +* Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +* +* 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.etsi.tfs.policy.policy.model; + +public enum NumericalOperator { + POLICY_RULE_CONDITION_NUMERICAL_UNDEFINED, + POLICY_RULE_CONDITION_NUMERICAL_EQUAL, + POLICY_RULE_CONDITION_NUMERICAL_NOT_EQUAL, + POLICY_RULE_CONDITION_NUMERICAL_LESS_THAN, + POLICY_RULE_CONDITION_NUMERICAL_LESS_THAN_EQUAL, + POLICY_RULE_CONDITION_NUMERICAL_GREATER_THAN, + POLICY_RULE_CONDITION_NUMERICAL_GREATER_THAN_EQUAL +} diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRule.java b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRule.java new file mode 100644 index 0000000000000000000000000000000000000000..06b56c532306685e9ab39283791ae6f731cb7b45 --- /dev/null +++ b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRule.java @@ -0,0 +1,36 @@ +/* +* Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +* +* 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.etsi.tfs.policy.policy.model; + +public class PolicyRule { + + private final PolicyRuleType policyRuleType; + + public PolicyRule(PolicyRuleType policyRuleType) { + this.policyRuleType = policyRuleType; + } + + public PolicyRuleType getPolicyRuleType() { + return policyRuleType; + } + + @Override + public String toString() { + return String.format( + "%s:{configActionEnum:\"%s\", %s}", getClass().getSimpleName(), policyRuleType); + } +} diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleAction.java b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleAction.java new file mode 100644 index 0000000000000000000000000000000000000000..a1d87ae78b98cb022667a1837003a37066db6256 --- /dev/null +++ b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleAction.java @@ -0,0 +1,55 @@ +/* +* Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +* +* 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.etsi.tfs.policy.policy.model; + +import java.util.List; +import java.util.stream.Collectors; + +public class PolicyRuleAction { + + private final PolicyRuleActionEnum policyRuleActionEnum; + private final List policyRuleActionConfigs; + + public PolicyRuleAction( + PolicyRuleActionEnum policyRuleActionEnum, + List policyRuleActionConfigs) { + + this.policyRuleActionEnum = policyRuleActionEnum; + this.policyRuleActionConfigs = policyRuleActionConfigs; + } + + public PolicyRuleActionEnum getPolicyRuleActionEnum() { + return policyRuleActionEnum; + } + + public List getPolicyRuleActionConfigs() { + return policyRuleActionConfigs; + } + + @Override + public String toString() { + return String.format( + "%s:{policyRuleActionEnum:\"%s\", [%s]}", + getClass().getSimpleName(), + policyRuleActionEnum.toString(), + toString(policyRuleActionConfigs)); + } + + private String toString(List list) { + return list.stream().map(T::toString).collect(Collectors.joining(", ")); + } +} diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleActionConfig.java b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleActionConfig.java new file mode 100644 index 0000000000000000000000000000000000000000..341ecfddc7382361a76e31e9f566e4c28afb8a13 --- /dev/null +++ b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleActionConfig.java @@ -0,0 +1,43 @@ +/* +* Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +* +* 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.etsi.tfs.policy.policy.model; + +public class PolicyRuleActionConfig { + + private final String actionKey; + private final String actionValue; + + public PolicyRuleActionConfig(String actionKey, String actionValue) { + this.actionKey = actionKey; + this.actionValue = actionValue; + } + + public String getActionKey() { + return actionKey; + } + + public String getActionValue() { + return actionValue; + } + + @Override + public String toString() { + return String.format( + "%s:{resourceKey:\"%s\", resourceValue:\"%s\"}", + getClass().getSimpleName(), actionKey, actionValue); + } +} diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleActionEnum.java b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleActionEnum.java new file mode 100644 index 0000000000000000000000000000000000000000..6e89898a753225bbf550118e5e12055630c5b00b --- /dev/null +++ b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleActionEnum.java @@ -0,0 +1,27 @@ +/* +* Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +* +* 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.etsi.tfs.policy.policy.model; + +public enum PolicyRuleActionEnum { + POLICY_RULE_ACTION_NO_ACTION, + POLICY_RULE_ACTION_SET_DEVICE_STATUS, + POLICY_RULE_ACTION_ADD_SERVICE_CONFIGRULE, + POLICY_RULE_ACTION_ADD_SERVICE_CONSTRAINT, + POLICY_RULE_ACTION_CALL_SERVICE_RPC, + // This is temporary + POLICY_RULE_ACTION_RECALCULATE_PATH +} diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleBase.java b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleBase.java new file mode 100644 index 0000000000000000000000000000000000000000..6fb98c7227c7b53c76f31e166543da6844987108 --- /dev/null +++ b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleBase.java @@ -0,0 +1,29 @@ +/* +* Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +* +* 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.etsi.tfs.policy.policy.model; + +import java.util.List; +import lombok.Data; + +@Data +public class PolicyRuleBase { + + protected PolicyRuleBasic policyRuleBasic; + protected List deviceIds; + protected Boolean isValid; + protected String exceptionMessage; +} diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleBasic.java b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleBasic.java new file mode 100644 index 0000000000000000000000000000000000000000..305f0f26214d2a9a0ab6c53ab1ec8dc3aee6cb1c --- /dev/null +++ b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleBasic.java @@ -0,0 +1,119 @@ +/* +* Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +* +* 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.etsi.tfs.policy.policy.model; + +import static com.google.common.base.Preconditions.checkArgument; + +import java.util.ArrayList; +import java.util.List; +import org.etsi.tfs.policy.common.Util; + +public class PolicyRuleBasic { + + private String policyRuleId; + private PolicyRuleState policyRuleState; + private int priority; + private List policyRuleConditions; + private BooleanOperator booleanOperator; + private List policyRuleActions; + private Boolean isValid; + private String exceptionMessage; + + public PolicyRuleBasic( + String policyRuleId, + PolicyRuleState policyRuleState, + int priority, + List policyRuleConditions, + BooleanOperator booleanOperator, + List policyRuleActions) { + + try { + checkArgument(!policyRuleId.isBlank(), "Policy rule ID must not be empty."); + this.policyRuleId = policyRuleId; + this.policyRuleState = policyRuleState; + checkArgument(priority >= 0, "Priority value must be greater or equal than zero."); + this.priority = priority; + checkArgument(!policyRuleConditions.isEmpty(), "Policy Rule conditions cannot be empty."); + this.policyRuleConditions = policyRuleConditions; + checkArgument( + booleanOperator != BooleanOperator.POLICYRULE_CONDITION_BOOLEAN_UNDEFINED, + "Boolean operator cannot be undefined"); + this.booleanOperator = booleanOperator; + checkArgument(!policyRuleActions.isEmpty(), "Policy Rule actions cannot be empty."); + this.policyRuleActions = policyRuleActions; + this.isValid = true; + + } catch (Exception e) { + this.policyRuleId = ""; + this.priority = 0; + this.policyRuleConditions = new ArrayList(); + this.booleanOperator = BooleanOperator.POLICYRULE_CONDITION_BOOLEAN_UNDEFINED; + this.policyRuleActions = new ArrayList(); + this.isValid = false; + this.exceptionMessage = e.getMessage(); + } + } + + public boolean areArgumentsValid() { + return isValid; + } + + public String getExceptionMessage() { + return exceptionMessage; + } + + public String getPolicyRuleId() { + return policyRuleId; + } + + public PolicyRuleState getPolicyRuleState() { + return policyRuleState; + } + + public void setPolicyRuleState(PolicyRuleState state) { + this.policyRuleState = state; + } + + public int getPriority() { + return priority; + } + + public List getPolicyRuleConditions() { + return policyRuleConditions; + } + + public BooleanOperator getBooleanOperator() { + return booleanOperator; + } + + public List getPolicyRuleActions() { + return policyRuleActions; + } + + @Override + public String toString() { + return String.format( + "%s:{policyRuleId:\"%s\", %s, priority:%d, [%s], booleanOperator:\"%s\", [%s]}", + getClass().getSimpleName(), + policyRuleId, + policyRuleState, + priority, + Util.toString(policyRuleConditions), + booleanOperator.toString(), + Util.toString(policyRuleActions)); + } +} diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleCondition.java b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleCondition.java new file mode 100644 index 0000000000000000000000000000000000000000..7169491963f72435ec1a83c7d51378afcfff15cb --- /dev/null +++ b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleCondition.java @@ -0,0 +1,83 @@ +/* +* Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +* +* 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.etsi.tfs.policy.policy.model; + +import static com.google.common.base.Preconditions.checkArgument; +import static com.google.common.base.Preconditions.checkNotNull; + +import org.etsi.tfs.policy.monitoring.model.KpiValue; + +public class PolicyRuleCondition { + + private final String kpiId; + private final NumericalOperator numericalOperator; + private final KpiValue kpiValue; + + public PolicyRuleCondition( + String kpiId, NumericalOperator numericalOperator, KpiValue kpiValue) { + checkNotNull(kpiId, "Kpi ID must not be null."); + checkArgument(!kpiId.isBlank(), "Kpi ID must not be empty."); + this.kpiId = kpiId; + checkArgument( + numericalOperator != NumericalOperator.POLICY_RULE_CONDITION_NUMERICAL_UNDEFINED, + "Numerical operator cannot be undefined"); + this.numericalOperator = numericalOperator; + checkNotNull(kpiValue, "Kpi value must not be null."); + checkArgument( + isKpiValueValid(kpiValue), + "Kpi value must be: String, Float, Boolean or Integer but it was [%s].", + kpiValue.getValue().getClass().getName()); + this.kpiValue = kpiValue; + } + + public String getKpiId() { + return kpiId; + } + + public NumericalOperator getNumericalOperator() { + return numericalOperator; + } + + public KpiValue getKpiValue() { + return kpiValue; + } + + private boolean isKpiValueValid(KpiValue kpiValue) { + final var kpiValueType = kpiValue.getValue(); + + if (kpiValueType instanceof String) { + return true; + } + + if (kpiValueType instanceof Boolean) { + return true; + } + + if (kpiValueType instanceof Integer) { + return true; + } + + return kpiValueType instanceof Float; + } + + @Override + public String toString() { + return String.format( + "%s:{kpiId:\"%s\", numericalOperator:\"%s\", %s}", + getClass().getSimpleName(), kpiId, numericalOperator.toString(), kpiValue); + } +} diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleDevice.java b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleDevice.java new file mode 100644 index 0000000000000000000000000000000000000000..9d33d3a0ea8a22d07f64ae9762ed94424e01cd4e --- /dev/null +++ b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleDevice.java @@ -0,0 +1,51 @@ +/* +* Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +* +* 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.etsi.tfs.policy.policy.model; + +import static com.google.common.base.Preconditions.checkArgument; + +import java.util.ArrayList; +import java.util.List; +import org.etsi.tfs.policy.common.Util; + +public class PolicyRuleDevice extends PolicyRuleBase { + + public PolicyRuleDevice(PolicyRuleBasic policyRuleBasic, List deviceIds) { + + try { + this.policyRuleBasic = policyRuleBasic; + checkArgument(!deviceIds.isEmpty(), "Device Ids must not be empty."); + this.deviceIds = deviceIds; + this.isValid = true; + } catch (Exception e) { + this.policyRuleBasic = policyRuleBasic; + this.deviceIds = new ArrayList(); + this.isValid = false; + this.exceptionMessage = e.getMessage(); + } + } + + public boolean areArgumentsValid() { + return isValid; + } + + @Override + public String toString() { + return String.format( + "%s:{%s, [%s]}", getClass().getSimpleName(), policyRuleBasic, Util.toString(deviceIds)); + } +} diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleService.java b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleService.java new file mode 100644 index 0000000000000000000000000000000000000000..3c77477d2aadb84ba60292675e0aeb2912a7c7d2 --- /dev/null +++ b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleService.java @@ -0,0 +1,65 @@ +/* +* Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +* +* 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.etsi.tfs.policy.policy.model; + +import static com.google.common.base.Preconditions.checkArgument; + +import java.util.ArrayList; +import java.util.List; +import lombok.Data; +import org.etsi.tfs.policy.common.Util; +import org.etsi.tfs.policy.context.model.ServiceId; + +@Data +public class PolicyRuleService extends PolicyRuleBase { + + private ServiceId serviceId; + + public PolicyRuleService( + PolicyRuleBasic policyRuleBasic, ServiceId serviceId, List deviceIds) { + + try { + this.policyRuleBasic = policyRuleBasic; + checkArgument( + !serviceId.getContextId().isBlank(), "Context Id of Service Id must not be empty."); + checkArgument(!serviceId.getId().isBlank(), "Service Id must not be empty."); + this.serviceId = serviceId; + // TODO If device list not empty + // checkArgument(!deviceIds.isEmpty(), "Device Ids must not be empty."); + this.deviceIds = deviceIds; + this.isValid = true; + this.exceptionMessage = ""; + } catch (Exception e) { + this.policyRuleBasic = policyRuleBasic; + this.serviceId = new ServiceId("", ""); + this.deviceIds = new ArrayList(); + this.isValid = false; + this.exceptionMessage = e.getMessage(); + } + } + + public boolean areArgumentsValid() { + return isValid; + } + + @Override + public String toString() { + return String.format( + "%s:{%s, %s, [%s]}", + getClass().getSimpleName(), policyRuleBasic, serviceId, Util.toString(deviceIds)); + } +} diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleState.java b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleState.java new file mode 100644 index 0000000000000000000000000000000000000000..aa49d2406232d9a6a2d9a1f13f4308c9f5ef4131 --- /dev/null +++ b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleState.java @@ -0,0 +1,50 @@ +/* +* Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +* +* 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.etsi.tfs.policy.policy.model; + +public class PolicyRuleState { + + private PolicyRuleStateEnum policyRuleStateEnum; + private String policyRuleStateMessage; + + public PolicyRuleState(PolicyRuleStateEnum policyRuleStateEnum, String policyRuleStateMessage) { + this.policyRuleStateEnum = policyRuleStateEnum; + this.policyRuleStateMessage = policyRuleStateMessage; + } + + public void setRuleState(PolicyRuleStateEnum policyRuleStateEnum) { + this.policyRuleStateEnum = policyRuleStateEnum; + } + + public PolicyRuleStateEnum getRuleState() { + return policyRuleStateEnum; + } + + public void setPolicyRuleStateMessage(String policyRuleStateMessage) { + this.policyRuleStateMessage = policyRuleStateMessage; + } + + public String getPolicyRuleStateMessage() { + return this.policyRuleStateMessage; + } + + @Override + public String toString() { + return String.format( + "%s:{ruleState:\"%s\"}", getClass().getSimpleName(), policyRuleStateEnum.toString()); + } +} diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleStateEnum.java b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleStateEnum.java new file mode 100644 index 0000000000000000000000000000000000000000..9d9603f2b7070b633b0e9a50e80eec0c3453303e --- /dev/null +++ b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleStateEnum.java @@ -0,0 +1,31 @@ +/* +* Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +* +* 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.etsi.tfs.policy.policy.model; + +public enum PolicyRuleStateEnum { + POLICY_UNDEFINED, + POLICY_FAILED, + POLICY_INSERTED, + POLICY_VALIDATED, + POLICY_PROVISIONED, + POLICY_ACTIVE, + POLICY_ENFORCED, + POLICY_INEFFECTIVE, + POLICY_EFFECTIVE, + POLICY_UPDATED, + POLICY_REMOVED +} diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleType.java b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleType.java new file mode 100644 index 0000000000000000000000000000000000000000..e090174a1ff4cf28b57c89f1cccbba4ec860ceda --- /dev/null +++ b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleType.java @@ -0,0 +1,24 @@ +/* +* Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +* +* 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.etsi.tfs.policy.policy.model; + +public interface PolicyRuleType { + + public T getPolicyRuleType(); + + public PolicyRuleBasic getPolicyRuleBasic(); +} diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleTypeDevice.java b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleTypeDevice.java new file mode 100644 index 0000000000000000000000000000000000000000..907d0b304506cfb9bf3f1aa2076897eeba524287 --- /dev/null +++ b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleTypeDevice.java @@ -0,0 +1,41 @@ +/* +* Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +* +* 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.etsi.tfs.policy.policy.model; + +public class PolicyRuleTypeDevice implements PolicyRuleType { + + private final PolicyRuleDevice policyRuleDevice; + + public PolicyRuleTypeDevice(PolicyRuleDevice policyRuleDevice) { + this.policyRuleDevice = policyRuleDevice; + } + + @Override + public PolicyRuleDevice getPolicyRuleType() { + return this.policyRuleDevice; + } + + @Override + public PolicyRuleBasic getPolicyRuleBasic() { + return policyRuleDevice.getPolicyRuleBasic(); + } + + @Override + public String toString() { + return String.format("%s:{%s}", getClass().getSimpleName(), policyRuleDevice); + } +} diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleTypeService.java b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleTypeService.java new file mode 100644 index 0000000000000000000000000000000000000000..1ab3a7947847387bfb4ff24f3f454e6a34e8ea44 --- /dev/null +++ b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleTypeService.java @@ -0,0 +1,41 @@ +/* +* Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +* +* 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.etsi.tfs.policy.policy.model; + +public class PolicyRuleTypeService implements PolicyRuleType { + + private final PolicyRuleService policyRuleService; + + public PolicyRuleTypeService(PolicyRuleService policyRuleService) { + this.policyRuleService = policyRuleService; + } + + @Override + public PolicyRuleService getPolicyRuleType() { + return this.policyRuleService; + } + + @Override + public PolicyRuleBasic getPolicyRuleBasic() { + return policyRuleService.getPolicyRuleBasic(); + } + + @Override + public String toString() { + return String.format("%s:{%s}", getClass().getSimpleName(), policyRuleService); + } +} diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/policy/service/PolicyRuleConditionFieldsGetter.java b/src/policy/src/main/java/org/etsi/tfs/policy/policy/service/PolicyRuleConditionFieldsGetter.java new file mode 100644 index 0000000000000000000000000000000000000000..34bd3c948781c9f6bfa909a5bc2f1fc29c1fcf57 --- /dev/null +++ b/src/policy/src/main/java/org/etsi/tfs/policy/policy/service/PolicyRuleConditionFieldsGetter.java @@ -0,0 +1,47 @@ +/* +* Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +* +* 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.etsi.tfs.policy.policy.service; + +import jakarta.inject.Singleton; +import java.util.List; +import java.util.stream.Collectors; +import org.etsi.tfs.policy.monitoring.model.KpiValue; +import org.etsi.tfs.policy.policy.model.NumericalOperator; +import org.etsi.tfs.policy.policy.model.PolicyRuleCondition; + +@Singleton +public class PolicyRuleConditionFieldsGetter { + + public List getKpiIds(List policyRuleConditions) { + return policyRuleConditions.stream() + .map(PolicyRuleCondition::getKpiId) + .collect(Collectors.toList()); + } + + public List getKpiValues(List policyRuleConditions) { + return policyRuleConditions.stream() + .map(PolicyRuleCondition::getKpiValue) + .collect(Collectors.toList()); + } + + public List getNumericalOperators( + List policyRuleConditions) { + return policyRuleConditions.stream() + .map(PolicyRuleCondition::getNumericalOperator) + .collect(Collectors.toList()); + } +} diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/policy/service/PolicyRuleConditionValidator.java b/src/policy/src/main/java/org/etsi/tfs/policy/policy/service/PolicyRuleConditionValidator.java new file mode 100644 index 0000000000000000000000000000000000000000..fe7c91726c253a49e5c55280b7f5eacfecdbaa95 --- /dev/null +++ b/src/policy/src/main/java/org/etsi/tfs/policy/policy/service/PolicyRuleConditionValidator.java @@ -0,0 +1,139 @@ +/* +* Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +* +* 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.etsi.tfs.policy.policy.service; + +import io.smallrye.mutiny.Uni; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; +import java.util.ArrayList; +import java.util.List; +import org.etsi.tfs.policy.context.ContextService; +import org.etsi.tfs.policy.context.model.Device; +import org.etsi.tfs.policy.context.model.EndPointId; +import org.etsi.tfs.policy.context.model.Service; +import org.etsi.tfs.policy.context.model.ServiceId; +import org.etsi.tfs.policy.policy.model.PolicyRuleService; +import org.jboss.logging.Logger; + +@ApplicationScoped +public class PolicyRuleConditionValidator { + + private static final Logger LOGGER = Logger.getLogger(PolicyRuleConditionValidator.class); + private static final String INVALID_MESSAGE = "%s is invalid."; + private static final String VALID_MESSAGE = "%s is valid."; + + private final ContextService contextService; + + @Inject + public PolicyRuleConditionValidator(ContextService contextService) { + this.contextService = contextService; + } + + public Uni isDeviceIdValid(String deviceId) { + return contextService + .getDevice(deviceId) + .onFailure() + .recoverWithItem((Device) null) + .onItem() + .transform(device -> checkIfDeviceIdExists(device, deviceId)); + } + + private boolean checkIfDeviceIdExists(Device device, String deviceId) { + if (device == null) { + return false; + } + + final var deviceDeviceId = device.getDeviceId(); + return deviceDeviceId.equals(deviceId); + } + + public Uni isServiceIdValid(ServiceId serviceId, List deviceIds) { + return contextService + .getService(serviceId) + .onFailure() + .recoverWithItem((Service) null) + .onItem() + .transform(service -> checkIfServiceIsValid(service, serviceId, deviceIds)); + } + + private boolean checkIfServiceIsValid( + Service service, ServiceId serviceId, List deviceIds) { + return (checkIfServiceIdExists(service, serviceId) + && checkIfServicesDeviceIdsExist(service, deviceIds)); + } + + private boolean checkIfServiceIdExists(Service service, ServiceId serviceId) { + if (service == null) { + return false; + } + + final var serviceServiceIdServiceId = service.getServiceId(); + final var serviceServiceIdContextId = serviceServiceIdServiceId.getContextId(); + final var serviceServiceIdId = serviceServiceIdServiceId.getId(); + + return serviceServiceIdContextId.equals(serviceId.getContextId()) + && serviceServiceIdId.equals(serviceId.getId()); + } + + private boolean checkIfServicesDeviceIdsExist(Service service, List deviceIds) { + if (deviceIds.isEmpty()) { + return true; + } + + List serviceDeviceIds = new ArrayList<>(); + for (EndPointId serviceEndPointId : service.getServiceEndPointIds()) { + serviceDeviceIds.add(serviceEndPointId.getDeviceId()); + } + + return deviceIds.containsAll(serviceDeviceIds); + } + + public Uni isUpdatedPolicyRuleIdValid(String updatedPolicyRuleId) { + return contextService + .getPolicyRule(updatedPolicyRuleId) + .onItem() + .ifNotNull() + .transform( + id -> { + return true; + }) + .onItem() + .ifNull() + .continueWith(false); + } + + public Uni isPolicyRuleServiceValid(String updatedPolicyRuleId, ServiceId serviceId) { + return contextService + .getPolicyRule(updatedPolicyRuleId) + .onItem() + .ifNotNull() + .transform( + policyRule -> { + var policyRuleService = + (PolicyRuleService) policyRule.getPolicyRuleType().getPolicyRuleType(); + if (policyRuleService.getServiceId().getId().equals(serviceId.getId())) { + return true; + } + return false; + }) + .onItem() + .ifNull() + .continueWith(false) + .onFailure() + .recoverWithItem(false); + } +} diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/service/ServiceGatewayImpl.java b/src/policy/src/main/java/org/etsi/tfs/policy/service/ServiceGatewayImpl.java index 7eccec7876e0f1cc037a9fa6edcf49f6ecfa0e02..96c26a5c1e7dfade1a5571d34c6d6638e0003aa1 100644 --- a/src/policy/src/main/java/org/etsi/tfs/policy/service/ServiceGatewayImpl.java +++ b/src/policy/src/main/java/org/etsi/tfs/policy/service/ServiceGatewayImpl.java @@ -18,8 +18,8 @@ package org.etsi.tfs.policy.service; import io.quarkus.grpc.GrpcClient; import io.smallrye.mutiny.Uni; -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; import org.etsi.tfs.policy.Serializer; import org.etsi.tfs.policy.context.model.Empty; import org.etsi.tfs.policy.context.model.Service; diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/service/ServiceServiceImpl.java b/src/policy/src/main/java/org/etsi/tfs/policy/service/ServiceServiceImpl.java index 21935f4a3b088c821160e6a175e7880c2d0d1f97..8a59d737b6b8d5b3d1633b25941677b28a94f05a 100644 --- a/src/policy/src/main/java/org/etsi/tfs/policy/service/ServiceServiceImpl.java +++ b/src/policy/src/main/java/org/etsi/tfs/policy/service/ServiceServiceImpl.java @@ -17,8 +17,8 @@ package org.etsi.tfs.policy.service; import io.smallrye.mutiny.Uni; -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; import org.etsi.tfs.policy.context.model.Empty; import org.etsi.tfs.policy.context.model.Service; import org.etsi.tfs.policy.context.model.ServiceId; diff --git a/src/policy/src/test/java/org/etsi/tfs/policy/PolicyAddDeviceTest.java b/src/policy/src/test/java/org/etsi/tfs/policy/PolicyAddDeviceTest.java new file mode 100644 index 0000000000000000000000000000000000000000..283c95f7538d7374eeac839386ea2e82bfad7c54 --- /dev/null +++ b/src/policy/src/test/java/org/etsi/tfs/policy/PolicyAddDeviceTest.java @@ -0,0 +1,250 @@ +/* +* Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +* +* 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.etsi.tfs.policy; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.etsi.tfs.policy.common.ApplicationProperties.INVALID_MESSAGE; +import static org.etsi.tfs.policy.common.ApplicationProperties.VALIDATED_POLICYRULE_STATE; + +import io.quarkus.test.junit.QuarkusTest; +import io.quarkus.test.junit.mockito.InjectMock; +import io.smallrye.mutiny.Uni; +import jakarta.inject.Inject; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; +import org.etsi.tfs.policy.context.ContextService; +import org.etsi.tfs.policy.monitoring.MonitoringService; +import org.etsi.tfs.policy.monitoring.model.IntegerKpiValue; +import org.etsi.tfs.policy.monitoring.model.KpiValue; +import org.etsi.tfs.policy.policy.PolicyServiceImpl; +import org.etsi.tfs.policy.policy.model.BooleanOperator; +import org.etsi.tfs.policy.policy.model.NumericalOperator; +import org.etsi.tfs.policy.policy.model.PolicyRuleAction; +import org.etsi.tfs.policy.policy.model.PolicyRuleActionConfig; +import org.etsi.tfs.policy.policy.model.PolicyRuleActionEnum; +import org.etsi.tfs.policy.policy.model.PolicyRuleBasic; +import org.etsi.tfs.policy.policy.model.PolicyRuleCondition; +import org.etsi.tfs.policy.policy.model.PolicyRuleDevice; +import org.etsi.tfs.policy.policy.model.PolicyRuleState; +import org.etsi.tfs.policy.policy.model.PolicyRuleStateEnum; +import org.etsi.tfs.policy.policy.service.PolicyRuleConditionValidator; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; +import org.mockito.Mockito; + +@QuarkusTest +class PolicyAddDeviceTest { + + @Inject PolicyServiceImpl policyService; + + @InjectMock PolicyRuleConditionValidator policyRuleConditionValidator; + + @InjectMock ContextService contextService; + + @InjectMock MonitoringService monitoringService; + static PolicyRuleBasic policyRuleBasic; + static PolicyRuleDevice policyRuleDevice; + + @BeforeAll + static void init() { + + String policyId = "policyRuleId"; + KpiValue kpiValue = new IntegerKpiValue(100); + + PolicyRuleCondition policyRuleCondition = + new PolicyRuleCondition( + "kpiId", NumericalOperator.POLICY_RULE_CONDITION_NUMERICAL_GREATER_THAN, kpiValue); + + PolicyRuleActionConfig policyRuleActionConfig = new PolicyRuleActionConfig("key", "value"); + + PolicyRuleAction policyRuleAction = + new PolicyRuleAction( + PolicyRuleActionEnum.POLICY_RULE_ACTION_NO_ACTION, + Arrays.asList(policyRuleActionConfig)); + + policyRuleBasic = + new PolicyRuleBasic( + policyId, + new PolicyRuleState(PolicyRuleStateEnum.POLICY_INSERTED, "Failed due to some errors"), + 1, + Arrays.asList(policyRuleCondition), + BooleanOperator.POLICYRULE_CONDITION_BOOLEAN_OR, + Arrays.asList(policyRuleAction)); + + List deviceIds = Arrays.asList("device1", "device2"); + + policyRuleDevice = new PolicyRuleDevice(policyRuleBasic, deviceIds); + } + + @Test + void deviceListMustNotBeEmpty() + throws ExecutionException, InterruptedException, TimeoutException { + CompletableFuture message = new CompletableFuture<>(); + + PolicyRuleDevice policyRuleDevice = new PolicyRuleDevice(policyRuleBasic, new ArrayList<>()); + + PolicyRuleState expectedResult = + new PolicyRuleState(PolicyRuleStateEnum.POLICY_FAILED, "Device Ids must not be empty."); + + policyService + .addPolicyDevice(policyRuleDevice) + .subscribe() + .with( + item -> { + message.complete(item); + }); + + assertThat(message.get(5, TimeUnit.SECONDS).getPolicyRuleStateMessage()) + .isEqualTo(expectedResult.getPolicyRuleStateMessage().toString()); + } + + @Test + void isPolicyRuleBasicValid() throws ExecutionException, InterruptedException, TimeoutException { + CompletableFuture message = new CompletableFuture<>(); + + PolicyRuleBasic policyRuleBasic = + new PolicyRuleBasic( + "policyId", + new PolicyRuleState(PolicyRuleStateEnum.POLICY_INSERTED, "Failed due to some errors"), + 0, + new ArrayList<>(), + BooleanOperator.POLICYRULE_CONDITION_BOOLEAN_OR, + new ArrayList<>()); + + PolicyRuleDevice policyRuleDevice = + new PolicyRuleDevice(policyRuleBasic, Arrays.asList("device1", "device2")); + + PolicyRuleState expectedResult = + new PolicyRuleState( + PolicyRuleStateEnum.POLICY_FAILED, "Policy Rule conditions cannot be empty."); + + policyService + .addPolicyDevice(policyRuleDevice) + .subscribe() + .with( + item -> { + message.complete(item); + }); + + assertThat(message.get(5, TimeUnit.SECONDS).getPolicyRuleStateMessage()) + .isEqualTo(expectedResult.getPolicyRuleStateMessage().toString()); + } + + @Test + void isPolicyRuleIdValid() throws ExecutionException, InterruptedException, TimeoutException { + CompletableFuture message = new CompletableFuture<>(); + + PolicyRuleDevice policyRuleDevice = + new PolicyRuleDevice(policyRuleBasic, Arrays.asList("device1", "device2")); + + PolicyRuleState expectedResult = + new PolicyRuleState( + PolicyRuleStateEnum.POLICY_FAILED, + String.format( + INVALID_MESSAGE, policyRuleDevice.getPolicyRuleBasic().getPolicyRuleId())); + + Mockito.when(policyRuleConditionValidator.isUpdatedPolicyRuleIdValid(Mockito.anyString())) + .thenReturn(Uni.createFrom().item(Boolean.FALSE)); + + policyService + .addPolicyDevice(policyRuleDevice) + .subscribe() + .with( + item -> { + message.complete(item); + }); + + assertThat(message.get(5, TimeUnit.SECONDS).getPolicyRuleStateMessage()) + .isEqualTo(expectedResult.getPolicyRuleStateMessage().toString()); + } + + @Test + void successPolicyDevice() throws ExecutionException, InterruptedException, TimeoutException { + CompletableFuture message = new CompletableFuture<>(); + + PolicyRuleDevice policyRuleDevice = + new PolicyRuleDevice(policyRuleBasic, Arrays.asList("device1", "device2")); + + PolicyRuleState expectedResult = + new PolicyRuleState( + PolicyRuleStateEnum.POLICY_VALIDATED, + VALIDATED_POLICYRULE_STATE.getPolicyRuleStateMessage()); + + Mockito.when(policyRuleConditionValidator.isDeviceIdValid(Mockito.anyString())) + .thenReturn(Uni.createFrom().item(Boolean.TRUE)); + + Mockito.when(contextService.setPolicyRule(Mockito.any())) + .thenReturn(Uni.createFrom().item("policyRuleId")); + + policyService + .addPolicyDevice(policyRuleDevice) + .subscribe() + .with( + item -> { + message.complete(item); + }); + + assertThat(message.get(5, TimeUnit.SECONDS).getPolicyRuleStateMessage()) + .isEqualTo(expectedResult.getPolicyRuleStateMessage().toString()); + } + + // @Test + // void failurePolicyDevice() throws ExecutionException, InterruptedException, TimeoutException + // { + // CompletableFuture message = new CompletableFuture<>(); + // + // PolicyRuleDevice policyRuleDevice = + // new PolicyRuleDevice(policyRuleBasic, Arrays.asList("device1", "device2")); + // + // // String expectedResult = "Failed1 to set policy rule for testing purposes."; + // + // PolicyRuleState expectedResult = + // new PolicyRuleState( + // PolicyRuleStateEnum.POLICY_VALIDATED, + // "Failed1 to set policy rule for testing purposes."); + // + // Mockito.when(policyRuleConditionValidator.isDeviceIdValid(Mockito.anyString())) + // .thenReturn(Uni.createFrom().item(Boolean.TRUE)); + // + // Mockito.when(contextService.setPolicyRule(Mockito.any())) + // .thenReturn( + // Uni.createFrom() + // .failure( + // new ExternalServiceFailureException( + // "Failed to set policy rule for testing + // purposes."))); + // + // policyService + // .addPolicyDevice(policyRuleDevice) + // .subscribe() + // .with( + // item -> {}, + // error -> { + // + // assertThat(error.getMessage()).isEqualTo(expectedResult.getPolicyRuleStateMessage()); + // message.completeExceptionally(error); + // }); + // + // assertThat(message.get(5, TimeUnit.SECONDS).getMessage()) + // .isEqualTo(expectedResult.getPolicyRuleStateMessage().toString()); + // } +} diff --git a/src/policy/src/test/java/org/etsi/tfs/policy/PolicyAddServiceTest.java b/src/policy/src/test/java/org/etsi/tfs/policy/PolicyAddServiceTest.java new file mode 100644 index 0000000000000000000000000000000000000000..f693032d08a4dd553b6efbc9ed7e94bb1df4d4af --- /dev/null +++ b/src/policy/src/test/java/org/etsi/tfs/policy/PolicyAddServiceTest.java @@ -0,0 +1,253 @@ +/* +* Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +* +* 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.etsi.tfs.policy; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.etsi.tfs.policy.common.ApplicationProperties.*; + +import io.quarkus.test.junit.QuarkusTest; +import io.quarkus.test.junit.mockito.InjectMock; +import io.smallrye.mutiny.Uni; +import jakarta.inject.Inject; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; +import org.etsi.tfs.policy.context.ContextService; +import org.etsi.tfs.policy.context.model.Service; +import org.etsi.tfs.policy.context.model.ServiceId; +import org.etsi.tfs.policy.context.model.ServiceTypeEnum; +import org.etsi.tfs.policy.monitoring.MonitoringService; +import org.etsi.tfs.policy.monitoring.model.IntegerKpiValue; +import org.etsi.tfs.policy.monitoring.model.KpiValue; +import org.etsi.tfs.policy.policy.PolicyServiceImpl; +import org.etsi.tfs.policy.policy.model.BooleanOperator; +import org.etsi.tfs.policy.policy.model.NumericalOperator; +import org.etsi.tfs.policy.policy.model.PolicyRule; +import org.etsi.tfs.policy.policy.model.PolicyRuleAction; +import org.etsi.tfs.policy.policy.model.PolicyRuleActionConfig; +import org.etsi.tfs.policy.policy.model.PolicyRuleActionEnum; +import org.etsi.tfs.policy.policy.model.PolicyRuleBasic; +import org.etsi.tfs.policy.policy.model.PolicyRuleCondition; +import org.etsi.tfs.policy.policy.model.PolicyRuleService; +import org.etsi.tfs.policy.policy.model.PolicyRuleState; +import org.etsi.tfs.policy.policy.model.PolicyRuleStateEnum; +import org.etsi.tfs.policy.policy.service.PolicyRuleConditionValidator; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; +import org.mockito.Mockito; + +@QuarkusTest +public class PolicyAddServiceTest { + + @Inject PolicyServiceImpl policyService; + + @InjectMock PolicyRuleConditionValidator policyRuleConditionValidator; + + @InjectMock ContextService contextService; + + @InjectMock MonitoringService monitoringService; + + static PolicyRuleBasic policyRuleBasic; + static PolicyRuleService policyRuleService; + + @BeforeAll + static void init() { + + String policyId = "policyRuleId"; + KpiValue kpiValue = new IntegerKpiValue(100); + + PolicyRuleCondition policyRuleCondition = + new PolicyRuleCondition( + "kpiId", NumericalOperator.POLICY_RULE_CONDITION_NUMERICAL_GREATER_THAN, kpiValue); + + PolicyRuleActionConfig policyRuleActionConfig = new PolicyRuleActionConfig("key", "value"); + + PolicyRuleAction policyRuleAction = + new PolicyRuleAction( + PolicyRuleActionEnum.POLICY_RULE_ACTION_NO_ACTION, + Arrays.asList(policyRuleActionConfig)); + + policyRuleBasic = + new PolicyRuleBasic( + policyId, + new PolicyRuleState(PolicyRuleStateEnum.POLICY_INSERTED, "Failed due to some errors"), + 1, + Arrays.asList(policyRuleCondition), + BooleanOperator.POLICYRULE_CONDITION_BOOLEAN_OR, + Arrays.asList(policyRuleAction)); + + ServiceId serviceId = new ServiceId("contextId", "serviceId"); + + Service service = new Service(serviceId, ServiceTypeEnum.UNKNOWN, null, null, null, null, 0.0); + + List deviceIds = Arrays.asList("device1", "device2"); + + policyRuleService = new PolicyRuleService(policyRuleBasic, serviceId, deviceIds); + } + + @Test + void contextOrServiceIdMustNotBeEmpty() + throws ExecutionException, InterruptedException, TimeoutException { + CompletableFuture message = new CompletableFuture<>(); + + ServiceId serviceId = new ServiceId("", ""); + List deviceIds = Arrays.asList("device1", "device2"); + + PolicyRuleService policyRuleService = + new PolicyRuleService(policyRuleBasic, serviceId, deviceIds); + + PolicyRuleState expectedResult = + new PolicyRuleState( + PolicyRuleStateEnum.POLICY_FAILED, "Context Id of Service Id must not be empty."); + + policyService + .addPolicyService(policyRuleService) + .subscribe() + .with( + item -> { + message.complete(item); + }); + + assertThat(message.get(5, TimeUnit.SECONDS).getPolicyRuleStateMessage()) + .isEqualTo(expectedResult.getPolicyRuleStateMessage().toString()); + } + + @Test + void serviceIdMustNotBeEmpty() throws ExecutionException, InterruptedException, TimeoutException { + CompletableFuture message = new CompletableFuture<>(); + + ServiceId serviceId = new ServiceId("sdf", ""); + List deviceIds = Arrays.asList("device1", "device2"); + + PolicyRuleService policyRuleService = + new PolicyRuleService(policyRuleBasic, serviceId, deviceIds); + + PolicyRuleState expectedResult = + new PolicyRuleState(PolicyRuleStateEnum.POLICY_FAILED, "Service Id must not be empty."); + + policyService + .addPolicyService(policyRuleService) + .subscribe() + .with(item -> message.complete(item)); + + assertThat(message.get(5, TimeUnit.SECONDS).getPolicyRuleStateMessage()) + .isEqualTo(expectedResult.getPolicyRuleStateMessage().toString()); + } + + @Test + void policyRuleIdMustNotBeEmpty() + throws ExecutionException, InterruptedException, TimeoutException { + CompletableFuture message = new CompletableFuture<>(); + + String policyId = ""; + + PolicyRuleBasic policyRuleBasic = + new PolicyRuleBasic( + policyId, + new PolicyRuleState(PolicyRuleStateEnum.POLICY_INSERTED, "Failed due to some errors"), + 1, + new ArrayList<>(), + null, + new ArrayList<>()); + + ServiceId serviceId = new ServiceId("contextId", "serviceId"); + + Service service = new Service(serviceId, ServiceTypeEnum.UNKNOWN, null, null, null, null, 0.0); + + PolicyRuleService policyRuleService = + new PolicyRuleService(policyRuleBasic, serviceId, new ArrayList<>()); + + PolicyRuleState expectedResult = + new PolicyRuleState(PolicyRuleStateEnum.POLICY_FAILED, "Policy rule ID must not be empty."); + + policyService + .addPolicyService(policyRuleService) + .subscribe() + .with( + item -> { + message.complete(item); + }); + + assertThat(message.get(5, TimeUnit.SECONDS).getPolicyRuleStateMessage()) + .isEqualTo(expectedResult.getPolicyRuleStateMessage().toString()); + } + + @Test + void checkMessageIfServiceIsNotValid() + throws ExecutionException, InterruptedException, TimeoutException { + CompletableFuture message = new CompletableFuture<>(); + + ServiceId serviceId = new ServiceId("contextId", "serviceId"); + + PolicyRuleService policyRuleService = + new PolicyRuleService(policyRuleBasic, serviceId, new ArrayList<>()); + + PolicyRuleState expectedResult = + new PolicyRuleState(PolicyRuleStateEnum.POLICY_FAILED, serviceId + " is invalid."); + + Mockito.when( + policyRuleConditionValidator.isServiceIdValid( + Mockito.any(ServiceId.class), Mockito.anyList())) + .thenReturn(Uni.createFrom().item(Boolean.FALSE)); + + policyService + .addPolicyService(policyRuleService) + .subscribe() + .with( + item -> { + message.complete(item); + }); + + assertThat(message.get(5, TimeUnit.SECONDS).getPolicyRuleStateMessage()) + .isEqualTo(expectedResult.getPolicyRuleStateMessage().toString()); + } + + @Test + void policyServiceSuccess() + throws ExecutionException, InterruptedException, TimeoutException, IOException { + CompletableFuture message = new CompletableFuture<>(); + + PolicyRuleState expectedResult = + new PolicyRuleState( + PolicyRuleStateEnum.POLICY_VALIDATED, + VALIDATED_POLICYRULE_STATE.getPolicyRuleStateMessage()); + + Mockito.when( + policyRuleConditionValidator.isServiceIdValid( + Mockito.any(ServiceId.class), Mockito.anyList())) + .thenReturn(Uni.createFrom().item(Boolean.TRUE)); + + Mockito.when(contextService.setPolicyRule(Mockito.any(PolicyRule.class))) + .thenReturn(Uni.createFrom().item("policyRuleId")); + + policyService + .addPolicyService(policyRuleService) + .subscribe() + .with( + item -> { + message.complete(item); + }); + + assertThat(message.get(5, TimeUnit.SECONDS).getPolicyRuleStateMessage()) + .isEqualTo(expectedResult.getPolicyRuleStateMessage().toString()); + } +} diff --git a/src/policy/src/test/java/org/etsi/tfs/policy/PolicyDeleteServiceTest.java b/src/policy/src/test/java/org/etsi/tfs/policy/PolicyDeleteServiceTest.java new file mode 100644 index 0000000000000000000000000000000000000000..d4b156654fd910c96e80095ac3e8d8c8734ce1a1 --- /dev/null +++ b/src/policy/src/test/java/org/etsi/tfs/policy/PolicyDeleteServiceTest.java @@ -0,0 +1,132 @@ +/* +* Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +* +* 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.etsi.tfs.policy; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.etsi.tfs.policy.common.ApplicationProperties.REMOVED_POLICYRULE_STATE; + +import io.quarkus.test.junit.QuarkusTest; +import io.quarkus.test.junit.mockito.InjectMock; +import io.smallrye.mutiny.Uni; +import jakarta.inject.Inject; +import java.util.Arrays; +import java.util.List; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; +import org.etsi.tfs.policy.context.ContextService; +import org.etsi.tfs.policy.context.model.Service; +import org.etsi.tfs.policy.context.model.ServiceId; +import org.etsi.tfs.policy.context.model.ServiceTypeEnum; +import org.etsi.tfs.policy.monitoring.MonitoringService; +import org.etsi.tfs.policy.monitoring.model.IntegerKpiValue; +import org.etsi.tfs.policy.monitoring.model.KpiValue; +import org.etsi.tfs.policy.policy.PolicyServiceImpl; +import org.etsi.tfs.policy.policy.model.BooleanOperator; +import org.etsi.tfs.policy.policy.model.NumericalOperator; +import org.etsi.tfs.policy.policy.model.PolicyRule; +import org.etsi.tfs.policy.policy.model.PolicyRuleAction; +import org.etsi.tfs.policy.policy.model.PolicyRuleActionConfig; +import org.etsi.tfs.policy.policy.model.PolicyRuleActionEnum; +import org.etsi.tfs.policy.policy.model.PolicyRuleBasic; +import org.etsi.tfs.policy.policy.model.PolicyRuleCondition; +import org.etsi.tfs.policy.policy.model.PolicyRuleService; +import org.etsi.tfs.policy.policy.model.PolicyRuleState; +import org.etsi.tfs.policy.policy.model.PolicyRuleStateEnum; +import org.etsi.tfs.policy.policy.model.PolicyRuleType; +import org.etsi.tfs.policy.policy.model.PolicyRuleTypeService; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; +import org.mockito.Mockito; + +@QuarkusTest +class PolicyDeleteServiceTest { + + @Inject PolicyServiceImpl policyService; + @InjectMock ContextService contextService; + + @InjectMock MonitoringService monitoringService; + + static PolicyRuleBasic policyRuleBasic; + static PolicyRuleService policyRuleService; + + @BeforeAll + static void init() { + + String policyId = "policyRuleId"; + KpiValue kpiValue = new IntegerKpiValue(100); + + PolicyRuleCondition policyRuleCondition = + new PolicyRuleCondition( + "kpiId", NumericalOperator.POLICY_RULE_CONDITION_NUMERICAL_GREATER_THAN, kpiValue); + + PolicyRuleActionConfig policyRuleActionConfig = new PolicyRuleActionConfig("key", "value"); + + PolicyRuleAction policyRuleAction = + new PolicyRuleAction( + PolicyRuleActionEnum.POLICY_RULE_ACTION_NO_ACTION, + Arrays.asList(policyRuleActionConfig)); + + policyRuleBasic = + new PolicyRuleBasic( + policyId, + new PolicyRuleState(PolicyRuleStateEnum.POLICY_INSERTED, "Failed due to some errors"), + 1, + Arrays.asList(policyRuleCondition), + BooleanOperator.POLICYRULE_CONDITION_BOOLEAN_OR, + Arrays.asList(policyRuleAction)); + + ServiceId serviceId = new ServiceId("contextId", "serviceId"); + + Service service = new Service(serviceId, ServiceTypeEnum.UNKNOWN, null, null, null, null, 0.0); + + List deviceIds = Arrays.asList("device1", "device2"); + + policyRuleService = new PolicyRuleService(policyRuleBasic, serviceId, deviceIds); + } + + @Test + void contextOrServiceIdMustNotBeEmpty() + throws ExecutionException, InterruptedException, TimeoutException { + CompletableFuture message = new CompletableFuture<>(); + + String policyRuleId = ""; + PolicyRuleState expectedResult = + new PolicyRuleState( + PolicyRuleStateEnum.POLICY_REMOVED, + REMOVED_POLICYRULE_STATE.getPolicyRuleStateMessage()); + + PolicyRuleType policyRuleType = new PolicyRuleTypeService(policyRuleService); + + PolicyRule policyRule = new PolicyRule(policyRuleType); + + Mockito.when(contextService.getPolicyRule(Mockito.anyString())) + .thenReturn(Uni.createFrom().item(policyRule)); + + policyService + .deletePolicy(policyRuleId) + .subscribe() + .with( + item -> { + message.complete(item); + }); + + assertThat(message.get(5, TimeUnit.SECONDS).getPolicyRuleStateMessage()) + .isEqualTo(expectedResult.getPolicyRuleStateMessage().toString()); + } +} diff --git a/src/policy/src/test/java/org/etsi/tfs/policy/PolicyGrpcServiceTest.java b/src/policy/src/test/java/org/etsi/tfs/policy/PolicyGrpcServiceTest.java new file mode 100644 index 0000000000000000000000000000000000000000..1f5eaa037ad112257bf5a1684394f809fca9419b --- /dev/null +++ b/src/policy/src/test/java/org/etsi/tfs/policy/PolicyGrpcServiceTest.java @@ -0,0 +1,383 @@ +/* +* Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +* +* 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.etsi.tfs.policy; + +import static org.assertj.core.api.Assertions.assertThat; + +import context.ContextOuterClass; +import context.ContextOuterClass.Uuid; +import io.quarkus.grpc.GrpcClient; +import io.quarkus.test.junit.QuarkusTest; +import jakarta.inject.Inject; +import java.util.List; +import java.util.UUID; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; +import monitoring.Monitoring.KpiId; +import org.etsi.tfs.policy.monitoring.model.FloatKpiValue; +import org.etsi.tfs.policy.monitoring.model.IntegerKpiValue; +import org.etsi.tfs.policy.policy.model.PolicyRuleActionConfig; +import org.jboss.logging.Logger; +import org.junit.jupiter.api.Test; +import policy.Policy; +import policy.Policy.PolicyRuleBasic; +import policy.Policy.PolicyRuleStateEnum; +import policy.PolicyAction; +import policy.PolicyAction.PolicyRuleActionEnum; +import policy.PolicyCondition; +import policy.PolicyCondition.BooleanOperator; +import policy.PolicyCondition.NumericalOperator; +import policy.PolicyCondition.PolicyRuleCondition; +import policy.PolicyService; + +@QuarkusTest +class PolicyGrpcServiceTest { + private static final Logger LOGGER = Logger.getLogger(PolicyGrpcServiceTest.class); + + @GrpcClient PolicyService client; + private final Serializer serializer; + + @Inject + PolicyGrpcServiceTest(Serializer serializer) { + this.serializer = serializer; + } + + private context.ContextOuterClass.ServiceId createContextServiceId() { + final var contextIdUuid = serializer.serializeUuid("571eabc1-0f59-48da-b608-c45876c3fa8a"); + + final var serviceIdUuid = serializer.serializeUuid("123456789"); + + context.ContextOuterClass.ContextId contextId = + context.ContextOuterClass.ContextId.newBuilder().setContextUuid(contextIdUuid).build(); + + return context.ContextOuterClass.ServiceId.newBuilder() + .setContextId(contextId) + .setServiceUuid(serviceIdUuid) + .build(); + } + + private PolicyRuleBasic createPolicyRuleBasic() { + final var expectedPolicyRuleIdUuid = + serializer.serializeUuid("571eabc1-0f59-48da-b608-c45876c3fa8a"); + + final var expectedPolicyRuleId = + Policy.PolicyRuleId.newBuilder().setUuid(expectedPolicyRuleIdUuid).build(); + + final var expectedPolicyRuleState = + Policy.PolicyRuleState.newBuilder() + .setPolicyRuleState(PolicyRuleStateEnum.POLICY_INSERTED) + .build(); + + final var expectedFirstKpiValue = new IntegerKpiValue(22); + final var expectedSecondKpiValue = new FloatKpiValue(69.1f); + + final var serializedExpectedFirstKpiValue = serializer.serialize(expectedFirstKpiValue); + final var serializedExpectedSecondKpiValue = serializer.serialize(expectedSecondKpiValue); + + final var firstExpectedPolicyRuleCondition = + PolicyRuleCondition.newBuilder() + .setKpiId( + KpiId.newBuilder() + .setKpiId( + Uuid.newBuilder().setUuid("79e49ba3-a7b4-4b4b-8aaa-28b05c6f888e").build())) + .setNumericalOperator(NumericalOperator.POLICYRULE_CONDITION_NUMERICAL_EQUAL) + .setKpiValue(serializedExpectedFirstKpiValue) + .build(); + + final var secondExpectedPolicyRuleCondition = + PolicyCondition.PolicyRuleCondition.newBuilder() + .setKpiId( + KpiId.newBuilder() + .setKpiId( + Uuid.newBuilder().setUuid("eae900e5-2703-467d-82f2-97aae8b55c15").build())) + .setNumericalOperator(NumericalOperator.POLICYRULE_CONDITION_NUMERICAL_GREATER_THAN) + .setKpiValue(serializedExpectedSecondKpiValue) + .build(); + + final var expectedPolicyRuleConditions = + List.of(firstExpectedPolicyRuleCondition, secondExpectedPolicyRuleCondition); + + PolicyRuleActionConfig policyRuleActionConfig_1 = + new PolicyRuleActionConfig("paramater1", "parameter2"); + final var serializedPolicyRuleActionConfigList_1 = + serializer.serialize(policyRuleActionConfig_1); + + PolicyRuleActionConfig policyRuleActionConfig_2 = + new PolicyRuleActionConfig("paramater3", "parameter4"); + final var serializedPolicyRuleActionConfigList_2 = + serializer.serialize(policyRuleActionConfig_2); + + final var firstExpectedPolicyRuleAction = + PolicyAction.PolicyRuleAction.newBuilder() + .setAction(PolicyAction.PolicyRuleActionEnum.POLICYRULE_ACTION_ADD_SERVICE_CONFIGRULE) + .addActionConfig(serializedPolicyRuleActionConfigList_1) + .build(); + + final var secondExpectedPolicyRuleAction = + PolicyAction.PolicyRuleAction.newBuilder() + .setAction(PolicyRuleActionEnum.POLICYRULE_ACTION_ADD_SERVICE_CONSTRAINT) + .addActionConfig(serializedPolicyRuleActionConfigList_2) + .build(); + + final var expectedPolicyRuleActions = + List.of(firstExpectedPolicyRuleAction, secondExpectedPolicyRuleAction); + + return PolicyRuleBasic.newBuilder() + .setPolicyRuleId(expectedPolicyRuleId) + .setPolicyRuleState(expectedPolicyRuleState) + .addAllConditionList(expectedPolicyRuleConditions) + .setBooleanOperator(BooleanOperator.POLICYRULE_CONDITION_BOOLEAN_OR) + .addAllActionList(expectedPolicyRuleActions) + .build(); + } + + // @Test + // void shouldAddPolicyService() throws ExecutionException, InterruptedException, TimeoutException + // { + // CompletableFuture message = new CompletableFuture<>(); + + // final var policyRuleBasic = createPolicyRuleBasic(); + + // final var expectedPolicyRuleState = policyRuleBasic.getPolicyRuleState(); + + // final var serviceId = createContextServiceId(); + + // final var expectedDeviceIdUuid1 = + // serializer.serializeUuid("20db867c-772d-4872-9179-244ecafb3257"); + + // final var expectedDeviceId1 = + // + // ContextOuterClass.DeviceId.newBuilder().setDeviceUuid(expectedDeviceIdUuid1).build(); + + // final var deviceIds = List.of(expectedDeviceId1); + // final var policyRuleService = + // Policy.PolicyRuleService.newBuilder() + // .setPolicyRuleBasic(policyRuleBasic) + // .setServiceId(serviceId) + // .addAllDeviceList(deviceIds) + // .build(); + + // client + // .policyAddService(policyRuleService) + // .subscribe() + // .with(policyRuleState -> + // message.complete(policyRuleState.getPolicyRuleState().toString())); + + // assertThat(message.get(5, TimeUnit.SECONDS)) + // .isEqualTo(expectedPolicyRuleState.getPolicyRuleState().toString()); + // } + + // @Test + // void shouldAddPolicyDevice() throws ExecutionException, InterruptedException, TimeoutException + // { + // CompletableFuture message = new CompletableFuture<>(); + + // final var expectedDeviceIdUuid1 = + // serializer.serializeUuid("20db867c-772d-4872-9179-244ecafb3257"); + // final var expectedDeviceIdUuid2 = + // serializer.serializeUuid("095974ac-d757-412d-b317-bcf355220aa9"); + + // final var expectedDeviceId1 = + // + // ContextOuterClass.DeviceId.newBuilder().setDeviceUuid(expectedDeviceIdUuid1).build(); + // final var expectedDeviceId2 = + // + // ContextOuterClass.DeviceId.newBuilder().setDeviceUuid(expectedDeviceIdUuid2).build(); + + // final var policyRuleBasic = createPolicyRuleBasic(); + // final var deviceIds = List.of(expectedDeviceId1, expectedDeviceId2); + + // final var expectedPolicyRuleState = policyRuleBasic.getPolicyRuleState(); + + // final var policyRuleDevice = + // Policy.PolicyRuleDevice.newBuilder() + // .setPolicyRuleBasic(policyRuleBasic) + // .addAllDeviceList(deviceIds) + // .build(); + + // client + // .policyAddDevice(policyRuleDevice) + // .subscribe() + // .with(policyRuleState -> + // message.complete(policyRuleState.getPolicyRuleState().toString())); + + // assertThat(message.get(5, TimeUnit.SECONDS)) + // .isEqualTo(expectedPolicyRuleState.getPolicyRuleState().toString()); + // } + + @Test + void shouldUpdatePolicyServiceReturnFailedState() + throws ExecutionException, InterruptedException, TimeoutException { + CompletableFuture message = new CompletableFuture<>(); + + final var expectedPolicyRuleState = + Policy.PolicyRuleState.newBuilder() + .setPolicyRuleState(PolicyRuleStateEnum.POLICY_FAILED) + .build(); + + final var policyRuleBasic = + PolicyRuleBasic.newBuilder().setPolicyRuleState(expectedPolicyRuleState).build(); + final var policyRuleService = + Policy.PolicyRuleService.newBuilder().setPolicyRuleBasic(policyRuleBasic).build(); + + client + .policyUpdateService(policyRuleService) + .subscribe() + .with(policyRuleState -> message.complete(policyRuleState.getPolicyRuleState().toString())); + + assertThat(message.get(5, TimeUnit.SECONDS)) + .isEqualTo(expectedPolicyRuleState.getPolicyRuleState().toString()); + } + + @Test + void shouldUpdatePolicyDeviceReturnFailedState() + throws ExecutionException, InterruptedException, TimeoutException { + CompletableFuture message = new CompletableFuture<>(); + + final var expectedDeviceIdUuid = + serializer.serializeUuid("20db867c-772d-4872-9179-244ecafb3257"); + + final var expectedDeviceId = + ContextOuterClass.DeviceId.newBuilder().setDeviceUuid(expectedDeviceIdUuid).build(); + + final var expectedPolicyRuleState = + Policy.PolicyRuleState.newBuilder() + .setPolicyRuleState(PolicyRuleStateEnum.POLICY_FAILED) + .build(); + + final var policyRuleBasic = + PolicyRuleBasic.newBuilder().setPolicyRuleState(expectedPolicyRuleState).build(); + final var deviceIds = List.of(expectedDeviceId); + final var policyRuleDevice = + Policy.PolicyRuleDevice.newBuilder() + .setPolicyRuleBasic(policyRuleBasic) + .addAllDeviceList(deviceIds) + .build(); + + client + .policyUpdateDevice(policyRuleDevice) + .subscribe() + .with(policyRuleState -> message.complete(policyRuleState.getPolicyRuleState().toString())); + + assertThat(message.get(5, TimeUnit.SECONDS)) + .isEqualTo(expectedPolicyRuleState.getPolicyRuleState().toString()); + } + + // TODO: Disable shouldDeletePolicy test until mock context service + // @Test + // void shouldDeletePolicy() throws ExecutionException, InterruptedException, TimeoutException + // { + // CompletableFuture message = new CompletableFuture<>(); + + // final var uuid = + // ContextOuterClass.Uuid.newBuilder() + // + // .setUuid(UUID.fromString("0f14d0ab-9608-7862-a9e4-5ed26688389b").toString()) + // .build(); + // final var policyRuleId = Policy.PolicyRuleId.newBuilder().setUuid(uuid).build(); + + // final var expectedPolicyRuleState = + // Policy.PolicyRuleState.newBuilder() + // .setPolicyRuleState(PolicyRuleStateEnum.POLICY_REMOVED) + // .build(); + + // client + // .policyDelete(policyRuleId) + // .subscribe() + // .with(policyRuleState -> + // message.complete(policyRuleState.getPolicyRuleState().toString())); + + // assertThat(message.get(5, TimeUnit.SECONDS)) + // .isEqualTo(expectedPolicyRuleState.getPolicyRuleState().toString()); + // } + + @Test + void shouldGetPolicyService() throws ExecutionException, InterruptedException, TimeoutException { + CompletableFuture message = new CompletableFuture<>(); + + final var uuid = + ContextOuterClass.Uuid.newBuilder() + .setUuid(UUID.fromString("0f14d0ab-9608-7862-a9e4-5ed26688389b").toString()) + .build(); + final var policyRuleId = Policy.PolicyRuleId.newBuilder().setUuid(uuid).build(); + + client + .getPolicyService(policyRuleId) + .subscribe() + .with( + policyRuleService -> { + LOGGER.infof( + "Getting policy with ID: %s", + policyRuleService.getPolicyRuleBasic().getPolicyRuleId().getUuid()); + message.complete( + policyRuleService.getPolicyRuleBasic().getPolicyRuleId().getUuid().getUuid()); + }); + + assertThat(message.get(5, TimeUnit.SECONDS)).isEqualTo(policyRuleId.getUuid().getUuid()); + } + + @Test + void shouldGetPolicyDevice() throws ExecutionException, InterruptedException, TimeoutException { + CompletableFuture message = new CompletableFuture<>(); + + final var uuid = + ContextOuterClass.Uuid.newBuilder() + .setUuid(UUID.fromString("0f14d0ab-9608-7862-a9e4-5ed26688389b").toString()) + .build(); + final var policyRuleId = Policy.PolicyRuleId.newBuilder().setUuid(uuid).build(); + + client + .getPolicyDevice(policyRuleId) + .subscribe() + .with( + policyRuleService -> { + LOGGER.infof( + "Getting policy with ID: %s", + policyRuleService.getPolicyRuleBasic().getPolicyRuleId().getUuid()); + message.complete( + policyRuleService.getPolicyRuleBasic().getPolicyRuleId().getUuid().getUuid()); + }); + + assertThat(message.get(5, TimeUnit.SECONDS)).isEqualTo(policyRuleId.getUuid().getUuid()); + } + + @Test + void shouldGetPolicyByServiceId() + throws ExecutionException, InterruptedException, TimeoutException { + + CompletableFuture message = new CompletableFuture<>(); + + final var uuid = + ContextOuterClass.Uuid.newBuilder() + .setUuid(UUID.fromString("0f14d0ab-9608-7862-a9e4-5ed26688389b").toString()) + .build(); + final var serviceId = ContextOuterClass.ServiceId.newBuilder().setServiceUuid(uuid).build(); + + client + .getPolicyByServiceId(serviceId) + .subscribe() + .with( + policyRuleList -> { + LOGGER.infof("Getting policyRuleList with ID: %s", policyRuleList); + message.complete(policyRuleList.toString()); + }); + + assertThat(message.get(5, TimeUnit.SECONDS)).isEmpty(); + } +} diff --git a/src/policy/src/test/java/org/etsi/tfs/policy/PolicyRuleBasicValidationTest.java b/src/policy/src/test/java/org/etsi/tfs/policy/PolicyRuleBasicValidationTest.java index 7f969329345aab2f235daf920b9fa7c045bd89fd..437a6e23a942e04202698e607d59eb9c89f05a81 100644 --- a/src/policy/src/test/java/org/etsi/tfs/policy/PolicyRuleBasicValidationTest.java +++ b/src/policy/src/test/java/org/etsi/tfs/policy/PolicyRuleBasicValidationTest.java @@ -23,17 +23,17 @@ import io.quarkus.test.junit.QuarkusTest; import java.util.Collections; import java.util.List; import java.util.UUID; -import org.etsi.tfs.policy.model.BooleanOperator; -import org.etsi.tfs.policy.model.NumericalOperator; -import org.etsi.tfs.policy.model.PolicyRuleAction; -import org.etsi.tfs.policy.model.PolicyRuleActionConfig; -import org.etsi.tfs.policy.model.PolicyRuleActionEnum; -import org.etsi.tfs.policy.model.PolicyRuleBasic; -import org.etsi.tfs.policy.model.PolicyRuleCondition; -import org.etsi.tfs.policy.model.PolicyRuleState; -import org.etsi.tfs.policy.model.PolicyRuleStateEnum; import org.etsi.tfs.policy.monitoring.model.IntegerKpiValue; import org.etsi.tfs.policy.monitoring.model.KpiValue; +import org.etsi.tfs.policy.policy.model.BooleanOperator; +import org.etsi.tfs.policy.policy.model.NumericalOperator; +import org.etsi.tfs.policy.policy.model.PolicyRuleAction; +import org.etsi.tfs.policy.policy.model.PolicyRuleActionConfig; +import org.etsi.tfs.policy.policy.model.PolicyRuleActionEnum; +import org.etsi.tfs.policy.policy.model.PolicyRuleBasic; +import org.etsi.tfs.policy.policy.model.PolicyRuleCondition; +import org.etsi.tfs.policy.policy.model.PolicyRuleState; +import org.etsi.tfs.policy.policy.model.PolicyRuleStateEnum; import org.junit.jupiter.api.Test; // TODO: Revisit PolicyRuleBasicValidationTest cases after handling exceptions in PolicyRuleBasic diff --git a/src/policy/src/test/java/org/etsi/tfs/policy/PolicyRuleConditionValidationTest.java b/src/policy/src/test/java/org/etsi/tfs/policy/PolicyRuleConditionValidationTest.java index d81149725664a91066a30248bda3fdf395b78d78..d9ac7bddeb894f213b6ff6afcb25b56e75148bef 100644 --- a/src/policy/src/test/java/org/etsi/tfs/policy/PolicyRuleConditionValidationTest.java +++ b/src/policy/src/test/java/org/etsi/tfs/policy/PolicyRuleConditionValidationTest.java @@ -21,13 +21,13 @@ import static org.assertj.core.api.Assertions.assertThatExceptionOfType; import io.quarkus.test.junit.QuarkusTest; import java.util.stream.Stream; -import org.etsi.tfs.policy.model.NumericalOperator; -import org.etsi.tfs.policy.model.PolicyRuleCondition; import org.etsi.tfs.policy.monitoring.model.BooleanKpiValue; import org.etsi.tfs.policy.monitoring.model.FloatKpiValue; import org.etsi.tfs.policy.monitoring.model.IntegerKpiValue; import org.etsi.tfs.policy.monitoring.model.KpiValue; import org.etsi.tfs.policy.monitoring.model.StringKpiValue; +import org.etsi.tfs.policy.policy.model.NumericalOperator; +import org.etsi.tfs.policy.policy.model.PolicyRuleCondition; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; diff --git a/src/policy/src/test/java/org/etsi/tfs/policy/PolicyRuleDeviceValidationTest.java b/src/policy/src/test/java/org/etsi/tfs/policy/PolicyRuleDeviceValidationTest.java index e0e23c8a8b40a4cf48139257f4df540369f5995e..d7a7236fe48c33e8c96110f67cb91f7c8673cb53 100644 --- a/src/policy/src/test/java/org/etsi/tfs/policy/PolicyRuleDeviceValidationTest.java +++ b/src/policy/src/test/java/org/etsi/tfs/policy/PolicyRuleDeviceValidationTest.java @@ -21,18 +21,18 @@ import static org.assertj.core.api.Assertions.assertThat; import io.quarkus.test.junit.QuarkusTest; import java.util.List; import java.util.UUID; -import org.etsi.tfs.policy.model.BooleanOperator; -import org.etsi.tfs.policy.model.NumericalOperator; -import org.etsi.tfs.policy.model.PolicyRuleAction; -import org.etsi.tfs.policy.model.PolicyRuleActionConfig; -import org.etsi.tfs.policy.model.PolicyRuleActionEnum; -import org.etsi.tfs.policy.model.PolicyRuleBasic; -import org.etsi.tfs.policy.model.PolicyRuleCondition; -import org.etsi.tfs.policy.model.PolicyRuleDevice; -import org.etsi.tfs.policy.model.PolicyRuleState; -import org.etsi.tfs.policy.model.PolicyRuleStateEnum; import org.etsi.tfs.policy.monitoring.model.IntegerKpiValue; import org.etsi.tfs.policy.monitoring.model.KpiValue; +import org.etsi.tfs.policy.policy.model.BooleanOperator; +import org.etsi.tfs.policy.policy.model.NumericalOperator; +import org.etsi.tfs.policy.policy.model.PolicyRuleAction; +import org.etsi.tfs.policy.policy.model.PolicyRuleActionConfig; +import org.etsi.tfs.policy.policy.model.PolicyRuleActionEnum; +import org.etsi.tfs.policy.policy.model.PolicyRuleBasic; +import org.etsi.tfs.policy.policy.model.PolicyRuleCondition; +import org.etsi.tfs.policy.policy.model.PolicyRuleDevice; +import org.etsi.tfs.policy.policy.model.PolicyRuleState; +import org.etsi.tfs.policy.policy.model.PolicyRuleStateEnum; import org.junit.jupiter.api.Test; @QuarkusTest diff --git a/src/policy/src/test/java/org/etsi/tfs/policy/PolicyRuleServiceValidationTest.java b/src/policy/src/test/java/org/etsi/tfs/policy/PolicyRuleServiceValidationTest.java index 40094436c4d198450cecbdd512418d6b1df4b74e..f449b702258c8c4834d5c241244503cf99238f17 100644 --- a/src/policy/src/test/java/org/etsi/tfs/policy/PolicyRuleServiceValidationTest.java +++ b/src/policy/src/test/java/org/etsi/tfs/policy/PolicyRuleServiceValidationTest.java @@ -22,10 +22,10 @@ import static org.mockito.Mockito.when; import io.quarkus.test.junit.QuarkusTest; import io.smallrye.mutiny.Uni; +import jakarta.inject.Inject; import java.util.Collections; import java.util.List; import java.util.UUID; -import javax.inject.Inject; import org.etsi.tfs.policy.context.ContextService; import org.etsi.tfs.policy.context.model.ConfigActionEnum; import org.etsi.tfs.policy.context.model.ConfigRule; @@ -42,18 +42,19 @@ import org.etsi.tfs.policy.context.model.LocationTypeRegion; import org.etsi.tfs.policy.context.model.ServiceId; import org.etsi.tfs.policy.context.model.TopologyId; import org.etsi.tfs.policy.kpi_sample_types.model.KpiSampleType; -import org.etsi.tfs.policy.model.BooleanOperator; -import org.etsi.tfs.policy.model.NumericalOperator; -import org.etsi.tfs.policy.model.PolicyRuleAction; -import org.etsi.tfs.policy.model.PolicyRuleActionConfig; -import org.etsi.tfs.policy.model.PolicyRuleActionEnum; -import org.etsi.tfs.policy.model.PolicyRuleBasic; -import org.etsi.tfs.policy.model.PolicyRuleCondition; -import org.etsi.tfs.policy.model.PolicyRuleService; -import org.etsi.tfs.policy.model.PolicyRuleState; -import org.etsi.tfs.policy.model.PolicyRuleStateEnum; import org.etsi.tfs.policy.monitoring.model.IntegerKpiValue; import org.etsi.tfs.policy.monitoring.model.KpiValue; +import org.etsi.tfs.policy.policy.model.BooleanOperator; +import org.etsi.tfs.policy.policy.model.NumericalOperator; +import org.etsi.tfs.policy.policy.model.PolicyRuleAction; +import org.etsi.tfs.policy.policy.model.PolicyRuleActionConfig; +import org.etsi.tfs.policy.policy.model.PolicyRuleActionEnum; +import org.etsi.tfs.policy.policy.model.PolicyRuleBasic; +import org.etsi.tfs.policy.policy.model.PolicyRuleCondition; +import org.etsi.tfs.policy.policy.model.PolicyRuleService; +import org.etsi.tfs.policy.policy.model.PolicyRuleState; +import org.etsi.tfs.policy.policy.model.PolicyRuleStateEnum; +import org.etsi.tfs.policy.policy.service.PolicyRuleConditionValidator; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.mockito.Mockito; diff --git a/src/policy/src/test/java/org/etsi/tfs/policy/PolicyUpdateDeviceTest.java b/src/policy/src/test/java/org/etsi/tfs/policy/PolicyUpdateDeviceTest.java new file mode 100644 index 0000000000000000000000000000000000000000..8a1044676f24674a7e4655b77c9d5ad57b286c01 --- /dev/null +++ b/src/policy/src/test/java/org/etsi/tfs/policy/PolicyUpdateDeviceTest.java @@ -0,0 +1,206 @@ +/* +* Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +* +* 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.etsi.tfs.policy; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.etsi.tfs.policy.common.ApplicationProperties.INVALID_MESSAGE; +import static org.etsi.tfs.policy.common.ApplicationProperties.VALIDATED_POLICYRULE_STATE; + +import io.quarkus.test.junit.QuarkusTest; +import io.quarkus.test.junit.mockito.InjectMock; +import io.smallrye.mutiny.Uni; +import jakarta.inject.Inject; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; +import org.etsi.tfs.policy.monitoring.MonitoringService; +import org.etsi.tfs.policy.monitoring.model.IntegerKpiValue; +import org.etsi.tfs.policy.monitoring.model.KpiValue; +import org.etsi.tfs.policy.policy.PolicyServiceImpl; +import org.etsi.tfs.policy.policy.model.BooleanOperator; +import org.etsi.tfs.policy.policy.model.NumericalOperator; +import org.etsi.tfs.policy.policy.model.PolicyRuleAction; +import org.etsi.tfs.policy.policy.model.PolicyRuleActionConfig; +import org.etsi.tfs.policy.policy.model.PolicyRuleActionEnum; +import org.etsi.tfs.policy.policy.model.PolicyRuleBasic; +import org.etsi.tfs.policy.policy.model.PolicyRuleCondition; +import org.etsi.tfs.policy.policy.model.PolicyRuleDevice; +import org.etsi.tfs.policy.policy.model.PolicyRuleState; +import org.etsi.tfs.policy.policy.model.PolicyRuleStateEnum; +import org.etsi.tfs.policy.policy.service.PolicyRuleConditionValidator; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; +import org.mockito.Mockito; + +@QuarkusTest +class PolicyUpdateDeviceTest { + + @Inject PolicyServiceImpl policyService; + + @InjectMock PolicyRuleConditionValidator policyRuleConditionValidator; + + @InjectMock MonitoringService monitoringService; + + static PolicyRuleBasic policyRuleBasic; + static PolicyRuleDevice policyRuleDevice; + + @BeforeAll + static void init() { + + String policyId = "policyRuleId"; + KpiValue kpiValue = new IntegerKpiValue(100); + + PolicyRuleCondition policyRuleCondition = + new PolicyRuleCondition( + "kpiId", NumericalOperator.POLICY_RULE_CONDITION_NUMERICAL_GREATER_THAN, kpiValue); + + PolicyRuleActionConfig policyRuleActionConfig = new PolicyRuleActionConfig("key", "value"); + + PolicyRuleAction policyRuleAction = + new PolicyRuleAction( + PolicyRuleActionEnum.POLICY_RULE_ACTION_NO_ACTION, + Arrays.asList(policyRuleActionConfig)); + + policyRuleBasic = + new PolicyRuleBasic( + policyId, + new PolicyRuleState(PolicyRuleStateEnum.POLICY_INSERTED, "Failed due to some errors"), + 1, + Arrays.asList(policyRuleCondition), + BooleanOperator.POLICYRULE_CONDITION_BOOLEAN_OR, + Arrays.asList(policyRuleAction)); + + List deviceIds = Arrays.asList("device1", "device2"); + + policyRuleDevice = new PolicyRuleDevice(policyRuleBasic, deviceIds); + } + + @Test + void deviceListMustNotBeEmpty() + throws ExecutionException, InterruptedException, TimeoutException { + CompletableFuture message = new CompletableFuture<>(); + + PolicyRuleDevice policyRuleDevice = new PolicyRuleDevice(policyRuleBasic, new ArrayList<>()); + + PolicyRuleState expectedResult = + new PolicyRuleState(PolicyRuleStateEnum.POLICY_FAILED, "Device Ids must not be empty."); + + policyService + .updatePolicyDevice(policyRuleDevice) + .subscribe() + .with( + item -> { + message.complete(item); + }); + + assertThat(message.get(5, TimeUnit.SECONDS).getPolicyRuleStateMessage()) + .isEqualTo(expectedResult.getPolicyRuleStateMessage().toString()); + } + + @Test + void isPolicyRuleBasicValid() throws ExecutionException, InterruptedException, TimeoutException { + CompletableFuture message = new CompletableFuture<>(); + + PolicyRuleBasic policyRuleBasic = + new PolicyRuleBasic( + "policyId", + new PolicyRuleState(PolicyRuleStateEnum.POLICY_INSERTED, "Failed due to some errors"), + 0, + new ArrayList<>(), + BooleanOperator.POLICYRULE_CONDITION_BOOLEAN_OR, + new ArrayList<>()); + + PolicyRuleDevice policyRuleDevice = + new PolicyRuleDevice(policyRuleBasic, Arrays.asList("device1", "device2")); + + PolicyRuleState expectedResult = + new PolicyRuleState( + PolicyRuleStateEnum.POLICY_FAILED, "Policy Rule conditions cannot be empty."); + + policyService + .updatePolicyDevice(policyRuleDevice) + .subscribe() + .with( + item -> { + message.complete(item); + }); + + assertThat(message.get(5, TimeUnit.SECONDS).getPolicyRuleStateMessage()) + .isEqualTo(expectedResult.getPolicyRuleStateMessage().toString()); + } + + @Test + void isUpdatedPolicyRuleIdValid() + throws ExecutionException, InterruptedException, TimeoutException { + CompletableFuture message = new CompletableFuture<>(); + + PolicyRuleDevice policyRuleDevice = + new PolicyRuleDevice(policyRuleBasic, Arrays.asList("device1", "device2")); + + PolicyRuleState expectedResult = + new PolicyRuleState( + PolicyRuleStateEnum.POLICY_FAILED, + String.format( + INVALID_MESSAGE, policyRuleDevice.getPolicyRuleBasic().getPolicyRuleId())); + + Mockito.when(policyRuleConditionValidator.isUpdatedPolicyRuleIdValid(Mockito.anyString())) + .thenReturn(Uni.createFrom().item(Boolean.FALSE)); + + policyService + .updatePolicyDevice(policyRuleDevice) + .subscribe() + .with( + item -> { + message.complete(item); + }); + + assertThat(message.get(5, TimeUnit.SECONDS).getPolicyRuleStateMessage()) + .isEqualTo(expectedResult.getPolicyRuleStateMessage().toString()); + } + + @Test + void successUpdatePolicyService() + throws ExecutionException, InterruptedException, TimeoutException { + CompletableFuture message = new CompletableFuture<>(); + + PolicyRuleDevice policyRuleDevice = + new PolicyRuleDevice(policyRuleBasic, Arrays.asList("device1")); + + PolicyRuleState expectedResult = + new PolicyRuleState( + PolicyRuleStateEnum.POLICY_VALIDATED, + VALIDATED_POLICYRULE_STATE.getPolicyRuleStateMessage()); + + Mockito.when(policyRuleConditionValidator.isUpdatedPolicyRuleIdValid(Mockito.anyString())) + .thenReturn(Uni.createFrom().item(Boolean.TRUE)); + + policyService + .updatePolicyDevice(policyRuleDevice) + .subscribe() + .with( + item -> { + message.complete(item); + }); + + assertThat(message.get(5, TimeUnit.SECONDS).getPolicyRuleStateMessage()) + .isEqualTo(expectedResult.getPolicyRuleStateMessage().toString()); + } +} diff --git a/src/policy/src/test/java/org/etsi/tfs/policy/PolicyUpdateServiceTest.java b/src/policy/src/test/java/org/etsi/tfs/policy/PolicyUpdateServiceTest.java new file mode 100644 index 0000000000000000000000000000000000000000..e0f68a28af272b2006ec62591644ac96676bb4b5 --- /dev/null +++ b/src/policy/src/test/java/org/etsi/tfs/policy/PolicyUpdateServiceTest.java @@ -0,0 +1,217 @@ +/* +* Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +* +* 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.etsi.tfs.policy; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.etsi.tfs.policy.common.ApplicationProperties.INVALID_MESSAGE; +import static org.etsi.tfs.policy.common.ApplicationProperties.VALIDATED_POLICYRULE_STATE; + +import io.quarkus.test.junit.QuarkusTest; +import io.quarkus.test.junit.mockito.InjectMock; +import io.smallrye.mutiny.Uni; +import jakarta.inject.Inject; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; +import org.etsi.tfs.policy.context.ContextService; +import org.etsi.tfs.policy.context.model.Service; +import org.etsi.tfs.policy.context.model.ServiceId; +import org.etsi.tfs.policy.context.model.ServiceTypeEnum; +import org.etsi.tfs.policy.monitoring.MonitoringService; +import org.etsi.tfs.policy.monitoring.model.IntegerKpiValue; +import org.etsi.tfs.policy.monitoring.model.KpiValue; +import org.etsi.tfs.policy.policy.PolicyServiceImpl; +import org.etsi.tfs.policy.policy.model.BooleanOperator; +import org.etsi.tfs.policy.policy.model.NumericalOperator; +import org.etsi.tfs.policy.policy.model.PolicyRuleAction; +import org.etsi.tfs.policy.policy.model.PolicyRuleActionConfig; +import org.etsi.tfs.policy.policy.model.PolicyRuleActionEnum; +import org.etsi.tfs.policy.policy.model.PolicyRuleBasic; +import org.etsi.tfs.policy.policy.model.PolicyRuleCondition; +import org.etsi.tfs.policy.policy.model.PolicyRuleService; +import org.etsi.tfs.policy.policy.model.PolicyRuleState; +import org.etsi.tfs.policy.policy.model.PolicyRuleStateEnum; +import org.etsi.tfs.policy.policy.service.PolicyRuleConditionValidator; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; +import org.mockito.Mockito; + +@QuarkusTest +class PolicyUpdateServiceTest { + + @Inject PolicyServiceImpl policyService; + + @InjectMock PolicyRuleConditionValidator policyRuleConditionValidator; + + @InjectMock ContextService contextService; + + @InjectMock MonitoringService monitoringService; + + static PolicyRuleBasic policyRuleBasic; + static PolicyRuleService policyRuleService; + + @BeforeAll + static void init() { + + String policyId = "policyRuleId"; + KpiValue kpiValue = new IntegerKpiValue(100); + + PolicyRuleCondition policyRuleCondition = + new PolicyRuleCondition( + "kpiId", NumericalOperator.POLICY_RULE_CONDITION_NUMERICAL_GREATER_THAN, kpiValue); + + PolicyRuleActionConfig policyRuleActionConfig = new PolicyRuleActionConfig("key", "value"); + + PolicyRuleAction policyRuleAction = + new PolicyRuleAction( + PolicyRuleActionEnum.POLICY_RULE_ACTION_NO_ACTION, + Arrays.asList(policyRuleActionConfig)); + + policyRuleBasic = + new PolicyRuleBasic( + policyId, + new PolicyRuleState(PolicyRuleStateEnum.POLICY_INSERTED, "Failed due to some errors"), + 1, + Arrays.asList(policyRuleCondition), + BooleanOperator.POLICYRULE_CONDITION_BOOLEAN_OR, + Arrays.asList(policyRuleAction)); + + ServiceId serviceId = new ServiceId("contextId", "serviceId"); + + Service service = new Service(serviceId, ServiceTypeEnum.UNKNOWN, null, null, null, null, 0.0); + + List deviceIds = Arrays.asList("device1", "device2"); + + policyRuleService = new PolicyRuleService(policyRuleBasic, serviceId, deviceIds); + } + + @Test + void contextOrServiceIdMustNotBeEmpty() + throws ExecutionException, InterruptedException, TimeoutException { + CompletableFuture message = new CompletableFuture<>(); + + ServiceId serviceId = new ServiceId("", ""); + List deviceIds = Arrays.asList("device1", "device2"); + + PolicyRuleService policyRuleService = + new PolicyRuleService(policyRuleBasic, serviceId, deviceIds); + + PolicyRuleState expectedResult = + new PolicyRuleState( + PolicyRuleStateEnum.POLICY_FAILED, "Context Id of Service Id must not be empty."); + + policyService + .updatePolicyService(policyRuleService) + .subscribe() + .with( + item -> { + message.complete(item); + }); + + assertThat(message.get(5, TimeUnit.SECONDS).getPolicyRuleStateMessage()) + .isEqualTo(expectedResult.getPolicyRuleStateMessage().toString()); + } + + @Test + void serviceIdMustNotBeEmpty() throws ExecutionException, InterruptedException, TimeoutException { + CompletableFuture message = new CompletableFuture<>(); + + ServiceId serviceId = new ServiceId("sdf", ""); + List deviceIds = Arrays.asList("device1", "device2"); + + PolicyRuleService policyRuleService = + new PolicyRuleService(policyRuleBasic, serviceId, deviceIds); + + PolicyRuleState expectedResult = + new PolicyRuleState(PolicyRuleStateEnum.POLICY_FAILED, "Service Id must not be empty."); + + policyService + .updatePolicyService(policyRuleService) + .subscribe() + .with(item -> message.complete(item)); + + assertThat(message.get(5, TimeUnit.SECONDS).getPolicyRuleStateMessage()) + .isEqualTo(expectedResult.getPolicyRuleStateMessage().toString()); + } + + @Test + void checkMessageIfServiceIsNotValid() + throws ExecutionException, InterruptedException, TimeoutException { + CompletableFuture message = new CompletableFuture<>(); + + ServiceId serviceId = new ServiceId("contextId", "serviceId"); + + PolicyRuleService policyRuleService = + new PolicyRuleService(policyRuleBasic, serviceId, new ArrayList<>()); + + PolicyRuleState expectedResult = + new PolicyRuleState( + PolicyRuleStateEnum.POLICY_FAILED, String.format(INVALID_MESSAGE, serviceId)); + + Mockito.when( + policyRuleConditionValidator.isPolicyRuleServiceValid( + Mockito.anyString(), Mockito.any(ServiceId.class))) + .thenReturn(Uni.createFrom().item(Boolean.FALSE)); + + policyService + .updatePolicyService(policyRuleService) + .subscribe() + .with( + item -> { + message.complete(item); + }); + + assertThat(message.get(5, TimeUnit.SECONDS).getPolicyRuleStateMessage()) + .isEqualTo(expectedResult.getPolicyRuleStateMessage().toString()); + } + + @Test + void successUpdatePolicyService() + throws ExecutionException, InterruptedException, TimeoutException { + CompletableFuture message = new CompletableFuture<>(); + + ServiceId serviceId = new ServiceId("contextId", "serviceId"); + + PolicyRuleService policyRuleService = + new PolicyRuleService(policyRuleBasic, serviceId, new ArrayList<>()); + + PolicyRuleState expectedResult = + new PolicyRuleState( + PolicyRuleStateEnum.POLICY_VALIDATED, + VALIDATED_POLICYRULE_STATE.getPolicyRuleStateMessage()); + + Mockito.when( + policyRuleConditionValidator.isPolicyRuleServiceValid( + Mockito.anyString(), Mockito.any(ServiceId.class))) + .thenReturn(Uni.createFrom().item(Boolean.TRUE)); + + policyService + .updatePolicyService(policyRuleService) + .subscribe() + .with( + item -> { + message.complete(item); + }); + + assertThat(message.get(5, TimeUnit.SECONDS).getPolicyRuleStateMessage()) + .isEqualTo(expectedResult.getPolicyRuleStateMessage().toString()); + } +} diff --git a/src/policy/src/test/java/org/etsi/tfs/policy/SerializerTest.java b/src/policy/src/test/java/org/etsi/tfs/policy/SerializerTest.java index 63fb1ad7a72d74cf52148027f4fc0e0546b0b58e..396706f36bbf4b575ba08761cf3d088b7647c4a7 100644 --- a/src/policy/src/test/java/org/etsi/tfs/policy/SerializerTest.java +++ b/src/policy/src/test/java/org/etsi/tfs/policy/SerializerTest.java @@ -26,10 +26,10 @@ import context.ContextOuterClass.DeviceId; import context.ContextOuterClass.DeviceOperationalStatusEnum; import context.ContextOuterClass.Uuid; import io.quarkus.test.junit.QuarkusTest; +import jakarta.inject.Inject; import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; -import javax.inject.Inject; import kpi_sample_types.KpiSampleTypes; import monitoring.Monitoring; import monitoring.Monitoring.AlarmID; @@ -85,17 +85,6 @@ import org.etsi.tfs.policy.context.model.ServiceTypeEnum; import org.etsi.tfs.policy.context.model.SliceId; import org.etsi.tfs.policy.context.model.TopologyId; import org.etsi.tfs.policy.kpi_sample_types.model.KpiSampleType; -import org.etsi.tfs.policy.model.BooleanOperator; -import org.etsi.tfs.policy.model.NumericalOperator; -import org.etsi.tfs.policy.model.PolicyRuleAction; -import org.etsi.tfs.policy.model.PolicyRuleActionConfig; -import org.etsi.tfs.policy.model.PolicyRuleActionEnum; -import org.etsi.tfs.policy.model.PolicyRuleBasic; -import org.etsi.tfs.policy.model.PolicyRuleCondition; -import org.etsi.tfs.policy.model.PolicyRuleDevice; -import org.etsi.tfs.policy.model.PolicyRuleService; -import org.etsi.tfs.policy.model.PolicyRuleState; -import org.etsi.tfs.policy.model.PolicyRuleStateEnum; import org.etsi.tfs.policy.monitoring.model.AlarmDescriptor; import org.etsi.tfs.policy.monitoring.model.AlarmResponse; import org.etsi.tfs.policy.monitoring.model.BooleanKpiValue; @@ -107,6 +96,17 @@ import org.etsi.tfs.policy.monitoring.model.KpiValue; import org.etsi.tfs.policy.monitoring.model.KpiValueRange; import org.etsi.tfs.policy.monitoring.model.StringKpiValue; import org.etsi.tfs.policy.monitoring.model.SubsDescriptor; +import org.etsi.tfs.policy.policy.model.BooleanOperator; +import org.etsi.tfs.policy.policy.model.NumericalOperator; +import org.etsi.tfs.policy.policy.model.PolicyRuleAction; +import org.etsi.tfs.policy.policy.model.PolicyRuleActionConfig; +import org.etsi.tfs.policy.policy.model.PolicyRuleActionEnum; +import org.etsi.tfs.policy.policy.model.PolicyRuleBasic; +import org.etsi.tfs.policy.policy.model.PolicyRuleCondition; +import org.etsi.tfs.policy.policy.model.PolicyRuleDevice; +import org.etsi.tfs.policy.policy.model.PolicyRuleService; +import org.etsi.tfs.policy.policy.model.PolicyRuleState; +import org.etsi.tfs.policy.policy.model.PolicyRuleStateEnum; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; diff --git a/src/policy/target/generated-sources/grpc/acl/Acl.java b/src/policy/target/generated-sources/grpc/acl/Acl.java index 521294eefdec36b373b99aaca5281be28e01d2db..cba5f55d7620c589307ed15fd548ce386cbc6ff0 100644 --- a/src/policy/target/generated-sources/grpc/acl/Acl.java +++ b/src/policy/target/generated-sources/grpc/acl/Acl.java @@ -1,4654 +1,4377 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: acl.proto - package acl; public final class Acl { - private Acl() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - /** - * Protobuf enum {@code acl.AclRuleTypeEnum} - */ - public enum AclRuleTypeEnum - implements com.google.protobuf.ProtocolMessageEnum { - /** - * ACLRULETYPE_UNDEFINED = 0; - */ - ACLRULETYPE_UNDEFINED(0), - /** - * ACLRULETYPE_IPV4 = 1; - */ - ACLRULETYPE_IPV4(1), - /** - * ACLRULETYPE_IPV6 = 2; - */ - ACLRULETYPE_IPV6(2), - /** - * ACLRULETYPE_L2 = 3; - */ - ACLRULETYPE_L2(3), - /** - * ACLRULETYPE_MPLS = 4; - */ - ACLRULETYPE_MPLS(4), - /** - * ACLRULETYPE_MIXED = 5; - */ - ACLRULETYPE_MIXED(5), - UNRECOGNIZED(-1), - ; - - /** - * ACLRULETYPE_UNDEFINED = 0; - */ - public static final int ACLRULETYPE_UNDEFINED_VALUE = 0; - /** - * ACLRULETYPE_IPV4 = 1; - */ - public static final int ACLRULETYPE_IPV4_VALUE = 1; - /** - * ACLRULETYPE_IPV6 = 2; - */ - public static final int ACLRULETYPE_IPV6_VALUE = 2; - /** - * ACLRULETYPE_L2 = 3; - */ - public static final int ACLRULETYPE_L2_VALUE = 3; - /** - * ACLRULETYPE_MPLS = 4; - */ - public static final int ACLRULETYPE_MPLS_VALUE = 4; - /** - * ACLRULETYPE_MIXED = 5; - */ - public static final int ACLRULETYPE_MIXED_VALUE = 5; + private Acl() { + } - public final int getNumber() { - if (this == UNRECOGNIZED) { - throw new java.lang.IllegalArgumentException( - "Can't get the number of an unknown enum value."); - } - return value; + public static void registerAllExtensions(com.google.protobuf.ExtensionRegistryLite registry) { } - /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. - * @deprecated Use {@link #forNumber(int)} instead. - */ - @java.lang.Deprecated - public static AclRuleTypeEnum valueOf(int value) { - return forNumber(value); + public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions((com.google.protobuf.ExtensionRegistryLite) registry); } /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. + * Protobuf enum {@code acl.AclRuleTypeEnum} */ - public static AclRuleTypeEnum forNumber(int value) { - switch (value) { - case 0: return ACLRULETYPE_UNDEFINED; - case 1: return ACLRULETYPE_IPV4; - case 2: return ACLRULETYPE_IPV6; - case 3: return ACLRULETYPE_L2; - case 4: return ACLRULETYPE_MPLS; - case 5: return ACLRULETYPE_MIXED; - default: return null; - } - } + public enum AclRuleTypeEnum implements com.google.protobuf.ProtocolMessageEnum { + + /** + * ACLRULETYPE_UNDEFINED = 0; + */ + ACLRULETYPE_UNDEFINED(0), + /** + * ACLRULETYPE_IPV4 = 1; + */ + ACLRULETYPE_IPV4(1), + /** + * ACLRULETYPE_IPV6 = 2; + */ + ACLRULETYPE_IPV6(2), + /** + * ACLRULETYPE_L2 = 3; + */ + ACLRULETYPE_L2(3), + /** + * ACLRULETYPE_MPLS = 4; + */ + ACLRULETYPE_MPLS(4), + /** + * ACLRULETYPE_MIXED = 5; + */ + ACLRULETYPE_MIXED(5), + UNRECOGNIZED(-1); + + /** + * ACLRULETYPE_UNDEFINED = 0; + */ + public static final int ACLRULETYPE_UNDEFINED_VALUE = 0; + + /** + * ACLRULETYPE_IPV4 = 1; + */ + public static final int ACLRULETYPE_IPV4_VALUE = 1; + + /** + * ACLRULETYPE_IPV6 = 2; + */ + public static final int ACLRULETYPE_IPV6_VALUE = 2; + + /** + * ACLRULETYPE_L2 = 3; + */ + public static final int ACLRULETYPE_L2_VALUE = 3; + + /** + * ACLRULETYPE_MPLS = 4; + */ + public static final int ACLRULETYPE_MPLS_VALUE = 4; + + /** + * ACLRULETYPE_MIXED = 5; + */ + public static final int ACLRULETYPE_MIXED_VALUE = 5; + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException("Can't get the number of an unknown enum value."); + } + return value; + } - public static com.google.protobuf.Internal.EnumLiteMap - internalGetValueMap() { - return internalValueMap; - } - private static final com.google.protobuf.Internal.EnumLiteMap< - AclRuleTypeEnum> internalValueMap = - new com.google.protobuf.Internal.EnumLiteMap() { - public AclRuleTypeEnum findValueByNumber(int number) { - return AclRuleTypeEnum.forNumber(number); + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static AclRuleTypeEnum valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static AclRuleTypeEnum forNumber(int value) { + switch(value) { + case 0: + return ACLRULETYPE_UNDEFINED; + case 1: + return ACLRULETYPE_IPV4; + case 2: + return ACLRULETYPE_IPV6; + case 3: + return ACLRULETYPE_L2; + case 4: + return ACLRULETYPE_MPLS; + case 5: + return ACLRULETYPE_MIXED; + default: + return null; } - }; + } - public final com.google.protobuf.Descriptors.EnumValueDescriptor - getValueDescriptor() { - if (this == UNRECOGNIZED) { - throw new java.lang.IllegalStateException( - "Can't get the descriptor of an unrecognized enum value."); - } - return getDescriptor().getValues().get(ordinal()); - } - public final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptorForType() { - return getDescriptor(); - } - public static final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptor() { - return acl.Acl.getDescriptor().getEnumTypes().get(0); - } + public static com.google.protobuf.Internal.EnumLiteMap internalGetValueMap() { + return internalValueMap; + } - private static final AclRuleTypeEnum[] VALUES = values(); - - public static AclRuleTypeEnum valueOf( - com.google.protobuf.Descriptors.EnumValueDescriptor desc) { - if (desc.getType() != getDescriptor()) { - throw new java.lang.IllegalArgumentException( - "EnumValueDescriptor is not for this type."); - } - if (desc.getIndex() == -1) { - return UNRECOGNIZED; - } - return VALUES[desc.getIndex()]; - } + private static final com.google.protobuf.Internal.EnumLiteMap internalValueMap = new com.google.protobuf.Internal.EnumLiteMap() { - private final int value; + public AclRuleTypeEnum findValueByNumber(int number) { + return AclRuleTypeEnum.forNumber(number); + } + }; - private AclRuleTypeEnum(int value) { - this.value = value; - } + public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException("Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } - // @@protoc_insertion_point(enum_scope:acl.AclRuleTypeEnum) - } + public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() { + return getDescriptor(); + } - /** - * Protobuf enum {@code acl.AclForwardActionEnum} - */ - public enum AclForwardActionEnum - implements com.google.protobuf.ProtocolMessageEnum { - /** - * ACLFORWARDINGACTION_UNDEFINED = 0; - */ - ACLFORWARDINGACTION_UNDEFINED(0), - /** - * ACLFORWARDINGACTION_DROP = 1; - */ - ACLFORWARDINGACTION_DROP(1), - /** - * ACLFORWARDINGACTION_ACCEPT = 2; - */ - ACLFORWARDINGACTION_ACCEPT(2), - /** - * ACLFORWARDINGACTION_REJECT = 3; - */ - ACLFORWARDINGACTION_REJECT(3), - UNRECOGNIZED(-1), - ; + public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { + return acl.Acl.getDescriptor().getEnumTypes().get(0); + } - /** - * ACLFORWARDINGACTION_UNDEFINED = 0; - */ - public static final int ACLFORWARDINGACTION_UNDEFINED_VALUE = 0; - /** - * ACLFORWARDINGACTION_DROP = 1; - */ - public static final int ACLFORWARDINGACTION_DROP_VALUE = 1; - /** - * ACLFORWARDINGACTION_ACCEPT = 2; - */ - public static final int ACLFORWARDINGACTION_ACCEPT_VALUE = 2; - /** - * ACLFORWARDINGACTION_REJECT = 3; - */ - public static final int ACLFORWARDINGACTION_REJECT_VALUE = 3; + private static final AclRuleTypeEnum[] VALUES = values(); + public static AclRuleTypeEnum valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } - public final int getNumber() { - if (this == UNRECOGNIZED) { - throw new java.lang.IllegalArgumentException( - "Can't get the number of an unknown enum value."); - } - return value; - } + private final int value; - /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. - * @deprecated Use {@link #forNumber(int)} instead. - */ - @java.lang.Deprecated - public static AclForwardActionEnum valueOf(int value) { - return forNumber(value); + private AclRuleTypeEnum(int value) { + this.value = value; + } } /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. + * Protobuf enum {@code acl.AclForwardActionEnum} */ - public static AclForwardActionEnum forNumber(int value) { - switch (value) { - case 0: return ACLFORWARDINGACTION_UNDEFINED; - case 1: return ACLFORWARDINGACTION_DROP; - case 2: return ACLFORWARDINGACTION_ACCEPT; - case 3: return ACLFORWARDINGACTION_REJECT; - default: return null; - } - } + public enum AclForwardActionEnum implements com.google.protobuf.ProtocolMessageEnum { + + /** + * ACLFORWARDINGACTION_UNDEFINED = 0; + */ + ACLFORWARDINGACTION_UNDEFINED(0), + /** + * ACLFORWARDINGACTION_DROP = 1; + */ + ACLFORWARDINGACTION_DROP(1), + /** + * ACLFORWARDINGACTION_ACCEPT = 2; + */ + ACLFORWARDINGACTION_ACCEPT(2), + /** + * ACLFORWARDINGACTION_REJECT = 3; + */ + ACLFORWARDINGACTION_REJECT(3), + UNRECOGNIZED(-1); + + /** + * ACLFORWARDINGACTION_UNDEFINED = 0; + */ + public static final int ACLFORWARDINGACTION_UNDEFINED_VALUE = 0; + + /** + * ACLFORWARDINGACTION_DROP = 1; + */ + public static final int ACLFORWARDINGACTION_DROP_VALUE = 1; + + /** + * ACLFORWARDINGACTION_ACCEPT = 2; + */ + public static final int ACLFORWARDINGACTION_ACCEPT_VALUE = 2; + + /** + * ACLFORWARDINGACTION_REJECT = 3; + */ + public static final int ACLFORWARDINGACTION_REJECT_VALUE = 3; + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException("Can't get the number of an unknown enum value."); + } + return value; + } - public static com.google.protobuf.Internal.EnumLiteMap - internalGetValueMap() { - return internalValueMap; - } - private static final com.google.protobuf.Internal.EnumLiteMap< - AclForwardActionEnum> internalValueMap = - new com.google.protobuf.Internal.EnumLiteMap() { - public AclForwardActionEnum findValueByNumber(int number) { - return AclForwardActionEnum.forNumber(number); + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static AclForwardActionEnum valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static AclForwardActionEnum forNumber(int value) { + switch(value) { + case 0: + return ACLFORWARDINGACTION_UNDEFINED; + case 1: + return ACLFORWARDINGACTION_DROP; + case 2: + return ACLFORWARDINGACTION_ACCEPT; + case 3: + return ACLFORWARDINGACTION_REJECT; + default: + return null; } - }; + } - public final com.google.protobuf.Descriptors.EnumValueDescriptor - getValueDescriptor() { - if (this == UNRECOGNIZED) { - throw new java.lang.IllegalStateException( - "Can't get the descriptor of an unrecognized enum value."); - } - return getDescriptor().getValues().get(ordinal()); - } - public final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptorForType() { - return getDescriptor(); - } - public static final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptor() { - return acl.Acl.getDescriptor().getEnumTypes().get(1); - } + public static com.google.protobuf.Internal.EnumLiteMap internalGetValueMap() { + return internalValueMap; + } - private static final AclForwardActionEnum[] VALUES = values(); - - public static AclForwardActionEnum valueOf( - com.google.protobuf.Descriptors.EnumValueDescriptor desc) { - if (desc.getType() != getDescriptor()) { - throw new java.lang.IllegalArgumentException( - "EnumValueDescriptor is not for this type."); - } - if (desc.getIndex() == -1) { - return UNRECOGNIZED; - } - return VALUES[desc.getIndex()]; - } + private static final com.google.protobuf.Internal.EnumLiteMap internalValueMap = new com.google.protobuf.Internal.EnumLiteMap() { - private final int value; + public AclForwardActionEnum findValueByNumber(int number) { + return AclForwardActionEnum.forNumber(number); + } + }; - private AclForwardActionEnum(int value) { - this.value = value; - } + public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException("Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } - // @@protoc_insertion_point(enum_scope:acl.AclForwardActionEnum) - } + public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() { + return getDescriptor(); + } - /** - * Protobuf enum {@code acl.AclLogActionEnum} - */ - public enum AclLogActionEnum - implements com.google.protobuf.ProtocolMessageEnum { - /** - * ACLLOGACTION_UNDEFINED = 0; - */ - ACLLOGACTION_UNDEFINED(0), - /** - * ACLLOGACTION_NOLOG = 1; - */ - ACLLOGACTION_NOLOG(1), - /** - * ACLLOGACTION_SYSLOG = 2; - */ - ACLLOGACTION_SYSLOG(2), - UNRECOGNIZED(-1), - ; + public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { + return acl.Acl.getDescriptor().getEnumTypes().get(1); + } - /** - * ACLLOGACTION_UNDEFINED = 0; - */ - public static final int ACLLOGACTION_UNDEFINED_VALUE = 0; - /** - * ACLLOGACTION_NOLOG = 1; - */ - public static final int ACLLOGACTION_NOLOG_VALUE = 1; - /** - * ACLLOGACTION_SYSLOG = 2; - */ - public static final int ACLLOGACTION_SYSLOG_VALUE = 2; + private static final AclForwardActionEnum[] VALUES = values(); + public static AclForwardActionEnum valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } - public final int getNumber() { - if (this == UNRECOGNIZED) { - throw new java.lang.IllegalArgumentException( - "Can't get the number of an unknown enum value."); - } - return value; - } + private final int value; - /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. - * @deprecated Use {@link #forNumber(int)} instead. - */ - @java.lang.Deprecated - public static AclLogActionEnum valueOf(int value) { - return forNumber(value); + private AclForwardActionEnum(int value) { + this.value = value; + } } /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. + * Protobuf enum {@code acl.AclLogActionEnum} */ - public static AclLogActionEnum forNumber(int value) { - switch (value) { - case 0: return ACLLOGACTION_UNDEFINED; - case 1: return ACLLOGACTION_NOLOG; - case 2: return ACLLOGACTION_SYSLOG; - default: return null; - } - } + public enum AclLogActionEnum implements com.google.protobuf.ProtocolMessageEnum { + + /** + * ACLLOGACTION_UNDEFINED = 0; + */ + ACLLOGACTION_UNDEFINED(0), + /** + * ACLLOGACTION_NOLOG = 1; + */ + ACLLOGACTION_NOLOG(1), + /** + * ACLLOGACTION_SYSLOG = 2; + */ + ACLLOGACTION_SYSLOG(2), + UNRECOGNIZED(-1); + + /** + * ACLLOGACTION_UNDEFINED = 0; + */ + public static final int ACLLOGACTION_UNDEFINED_VALUE = 0; + + /** + * ACLLOGACTION_NOLOG = 1; + */ + public static final int ACLLOGACTION_NOLOG_VALUE = 1; + + /** + * ACLLOGACTION_SYSLOG = 2; + */ + public static final int ACLLOGACTION_SYSLOG_VALUE = 2; + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException("Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static AclLogActionEnum valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static AclLogActionEnum forNumber(int value) { + switch(value) { + case 0: + return ACLLOGACTION_UNDEFINED; + case 1: + return ACLLOGACTION_NOLOG; + case 2: + return ACLLOGACTION_SYSLOG; + default: + return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap internalGetValueMap() { + return internalValueMap; + } + + private static final com.google.protobuf.Internal.EnumLiteMap internalValueMap = new com.google.protobuf.Internal.EnumLiteMap() { - public static com.google.protobuf.Internal.EnumLiteMap - internalGetValueMap() { - return internalValueMap; - } - private static final com.google.protobuf.Internal.EnumLiteMap< - AclLogActionEnum> internalValueMap = - new com.google.protobuf.Internal.EnumLiteMap() { public AclLogActionEnum findValueByNumber(int number) { - return AclLogActionEnum.forNumber(number); + return AclLogActionEnum.forNumber(number); } - }; + }; - public final com.google.protobuf.Descriptors.EnumValueDescriptor - getValueDescriptor() { - if (this == UNRECOGNIZED) { - throw new java.lang.IllegalStateException( - "Can't get the descriptor of an unrecognized enum value."); - } - return getDescriptor().getValues().get(ordinal()); - } - public final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptorForType() { - return getDescriptor(); - } - public static final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptor() { - return acl.Acl.getDescriptor().getEnumTypes().get(2); - } + public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException("Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } - private static final AclLogActionEnum[] VALUES = values(); - - public static AclLogActionEnum valueOf( - com.google.protobuf.Descriptors.EnumValueDescriptor desc) { - if (desc.getType() != getDescriptor()) { - throw new java.lang.IllegalArgumentException( - "EnumValueDescriptor is not for this type."); - } - if (desc.getIndex() == -1) { - return UNRECOGNIZED; - } - return VALUES[desc.getIndex()]; - } + public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() { + return getDescriptor(); + } - private final int value; + public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { + return acl.Acl.getDescriptor().getEnumTypes().get(2); + } - private AclLogActionEnum(int value) { - this.value = value; - } + private static final AclLogActionEnum[] VALUES = values(); - // @@protoc_insertion_point(enum_scope:acl.AclLogActionEnum) - } + public static AclLogActionEnum valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } - public interface AclMatchOrBuilder extends - // @@protoc_insertion_point(interface_extends:acl.AclMatch) - com.google.protobuf.MessageOrBuilder { + private final int value; - /** - * uint32 dscp = 1; - * @return The dscp. - */ - int getDscp(); + private AclLogActionEnum(int value) { + this.value = value; + } + } - /** - * uint32 protocol = 2; - * @return The protocol. - */ - int getProtocol(); + public interface AclMatchOrBuilder extends // @@protoc_insertion_point(interface_extends:acl.AclMatch) + com.google.protobuf.MessageOrBuilder { + + /** + * uint32 dscp = 1; + * @return The dscp. + */ + int getDscp(); + + /** + * uint32 protocol = 2; + * @return The protocol. + */ + int getProtocol(); + + /** + * string src_address = 3; + * @return The srcAddress. + */ + java.lang.String getSrcAddress(); + + /** + * string src_address = 3; + * @return The bytes for srcAddress. + */ + com.google.protobuf.ByteString getSrcAddressBytes(); + + /** + * string dst_address = 4; + * @return The dstAddress. + */ + java.lang.String getDstAddress(); + + /** + * string dst_address = 4; + * @return The bytes for dstAddress. + */ + com.google.protobuf.ByteString getDstAddressBytes(); + + /** + * uint32 src_port = 5; + * @return The srcPort. + */ + int getSrcPort(); + + /** + * uint32 dst_port = 6; + * @return The dstPort. + */ + int getDstPort(); + + /** + * uint32 start_mpls_label = 7; + * @return The startMplsLabel. + */ + int getStartMplsLabel(); + + /** + * uint32 end_mpls_label = 8; + * @return The endMplsLabel. + */ + int getEndMplsLabel(); + } /** - * string src_address = 3; - * @return The srcAddress. - */ - java.lang.String getSrcAddress(); - /** - * string src_address = 3; - * @return The bytes for srcAddress. + * Protobuf type {@code acl.AclMatch} */ - com.google.protobuf.ByteString - getSrcAddressBytes(); + public static final class AclMatch extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:acl.AclMatch) + AclMatchOrBuilder { - /** - * string dst_address = 4; - * @return The dstAddress. - */ - java.lang.String getDstAddress(); - /** - * string dst_address = 4; - * @return The bytes for dstAddress. - */ - com.google.protobuf.ByteString - getDstAddressBytes(); + private static final long serialVersionUID = 0L; - /** - * uint32 src_port = 5; - * @return The srcPort. - */ - int getSrcPort(); + // Use AclMatch.newBuilder() to construct. + private AclMatch(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } - /** - * uint32 dst_port = 6; - * @return The dstPort. - */ - int getDstPort(); + private AclMatch() { + srcAddress_ = ""; + dstAddress_ = ""; + } - /** - * uint32 start_mpls_label = 7; - * @return The startMplsLabel. - */ - int getStartMplsLabel(); + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new AclMatch(); + } - /** - * uint32 end_mpls_label = 8; - * @return The endMplsLabel. - */ - int getEndMplsLabel(); - } - /** - * Protobuf type {@code acl.AclMatch} - */ - public static final class AclMatch extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:acl.AclMatch) - AclMatchOrBuilder { - private static final long serialVersionUID = 0L; - // Use AclMatch.newBuilder() to construct. - private AclMatch(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private AclMatch() { - srcAddress_ = ""; - dstAddress_ = ""; - } + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return acl.Acl.internal_static_acl_AclMatch_descriptor; + } - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new AclMatch(); - } + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return acl.Acl.internal_static_acl_AclMatch_fieldAccessorTable.ensureFieldAccessorsInitialized(acl.Acl.AclMatch.class, acl.Acl.AclMatch.Builder.class); + } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private AclMatch( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = - com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 8: { - - dscp_ = input.readUInt32(); - break; - } - case 16: { - - protocol_ = input.readUInt32(); - break; - } - case 26: { - java.lang.String s = input.readStringRequireUtf8(); - - srcAddress_ = s; - break; - } - case 34: { - java.lang.String s = input.readStringRequireUtf8(); - - dstAddress_ = s; - break; - } - case 40: { - - srcPort_ = input.readUInt32(); - break; - } - case 48: { - - dstPort_ = input.readUInt32(); - break; - } - case 56: { - - startMplsLabel_ = input.readUInt32(); - break; - } - case 64: { - - endMplsLabel_ = input.readUInt32(); - break; - } - default: { - if (!parseUnknownField( - input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException( - e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return acl.Acl.internal_static_acl_AclMatch_descriptor; - } + public static final int DSCP_FIELD_NUMBER = 1; - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return acl.Acl.internal_static_acl_AclMatch_fieldAccessorTable - .ensureFieldAccessorsInitialized( - acl.Acl.AclMatch.class, acl.Acl.AclMatch.Builder.class); - } + private int dscp_ = 0; - public static final int DSCP_FIELD_NUMBER = 1; - private int dscp_; - /** - * uint32 dscp = 1; - * @return The dscp. - */ - @java.lang.Override - public int getDscp() { - return dscp_; - } + /** + * uint32 dscp = 1; + * @return The dscp. + */ + @java.lang.Override + public int getDscp() { + return dscp_; + } - public static final int PROTOCOL_FIELD_NUMBER = 2; - private int protocol_; - /** - * uint32 protocol = 2; - * @return The protocol. - */ - @java.lang.Override - public int getProtocol() { - return protocol_; - } + public static final int PROTOCOL_FIELD_NUMBER = 2; - public static final int SRC_ADDRESS_FIELD_NUMBER = 3; - private volatile java.lang.Object srcAddress_; - /** - * string src_address = 3; - * @return The srcAddress. - */ - @java.lang.Override - public java.lang.String getSrcAddress() { - java.lang.Object ref = srcAddress_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - srcAddress_ = s; - return s; - } - } - /** - * string src_address = 3; - * @return The bytes for srcAddress. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getSrcAddressBytes() { - java.lang.Object ref = srcAddress_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - srcAddress_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } + private int protocol_ = 0; - public static final int DST_ADDRESS_FIELD_NUMBER = 4; - private volatile java.lang.Object dstAddress_; - /** - * string dst_address = 4; - * @return The dstAddress. - */ - @java.lang.Override - public java.lang.String getDstAddress() { - java.lang.Object ref = dstAddress_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - dstAddress_ = s; - return s; - } - } - /** - * string dst_address = 4; - * @return The bytes for dstAddress. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getDstAddressBytes() { - java.lang.Object ref = dstAddress_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - dstAddress_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } + /** + * uint32 protocol = 2; + * @return The protocol. + */ + @java.lang.Override + public int getProtocol() { + return protocol_; + } - public static final int SRC_PORT_FIELD_NUMBER = 5; - private int srcPort_; - /** - * uint32 src_port = 5; - * @return The srcPort. - */ - @java.lang.Override - public int getSrcPort() { - return srcPort_; - } + public static final int SRC_ADDRESS_FIELD_NUMBER = 3; - public static final int DST_PORT_FIELD_NUMBER = 6; - private int dstPort_; - /** - * uint32 dst_port = 6; - * @return The dstPort. - */ - @java.lang.Override - public int getDstPort() { - return dstPort_; - } + @SuppressWarnings("serial") + private volatile java.lang.Object srcAddress_ = ""; - public static final int START_MPLS_LABEL_FIELD_NUMBER = 7; - private int startMplsLabel_; - /** - * uint32 start_mpls_label = 7; - * @return The startMplsLabel. - */ - @java.lang.Override - public int getStartMplsLabel() { - return startMplsLabel_; - } + /** + * string src_address = 3; + * @return The srcAddress. + */ + @java.lang.Override + public java.lang.String getSrcAddress() { + java.lang.Object ref = srcAddress_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + srcAddress_ = s; + return s; + } + } - public static final int END_MPLS_LABEL_FIELD_NUMBER = 8; - private int endMplsLabel_; - /** - * uint32 end_mpls_label = 8; - * @return The endMplsLabel. - */ - @java.lang.Override - public int getEndMplsLabel() { - return endMplsLabel_; - } + /** + * string src_address = 3; + * @return The bytes for srcAddress. + */ + @java.lang.Override + public com.google.protobuf.ByteString getSrcAddressBytes() { + java.lang.Object ref = srcAddress_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + srcAddress_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; + public static final int DST_ADDRESS_FIELD_NUMBER = 4; - memoizedIsInitialized = 1; - return true; - } + @SuppressWarnings("serial") + private volatile java.lang.Object dstAddress_ = ""; - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (dscp_ != 0) { - output.writeUInt32(1, dscp_); - } - if (protocol_ != 0) { - output.writeUInt32(2, protocol_); - } - if (!getSrcAddressBytes().isEmpty()) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 3, srcAddress_); - } - if (!getDstAddressBytes().isEmpty()) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 4, dstAddress_); - } - if (srcPort_ != 0) { - output.writeUInt32(5, srcPort_); - } - if (dstPort_ != 0) { - output.writeUInt32(6, dstPort_); - } - if (startMplsLabel_ != 0) { - output.writeUInt32(7, startMplsLabel_); - } - if (endMplsLabel_ != 0) { - output.writeUInt32(8, endMplsLabel_); - } - unknownFields.writeTo(output); - } + /** + * string dst_address = 4; + * @return The dstAddress. + */ + @java.lang.Override + public java.lang.String getDstAddress() { + java.lang.Object ref = dstAddress_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + dstAddress_ = s; + return s; + } + } - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (dscp_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(1, dscp_); - } - if (protocol_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(2, protocol_); - } - if (!getSrcAddressBytes().isEmpty()) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, srcAddress_); - } - if (!getDstAddressBytes().isEmpty()) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, dstAddress_); - } - if (srcPort_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(5, srcPort_); - } - if (dstPort_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(6, dstPort_); - } - if (startMplsLabel_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(7, startMplsLabel_); - } - if (endMplsLabel_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(8, endMplsLabel_); - } - size += unknownFields.getSerializedSize(); - memoizedSize = size; - return size; - } + /** + * string dst_address = 4; + * @return The bytes for dstAddress. + */ + @java.lang.Override + public com.google.protobuf.ByteString getDstAddressBytes() { + java.lang.Object ref = dstAddress_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + dstAddress_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof acl.Acl.AclMatch)) { - return super.equals(obj); - } - acl.Acl.AclMatch other = (acl.Acl.AclMatch) obj; - - if (getDscp() - != other.getDscp()) return false; - if (getProtocol() - != other.getProtocol()) return false; - if (!getSrcAddress() - .equals(other.getSrcAddress())) return false; - if (!getDstAddress() - .equals(other.getDstAddress())) return false; - if (getSrcPort() - != other.getSrcPort()) return false; - if (getDstPort() - != other.getDstPort()) return false; - if (getStartMplsLabel() - != other.getStartMplsLabel()) return false; - if (getEndMplsLabel() - != other.getEndMplsLabel()) return false; - if (!unknownFields.equals(other.unknownFields)) return false; - return true; - } + public static final int SRC_PORT_FIELD_NUMBER = 5; - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + DSCP_FIELD_NUMBER; - hash = (53 * hash) + getDscp(); - hash = (37 * hash) + PROTOCOL_FIELD_NUMBER; - hash = (53 * hash) + getProtocol(); - hash = (37 * hash) + SRC_ADDRESS_FIELD_NUMBER; - hash = (53 * hash) + getSrcAddress().hashCode(); - hash = (37 * hash) + DST_ADDRESS_FIELD_NUMBER; - hash = (53 * hash) + getDstAddress().hashCode(); - hash = (37 * hash) + SRC_PORT_FIELD_NUMBER; - hash = (53 * hash) + getSrcPort(); - hash = (37 * hash) + DST_PORT_FIELD_NUMBER; - hash = (53 * hash) + getDstPort(); - hash = (37 * hash) + START_MPLS_LABEL_FIELD_NUMBER; - hash = (53 * hash) + getStartMplsLabel(); - hash = (37 * hash) + END_MPLS_LABEL_FIELD_NUMBER; - hash = (53 * hash) + getEndMplsLabel(); - hash = (29 * hash) + unknownFields.hashCode(); - memoizedHashCode = hash; - return hash; - } + private int srcPort_ = 0; - public static acl.Acl.AclMatch parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static acl.Acl.AclMatch parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static acl.Acl.AclMatch parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static acl.Acl.AclMatch parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static acl.Acl.AclMatch parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static acl.Acl.AclMatch parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static acl.Acl.AclMatch parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static acl.Acl.AclMatch parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - public static acl.Acl.AclMatch parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - public static acl.Acl.AclMatch parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static acl.Acl.AclMatch parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static acl.Acl.AclMatch parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } + /** + * uint32 src_port = 5; + * @return The srcPort. + */ + @java.lang.Override + public int getSrcPort() { + return srcPort_; + } - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(acl.Acl.AclMatch prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } + public static final int DST_PORT_FIELD_NUMBER = 6; - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code acl.AclMatch} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:acl.AclMatch) - acl.Acl.AclMatchOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return acl.Acl.internal_static_acl_AclMatch_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return acl.Acl.internal_static_acl_AclMatch_fieldAccessorTable - .ensureFieldAccessorsInitialized( - acl.Acl.AclMatch.class, acl.Acl.AclMatch.Builder.class); - } - - // Construct using acl.Acl.AclMatch.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3 - .alwaysUseFieldBuilders) { - } - } - @java.lang.Override - public Builder clear() { - super.clear(); - dscp_ = 0; - - protocol_ = 0; - - srcAddress_ = ""; - - dstAddress_ = ""; - - srcPort_ = 0; - - dstPort_ = 0; - - startMplsLabel_ = 0; - - endMplsLabel_ = 0; - - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return acl.Acl.internal_static_acl_AclMatch_descriptor; - } - - @java.lang.Override - public acl.Acl.AclMatch getDefaultInstanceForType() { - return acl.Acl.AclMatch.getDefaultInstance(); - } - - @java.lang.Override - public acl.Acl.AclMatch build() { - acl.Acl.AclMatch result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public acl.Acl.AclMatch buildPartial() { - acl.Acl.AclMatch result = new acl.Acl.AclMatch(this); - result.dscp_ = dscp_; - result.protocol_ = protocol_; - result.srcAddress_ = srcAddress_; - result.dstAddress_ = dstAddress_; - result.srcPort_ = srcPort_; - result.dstPort_ = dstPort_; - result.startMplsLabel_ = startMplsLabel_; - result.endMplsLabel_ = endMplsLabel_; - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof acl.Acl.AclMatch) { - return mergeFrom((acl.Acl.AclMatch)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(acl.Acl.AclMatch other) { - if (other == acl.Acl.AclMatch.getDefaultInstance()) return this; - if (other.getDscp() != 0) { - setDscp(other.getDscp()); - } - if (other.getProtocol() != 0) { - setProtocol(other.getProtocol()); - } - if (!other.getSrcAddress().isEmpty()) { - srcAddress_ = other.srcAddress_; - onChanged(); - } - if (!other.getDstAddress().isEmpty()) { - dstAddress_ = other.dstAddress_; - onChanged(); - } - if (other.getSrcPort() != 0) { - setSrcPort(other.getSrcPort()); - } - if (other.getDstPort() != 0) { - setDstPort(other.getDstPort()); - } - if (other.getStartMplsLabel() != 0) { - setStartMplsLabel(other.getStartMplsLabel()); - } - if (other.getEndMplsLabel() != 0) { - setEndMplsLabel(other.getEndMplsLabel()); - } - this.mergeUnknownFields(other.unknownFields); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - acl.Acl.AclMatch parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (acl.Acl.AclMatch) e.getUnfinishedMessage(); - throw e.unwrapIOException(); - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - - private int dscp_ ; - /** - * uint32 dscp = 1; - * @return The dscp. - */ - @java.lang.Override - public int getDscp() { - return dscp_; - } - /** - * uint32 dscp = 1; - * @param value The dscp to set. - * @return This builder for chaining. - */ - public Builder setDscp(int value) { - - dscp_ = value; - onChanged(); - return this; - } - /** - * uint32 dscp = 1; - * @return This builder for chaining. - */ - public Builder clearDscp() { - - dscp_ = 0; - onChanged(); - return this; - } - - private int protocol_ ; - /** - * uint32 protocol = 2; - * @return The protocol. - */ - @java.lang.Override - public int getProtocol() { - return protocol_; - } - /** - * uint32 protocol = 2; - * @param value The protocol to set. - * @return This builder for chaining. - */ - public Builder setProtocol(int value) { - - protocol_ = value; - onChanged(); - return this; - } - /** - * uint32 protocol = 2; - * @return This builder for chaining. - */ - public Builder clearProtocol() { - - protocol_ = 0; - onChanged(); - return this; - } - - private java.lang.Object srcAddress_ = ""; - /** - * string src_address = 3; - * @return The srcAddress. - */ - public java.lang.String getSrcAddress() { - java.lang.Object ref = srcAddress_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - srcAddress_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string src_address = 3; - * @return The bytes for srcAddress. - */ - public com.google.protobuf.ByteString - getSrcAddressBytes() { - java.lang.Object ref = srcAddress_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - srcAddress_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string src_address = 3; - * @param value The srcAddress to set. - * @return This builder for chaining. - */ - public Builder setSrcAddress( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - - srcAddress_ = value; - onChanged(); - return this; - } - /** - * string src_address = 3; - * @return This builder for chaining. - */ - public Builder clearSrcAddress() { - - srcAddress_ = getDefaultInstance().getSrcAddress(); - onChanged(); - return this; - } - /** - * string src_address = 3; - * @param value The bytes for srcAddress to set. - * @return This builder for chaining. - */ - public Builder setSrcAddressBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - - srcAddress_ = value; - onChanged(); - return this; - } - - private java.lang.Object dstAddress_ = ""; - /** - * string dst_address = 4; - * @return The dstAddress. - */ - public java.lang.String getDstAddress() { - java.lang.Object ref = dstAddress_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - dstAddress_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string dst_address = 4; - * @return The bytes for dstAddress. - */ - public com.google.protobuf.ByteString - getDstAddressBytes() { - java.lang.Object ref = dstAddress_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - dstAddress_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string dst_address = 4; - * @param value The dstAddress to set. - * @return This builder for chaining. - */ - public Builder setDstAddress( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - - dstAddress_ = value; - onChanged(); - return this; - } - /** - * string dst_address = 4; - * @return This builder for chaining. - */ - public Builder clearDstAddress() { - - dstAddress_ = getDefaultInstance().getDstAddress(); - onChanged(); - return this; - } - /** - * string dst_address = 4; - * @param value The bytes for dstAddress to set. - * @return This builder for chaining. - */ - public Builder setDstAddressBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - - dstAddress_ = value; - onChanged(); - return this; - } - - private int srcPort_ ; - /** - * uint32 src_port = 5; - * @return The srcPort. - */ - @java.lang.Override - public int getSrcPort() { - return srcPort_; - } - /** - * uint32 src_port = 5; - * @param value The srcPort to set. - * @return This builder for chaining. - */ - public Builder setSrcPort(int value) { - - srcPort_ = value; - onChanged(); - return this; - } - /** - * uint32 src_port = 5; - * @return This builder for chaining. - */ - public Builder clearSrcPort() { - - srcPort_ = 0; - onChanged(); - return this; - } - - private int dstPort_ ; - /** - * uint32 dst_port = 6; - * @return The dstPort. - */ - @java.lang.Override - public int getDstPort() { - return dstPort_; - } - /** - * uint32 dst_port = 6; - * @param value The dstPort to set. - * @return This builder for chaining. - */ - public Builder setDstPort(int value) { - - dstPort_ = value; - onChanged(); - return this; - } - /** - * uint32 dst_port = 6; - * @return This builder for chaining. - */ - public Builder clearDstPort() { - - dstPort_ = 0; - onChanged(); - return this; - } - - private int startMplsLabel_ ; - /** - * uint32 start_mpls_label = 7; - * @return The startMplsLabel. - */ - @java.lang.Override - public int getStartMplsLabel() { - return startMplsLabel_; - } - /** - * uint32 start_mpls_label = 7; - * @param value The startMplsLabel to set. - * @return This builder for chaining. - */ - public Builder setStartMplsLabel(int value) { - - startMplsLabel_ = value; - onChanged(); - return this; - } - /** - * uint32 start_mpls_label = 7; - * @return This builder for chaining. - */ - public Builder clearStartMplsLabel() { - - startMplsLabel_ = 0; - onChanged(); - return this; - } - - private int endMplsLabel_ ; - /** - * uint32 end_mpls_label = 8; - * @return The endMplsLabel. - */ - @java.lang.Override - public int getEndMplsLabel() { - return endMplsLabel_; - } - /** - * uint32 end_mpls_label = 8; - * @param value The endMplsLabel to set. - * @return This builder for chaining. - */ - public Builder setEndMplsLabel(int value) { - - endMplsLabel_ = value; - onChanged(); - return this; - } - /** - * uint32 end_mpls_label = 8; - * @return This builder for chaining. - */ - public Builder clearEndMplsLabel() { - - endMplsLabel_ = 0; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:acl.AclMatch) - } + private int dstPort_ = 0; - // @@protoc_insertion_point(class_scope:acl.AclMatch) - private static final acl.Acl.AclMatch DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new acl.Acl.AclMatch(); - } + /** + * uint32 dst_port = 6; + * @return The dstPort. + */ + @java.lang.Override + public int getDstPort() { + return dstPort_; + } - public static acl.Acl.AclMatch getDefaultInstance() { - return DEFAULT_INSTANCE; - } + public static final int START_MPLS_LABEL_FIELD_NUMBER = 7; - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public AclMatch parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new AclMatch(input, extensionRegistry); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } + private int startMplsLabel_ = 0; - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } + /** + * uint32 start_mpls_label = 7; + * @return The startMplsLabel. + */ + @java.lang.Override + public int getStartMplsLabel() { + return startMplsLabel_; + } - @java.lang.Override - public acl.Acl.AclMatch getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } + public static final int END_MPLS_LABEL_FIELD_NUMBER = 8; - } + private int endMplsLabel_ = 0; - public interface AclActionOrBuilder extends - // @@protoc_insertion_point(interface_extends:acl.AclAction) - com.google.protobuf.MessageOrBuilder { + /** + * uint32 end_mpls_label = 8; + * @return The endMplsLabel. + */ + @java.lang.Override + public int getEndMplsLabel() { + return endMplsLabel_; + } - /** - * .acl.AclForwardActionEnum forward_action = 1; - * @return The enum numeric value on the wire for forwardAction. - */ - int getForwardActionValue(); - /** - * .acl.AclForwardActionEnum forward_action = 1; - * @return The forwardAction. - */ - acl.Acl.AclForwardActionEnum getForwardAction(); + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (dscp_ != 0) { + output.writeUInt32(1, dscp_); + } + if (protocol_ != 0) { + output.writeUInt32(2, protocol_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(srcAddress_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, srcAddress_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(dstAddress_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 4, dstAddress_); + } + if (srcPort_ != 0) { + output.writeUInt32(5, srcPort_); + } + if (dstPort_ != 0) { + output.writeUInt32(6, dstPort_); + } + if (startMplsLabel_ != 0) { + output.writeUInt32(7, startMplsLabel_); + } + if (endMplsLabel_ != 0) { + output.writeUInt32(8, endMplsLabel_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + if (dscp_ != 0) { + size += com.google.protobuf.CodedOutputStream.computeUInt32Size(1, dscp_); + } + if (protocol_ != 0) { + size += com.google.protobuf.CodedOutputStream.computeUInt32Size(2, protocol_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(srcAddress_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, srcAddress_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(dstAddress_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, dstAddress_); + } + if (srcPort_ != 0) { + size += com.google.protobuf.CodedOutputStream.computeUInt32Size(5, srcPort_); + } + if (dstPort_ != 0) { + size += com.google.protobuf.CodedOutputStream.computeUInt32Size(6, dstPort_); + } + if (startMplsLabel_ != 0) { + size += com.google.protobuf.CodedOutputStream.computeUInt32Size(7, startMplsLabel_); + } + if (endMplsLabel_ != 0) { + size += com.google.protobuf.CodedOutputStream.computeUInt32Size(8, endMplsLabel_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof acl.Acl.AclMatch)) { + return super.equals(obj); + } + acl.Acl.AclMatch other = (acl.Acl.AclMatch) obj; + if (getDscp() != other.getDscp()) + return false; + if (getProtocol() != other.getProtocol()) + return false; + if (!getSrcAddress().equals(other.getSrcAddress())) + return false; + if (!getDstAddress().equals(other.getDstAddress())) + return false; + if (getSrcPort() != other.getSrcPort()) + return false; + if (getDstPort() != other.getDstPort()) + return false; + if (getStartMplsLabel() != other.getStartMplsLabel()) + return false; + if (getEndMplsLabel() != other.getEndMplsLabel()) + return false; + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + DSCP_FIELD_NUMBER; + hash = (53 * hash) + getDscp(); + hash = (37 * hash) + PROTOCOL_FIELD_NUMBER; + hash = (53 * hash) + getProtocol(); + hash = (37 * hash) + SRC_ADDRESS_FIELD_NUMBER; + hash = (53 * hash) + getSrcAddress().hashCode(); + hash = (37 * hash) + DST_ADDRESS_FIELD_NUMBER; + hash = (53 * hash) + getDstAddress().hashCode(); + hash = (37 * hash) + SRC_PORT_FIELD_NUMBER; + hash = (53 * hash) + getSrcPort(); + hash = (37 * hash) + DST_PORT_FIELD_NUMBER; + hash = (53 * hash) + getDstPort(); + hash = (37 * hash) + START_MPLS_LABEL_FIELD_NUMBER; + hash = (53 * hash) + getStartMplsLabel(); + hash = (37 * hash) + END_MPLS_LABEL_FIELD_NUMBER; + hash = (53 * hash) + getEndMplsLabel(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static acl.Acl.AclMatch parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static acl.Acl.AclMatch parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static acl.Acl.AclMatch parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static acl.Acl.AclMatch parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static acl.Acl.AclMatch parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static acl.Acl.AclMatch parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static acl.Acl.AclMatch parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static acl.Acl.AclMatch parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static acl.Acl.AclMatch parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static acl.Acl.AclMatch parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static acl.Acl.AclMatch parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static acl.Acl.AclMatch parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(acl.Acl.AclMatch prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code acl.AclMatch} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:acl.AclMatch) + acl.Acl.AclMatchOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return acl.Acl.internal_static_acl_AclMatch_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return acl.Acl.internal_static_acl_AclMatch_fieldAccessorTable.ensureFieldAccessorsInitialized(acl.Acl.AclMatch.class, acl.Acl.AclMatch.Builder.class); + } + + // Construct using acl.Acl.AclMatch.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + dscp_ = 0; + protocol_ = 0; + srcAddress_ = ""; + dstAddress_ = ""; + srcPort_ = 0; + dstPort_ = 0; + startMplsLabel_ = 0; + endMplsLabel_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return acl.Acl.internal_static_acl_AclMatch_descriptor; + } + + @java.lang.Override + public acl.Acl.AclMatch getDefaultInstanceForType() { + return acl.Acl.AclMatch.getDefaultInstance(); + } + + @java.lang.Override + public acl.Acl.AclMatch build() { + acl.Acl.AclMatch result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public acl.Acl.AclMatch buildPartial() { + acl.Acl.AclMatch result = new acl.Acl.AclMatch(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(acl.Acl.AclMatch result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.dscp_ = dscp_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.protocol_ = protocol_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.srcAddress_ = srcAddress_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.dstAddress_ = dstAddress_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.srcPort_ = srcPort_; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.dstPort_ = dstPort_; + } + if (((from_bitField0_ & 0x00000040) != 0)) { + result.startMplsLabel_ = startMplsLabel_; + } + if (((from_bitField0_ & 0x00000080) != 0)) { + result.endMplsLabel_ = endMplsLabel_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof acl.Acl.AclMatch) { + return mergeFrom((acl.Acl.AclMatch) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(acl.Acl.AclMatch other) { + if (other == acl.Acl.AclMatch.getDefaultInstance()) + return this; + if (other.getDscp() != 0) { + setDscp(other.getDscp()); + } + if (other.getProtocol() != 0) { + setProtocol(other.getProtocol()); + } + if (!other.getSrcAddress().isEmpty()) { + srcAddress_ = other.srcAddress_; + bitField0_ |= 0x00000004; + onChanged(); + } + if (!other.getDstAddress().isEmpty()) { + dstAddress_ = other.dstAddress_; + bitField0_ |= 0x00000008; + onChanged(); + } + if (other.getSrcPort() != 0) { + setSrcPort(other.getSrcPort()); + } + if (other.getDstPort() != 0) { + setDstPort(other.getDstPort()); + } + if (other.getStartMplsLabel() != 0) { + setStartMplsLabel(other.getStartMplsLabel()); + } + if (other.getEndMplsLabel() != 0) { + setEndMplsLabel(other.getEndMplsLabel()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 8: + { + dscp_ = input.readUInt32(); + bitField0_ |= 0x00000001; + break; + } + // case 8 + case 16: + { + protocol_ = input.readUInt32(); + bitField0_ |= 0x00000002; + break; + } + // case 16 + case 26: + { + srcAddress_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } + // case 26 + case 34: + { + dstAddress_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000008; + break; + } + // case 34 + case 40: + { + srcPort_ = input.readUInt32(); + bitField0_ |= 0x00000010; + break; + } + // case 40 + case 48: + { + dstPort_ = input.readUInt32(); + bitField0_ |= 0x00000020; + break; + } + // case 48 + case 56: + { + startMplsLabel_ = input.readUInt32(); + bitField0_ |= 0x00000040; + break; + } + // case 56 + case 64: + { + endMplsLabel_ = input.readUInt32(); + bitField0_ |= 0x00000080; + break; + } + // case 64 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private int dscp_; + + /** + * uint32 dscp = 1; + * @return The dscp. + */ + @java.lang.Override + public int getDscp() { + return dscp_; + } + + /** + * uint32 dscp = 1; + * @param value The dscp to set. + * @return This builder for chaining. + */ + public Builder setDscp(int value) { + dscp_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * uint32 dscp = 1; + * @return This builder for chaining. + */ + public Builder clearDscp() { + bitField0_ = (bitField0_ & ~0x00000001); + dscp_ = 0; + onChanged(); + return this; + } + + private int protocol_; + + /** + * uint32 protocol = 2; + * @return The protocol. + */ + @java.lang.Override + public int getProtocol() { + return protocol_; + } + + /** + * uint32 protocol = 2; + * @param value The protocol to set. + * @return This builder for chaining. + */ + public Builder setProtocol(int value) { + protocol_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * uint32 protocol = 2; + * @return This builder for chaining. + */ + public Builder clearProtocol() { + bitField0_ = (bitField0_ & ~0x00000002); + protocol_ = 0; + onChanged(); + return this; + } + + private java.lang.Object srcAddress_ = ""; + + /** + * string src_address = 3; + * @return The srcAddress. + */ + public java.lang.String getSrcAddress() { + java.lang.Object ref = srcAddress_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + srcAddress_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * string src_address = 3; + * @return The bytes for srcAddress. + */ + public com.google.protobuf.ByteString getSrcAddressBytes() { + java.lang.Object ref = srcAddress_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + srcAddress_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * string src_address = 3; + * @param value The srcAddress to set. + * @return This builder for chaining. + */ + public Builder setSrcAddress(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + srcAddress_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * string src_address = 3; + * @return This builder for chaining. + */ + public Builder clearSrcAddress() { + srcAddress_ = getDefaultInstance().getSrcAddress(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + + /** + * string src_address = 3; + * @param value The bytes for srcAddress to set. + * @return This builder for chaining. + */ + public Builder setSrcAddressBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + srcAddress_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + private java.lang.Object dstAddress_ = ""; + + /** + * string dst_address = 4; + * @return The dstAddress. + */ + public java.lang.String getDstAddress() { + java.lang.Object ref = dstAddress_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + dstAddress_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * string dst_address = 4; + * @return The bytes for dstAddress. + */ + public com.google.protobuf.ByteString getDstAddressBytes() { + java.lang.Object ref = dstAddress_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + dstAddress_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * string dst_address = 4; + * @param value The dstAddress to set. + * @return This builder for chaining. + */ + public Builder setDstAddress(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + dstAddress_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * string dst_address = 4; + * @return This builder for chaining. + */ + public Builder clearDstAddress() { + dstAddress_ = getDefaultInstance().getDstAddress(); + bitField0_ = (bitField0_ & ~0x00000008); + onChanged(); + return this; + } + + /** + * string dst_address = 4; + * @param value The bytes for dstAddress to set. + * @return This builder for chaining. + */ + public Builder setDstAddressBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + dstAddress_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + private int srcPort_; + + /** + * uint32 src_port = 5; + * @return The srcPort. + */ + @java.lang.Override + public int getSrcPort() { + return srcPort_; + } + + /** + * uint32 src_port = 5; + * @param value The srcPort to set. + * @return This builder for chaining. + */ + public Builder setSrcPort(int value) { + srcPort_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + /** + * uint32 src_port = 5; + * @return This builder for chaining. + */ + public Builder clearSrcPort() { + bitField0_ = (bitField0_ & ~0x00000010); + srcPort_ = 0; + onChanged(); + return this; + } + + private int dstPort_; + + /** + * uint32 dst_port = 6; + * @return The dstPort. + */ + @java.lang.Override + public int getDstPort() { + return dstPort_; + } + + /** + * uint32 dst_port = 6; + * @param value The dstPort to set. + * @return This builder for chaining. + */ + public Builder setDstPort(int value) { + dstPort_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + + /** + * uint32 dst_port = 6; + * @return This builder for chaining. + */ + public Builder clearDstPort() { + bitField0_ = (bitField0_ & ~0x00000020); + dstPort_ = 0; + onChanged(); + return this; + } + + private int startMplsLabel_; + + /** + * uint32 start_mpls_label = 7; + * @return The startMplsLabel. + */ + @java.lang.Override + public int getStartMplsLabel() { + return startMplsLabel_; + } + + /** + * uint32 start_mpls_label = 7; + * @param value The startMplsLabel to set. + * @return This builder for chaining. + */ + public Builder setStartMplsLabel(int value) { + startMplsLabel_ = value; + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + + /** + * uint32 start_mpls_label = 7; + * @return This builder for chaining. + */ + public Builder clearStartMplsLabel() { + bitField0_ = (bitField0_ & ~0x00000040); + startMplsLabel_ = 0; + onChanged(); + return this; + } + + private int endMplsLabel_; + + /** + * uint32 end_mpls_label = 8; + * @return The endMplsLabel. + */ + @java.lang.Override + public int getEndMplsLabel() { + return endMplsLabel_; + } + + /** + * uint32 end_mpls_label = 8; + * @param value The endMplsLabel to set. + * @return This builder for chaining. + */ + public Builder setEndMplsLabel(int value) { + endMplsLabel_ = value; + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + + /** + * uint32 end_mpls_label = 8; + * @return This builder for chaining. + */ + public Builder clearEndMplsLabel() { + bitField0_ = (bitField0_ & ~0x00000080); + endMplsLabel_ = 0; + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:acl.AclMatch) + } + + // @@protoc_insertion_point(class_scope:acl.AclMatch) + private static final acl.Acl.AclMatch DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new acl.Acl.AclMatch(); + } + + public static acl.Acl.AclMatch getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public AclMatch parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public acl.Acl.AclMatch getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface AclActionOrBuilder extends // @@protoc_insertion_point(interface_extends:acl.AclAction) + com.google.protobuf.MessageOrBuilder { + + /** + * .acl.AclForwardActionEnum forward_action = 1; + * @return The enum numeric value on the wire for forwardAction. + */ + int getForwardActionValue(); + + /** + * .acl.AclForwardActionEnum forward_action = 1; + * @return The forwardAction. + */ + acl.Acl.AclForwardActionEnum getForwardAction(); + + /** + * .acl.AclLogActionEnum log_action = 2; + * @return The enum numeric value on the wire for logAction. + */ + int getLogActionValue(); + + /** + * .acl.AclLogActionEnum log_action = 2; + * @return The logAction. + */ + acl.Acl.AclLogActionEnum getLogAction(); + } /** - * .acl.AclLogActionEnum log_action = 2; - * @return The enum numeric value on the wire for logAction. - */ - int getLogActionValue(); - /** - * .acl.AclLogActionEnum log_action = 2; - * @return The logAction. + * Protobuf type {@code acl.AclAction} */ - acl.Acl.AclLogActionEnum getLogAction(); - } - /** - * Protobuf type {@code acl.AclAction} - */ - public static final class AclAction extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:acl.AclAction) - AclActionOrBuilder { - private static final long serialVersionUID = 0L; - // Use AclAction.newBuilder() to construct. - private AclAction(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); + public static final class AclAction extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:acl.AclAction) + AclActionOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use AclAction.newBuilder() to construct. + private AclAction(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private AclAction() { + forwardAction_ = 0; + logAction_ = 0; + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new AclAction(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return acl.Acl.internal_static_acl_AclAction_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return acl.Acl.internal_static_acl_AclAction_fieldAccessorTable.ensureFieldAccessorsInitialized(acl.Acl.AclAction.class, acl.Acl.AclAction.Builder.class); + } + + public static final int FORWARD_ACTION_FIELD_NUMBER = 1; + + private int forwardAction_ = 0; + + /** + * .acl.AclForwardActionEnum forward_action = 1; + * @return The enum numeric value on the wire for forwardAction. + */ + @java.lang.Override + public int getForwardActionValue() { + return forwardAction_; + } + + /** + * .acl.AclForwardActionEnum forward_action = 1; + * @return The forwardAction. + */ + @java.lang.Override + public acl.Acl.AclForwardActionEnum getForwardAction() { + acl.Acl.AclForwardActionEnum result = acl.Acl.AclForwardActionEnum.forNumber(forwardAction_); + return result == null ? acl.Acl.AclForwardActionEnum.UNRECOGNIZED : result; + } + + public static final int LOG_ACTION_FIELD_NUMBER = 2; + + private int logAction_ = 0; + + /** + * .acl.AclLogActionEnum log_action = 2; + * @return The enum numeric value on the wire for logAction. + */ + @java.lang.Override + public int getLogActionValue() { + return logAction_; + } + + /** + * .acl.AclLogActionEnum log_action = 2; + * @return The logAction. + */ + @java.lang.Override + public acl.Acl.AclLogActionEnum getLogAction() { + acl.Acl.AclLogActionEnum result = acl.Acl.AclLogActionEnum.forNumber(logAction_); + return result == null ? acl.Acl.AclLogActionEnum.UNRECOGNIZED : result; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (forwardAction_ != acl.Acl.AclForwardActionEnum.ACLFORWARDINGACTION_UNDEFINED.getNumber()) { + output.writeEnum(1, forwardAction_); + } + if (logAction_ != acl.Acl.AclLogActionEnum.ACLLOGACTION_UNDEFINED.getNumber()) { + output.writeEnum(2, logAction_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + if (forwardAction_ != acl.Acl.AclForwardActionEnum.ACLFORWARDINGACTION_UNDEFINED.getNumber()) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(1, forwardAction_); + } + if (logAction_ != acl.Acl.AclLogActionEnum.ACLLOGACTION_UNDEFINED.getNumber()) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(2, logAction_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof acl.Acl.AclAction)) { + return super.equals(obj); + } + acl.Acl.AclAction other = (acl.Acl.AclAction) obj; + if (forwardAction_ != other.forwardAction_) + return false; + if (logAction_ != other.logAction_) + return false; + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + FORWARD_ACTION_FIELD_NUMBER; + hash = (53 * hash) + forwardAction_; + hash = (37 * hash) + LOG_ACTION_FIELD_NUMBER; + hash = (53 * hash) + logAction_; + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static acl.Acl.AclAction parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static acl.Acl.AclAction parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static acl.Acl.AclAction parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static acl.Acl.AclAction parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static acl.Acl.AclAction parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static acl.Acl.AclAction parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static acl.Acl.AclAction parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static acl.Acl.AclAction parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static acl.Acl.AclAction parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static acl.Acl.AclAction parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static acl.Acl.AclAction parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static acl.Acl.AclAction parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(acl.Acl.AclAction prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code acl.AclAction} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:acl.AclAction) + acl.Acl.AclActionOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return acl.Acl.internal_static_acl_AclAction_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return acl.Acl.internal_static_acl_AclAction_fieldAccessorTable.ensureFieldAccessorsInitialized(acl.Acl.AclAction.class, acl.Acl.AclAction.Builder.class); + } + + // Construct using acl.Acl.AclAction.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + forwardAction_ = 0; + logAction_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return acl.Acl.internal_static_acl_AclAction_descriptor; + } + + @java.lang.Override + public acl.Acl.AclAction getDefaultInstanceForType() { + return acl.Acl.AclAction.getDefaultInstance(); + } + + @java.lang.Override + public acl.Acl.AclAction build() { + acl.Acl.AclAction result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public acl.Acl.AclAction buildPartial() { + acl.Acl.AclAction result = new acl.Acl.AclAction(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(acl.Acl.AclAction result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.forwardAction_ = forwardAction_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.logAction_ = logAction_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof acl.Acl.AclAction) { + return mergeFrom((acl.Acl.AclAction) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(acl.Acl.AclAction other) { + if (other == acl.Acl.AclAction.getDefaultInstance()) + return this; + if (other.forwardAction_ != 0) { + setForwardActionValue(other.getForwardActionValue()); + } + if (other.logAction_ != 0) { + setLogActionValue(other.getLogActionValue()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 8: + { + forwardAction_ = input.readEnum(); + bitField0_ |= 0x00000001; + break; + } + // case 8 + case 16: + { + logAction_ = input.readEnum(); + bitField0_ |= 0x00000002; + break; + } + // case 16 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private int forwardAction_ = 0; + + /** + * .acl.AclForwardActionEnum forward_action = 1; + * @return The enum numeric value on the wire for forwardAction. + */ + @java.lang.Override + public int getForwardActionValue() { + return forwardAction_; + } + + /** + * .acl.AclForwardActionEnum forward_action = 1; + * @param value The enum numeric value on the wire for forwardAction to set. + * @return This builder for chaining. + */ + public Builder setForwardActionValue(int value) { + forwardAction_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .acl.AclForwardActionEnum forward_action = 1; + * @return The forwardAction. + */ + @java.lang.Override + public acl.Acl.AclForwardActionEnum getForwardAction() { + acl.Acl.AclForwardActionEnum result = acl.Acl.AclForwardActionEnum.forNumber(forwardAction_); + return result == null ? acl.Acl.AclForwardActionEnum.UNRECOGNIZED : result; + } + + /** + * .acl.AclForwardActionEnum forward_action = 1; + * @param value The forwardAction to set. + * @return This builder for chaining. + */ + public Builder setForwardAction(acl.Acl.AclForwardActionEnum value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000001; + forwardAction_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * .acl.AclForwardActionEnum forward_action = 1; + * @return This builder for chaining. + */ + public Builder clearForwardAction() { + bitField0_ = (bitField0_ & ~0x00000001); + forwardAction_ = 0; + onChanged(); + return this; + } + + private int logAction_ = 0; + + /** + * .acl.AclLogActionEnum log_action = 2; + * @return The enum numeric value on the wire for logAction. + */ + @java.lang.Override + public int getLogActionValue() { + return logAction_; + } + + /** + * .acl.AclLogActionEnum log_action = 2; + * @param value The enum numeric value on the wire for logAction to set. + * @return This builder for chaining. + */ + public Builder setLogActionValue(int value) { + logAction_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * .acl.AclLogActionEnum log_action = 2; + * @return The logAction. + */ + @java.lang.Override + public acl.Acl.AclLogActionEnum getLogAction() { + acl.Acl.AclLogActionEnum result = acl.Acl.AclLogActionEnum.forNumber(logAction_); + return result == null ? acl.Acl.AclLogActionEnum.UNRECOGNIZED : result; + } + + /** + * .acl.AclLogActionEnum log_action = 2; + * @param value The logAction to set. + * @return This builder for chaining. + */ + public Builder setLogAction(acl.Acl.AclLogActionEnum value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000002; + logAction_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * .acl.AclLogActionEnum log_action = 2; + * @return This builder for chaining. + */ + public Builder clearLogAction() { + bitField0_ = (bitField0_ & ~0x00000002); + logAction_ = 0; + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:acl.AclAction) + } + + // @@protoc_insertion_point(class_scope:acl.AclAction) + private static final acl.Acl.AclAction DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new acl.Acl.AclAction(); + } + + public static acl.Acl.AclAction getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public AclAction parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public acl.Acl.AclAction getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } } - private AclAction() { - forwardAction_ = 0; - logAction_ = 0; + + public interface AclEntryOrBuilder extends // @@protoc_insertion_point(interface_extends:acl.AclEntry) + com.google.protobuf.MessageOrBuilder { + + /** + * uint32 sequence_id = 1; + * @return The sequenceId. + */ + int getSequenceId(); + + /** + * string description = 2; + * @return The description. + */ + java.lang.String getDescription(); + + /** + * string description = 2; + * @return The bytes for description. + */ + com.google.protobuf.ByteString getDescriptionBytes(); + + /** + * .acl.AclMatch match = 3; + * @return Whether the match field is set. + */ + boolean hasMatch(); + + /** + * .acl.AclMatch match = 3; + * @return The match. + */ + acl.Acl.AclMatch getMatch(); + + /** + * .acl.AclMatch match = 3; + */ + acl.Acl.AclMatchOrBuilder getMatchOrBuilder(); + + /** + * .acl.AclAction action = 4; + * @return Whether the action field is set. + */ + boolean hasAction(); + + /** + * .acl.AclAction action = 4; + * @return The action. + */ + acl.Acl.AclAction getAction(); + + /** + * .acl.AclAction action = 4; + */ + acl.Acl.AclActionOrBuilder getActionOrBuilder(); } - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new AclAction(); - } + /** + * Protobuf type {@code acl.AclEntry} + */ + public static final class AclEntry extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:acl.AclEntry) + AclEntryOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use AclEntry.newBuilder() to construct. + private AclEntry(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private AclEntry() { + description_ = ""; + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new AclEntry(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return acl.Acl.internal_static_acl_AclEntry_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return acl.Acl.internal_static_acl_AclEntry_fieldAccessorTable.ensureFieldAccessorsInitialized(acl.Acl.AclEntry.class, acl.Acl.AclEntry.Builder.class); + } + + public static final int SEQUENCE_ID_FIELD_NUMBER = 1; + + private int sequenceId_ = 0; + + /** + * uint32 sequence_id = 1; + * @return The sequenceId. + */ + @java.lang.Override + public int getSequenceId() { + return sequenceId_; + } + + public static final int DESCRIPTION_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object description_ = ""; + + /** + * string description = 2; + * @return The description. + */ + @java.lang.Override + public java.lang.String getDescription() { + java.lang.Object ref = description_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + description_ = s; + return s; + } + } + + /** + * string description = 2; + * @return The bytes for description. + */ + @java.lang.Override + public com.google.protobuf.ByteString getDescriptionBytes() { + java.lang.Object ref = description_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + description_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int MATCH_FIELD_NUMBER = 3; + + private acl.Acl.AclMatch match_; + + /** + * .acl.AclMatch match = 3; + * @return Whether the match field is set. + */ + @java.lang.Override + public boolean hasMatch() { + return match_ != null; + } + + /** + * .acl.AclMatch match = 3; + * @return The match. + */ + @java.lang.Override + public acl.Acl.AclMatch getMatch() { + return match_ == null ? acl.Acl.AclMatch.getDefaultInstance() : match_; + } + + /** + * .acl.AclMatch match = 3; + */ + @java.lang.Override + public acl.Acl.AclMatchOrBuilder getMatchOrBuilder() { + return match_ == null ? acl.Acl.AclMatch.getDefaultInstance() : match_; + } + + public static final int ACTION_FIELD_NUMBER = 4; + + private acl.Acl.AclAction action_; + + /** + * .acl.AclAction action = 4; + * @return Whether the action field is set. + */ + @java.lang.Override + public boolean hasAction() { + return action_ != null; + } + + /** + * .acl.AclAction action = 4; + * @return The action. + */ + @java.lang.Override + public acl.Acl.AclAction getAction() { + return action_ == null ? acl.Acl.AclAction.getDefaultInstance() : action_; + } + + /** + * .acl.AclAction action = 4; + */ + @java.lang.Override + public acl.Acl.AclActionOrBuilder getActionOrBuilder() { + return action_ == null ? acl.Acl.AclAction.getDefaultInstance() : action_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (sequenceId_ != 0) { + output.writeUInt32(1, sequenceId_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(description_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, description_); + } + if (match_ != null) { + output.writeMessage(3, getMatch()); + } + if (action_ != null) { + output.writeMessage(4, getAction()); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + if (sequenceId_ != 0) { + size += com.google.protobuf.CodedOutputStream.computeUInt32Size(1, sequenceId_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(description_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, description_); + } + if (match_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getMatch()); + } + if (action_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, getAction()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof acl.Acl.AclEntry)) { + return super.equals(obj); + } + acl.Acl.AclEntry other = (acl.Acl.AclEntry) obj; + if (getSequenceId() != other.getSequenceId()) + return false; + if (!getDescription().equals(other.getDescription())) + return false; + if (hasMatch() != other.hasMatch()) + return false; + if (hasMatch()) { + if (!getMatch().equals(other.getMatch())) + return false; + } + if (hasAction() != other.hasAction()) + return false; + if (hasAction()) { + if (!getAction().equals(other.getAction())) + return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + SEQUENCE_ID_FIELD_NUMBER; + hash = (53 * hash) + getSequenceId(); + hash = (37 * hash) + DESCRIPTION_FIELD_NUMBER; + hash = (53 * hash) + getDescription().hashCode(); + if (hasMatch()) { + hash = (37 * hash) + MATCH_FIELD_NUMBER; + hash = (53 * hash) + getMatch().hashCode(); + } + if (hasAction()) { + hash = (37 * hash) + ACTION_FIELD_NUMBER; + hash = (53 * hash) + getAction().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static acl.Acl.AclEntry parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static acl.Acl.AclEntry parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static acl.Acl.AclEntry parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static acl.Acl.AclEntry parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static acl.Acl.AclEntry parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static acl.Acl.AclEntry parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static acl.Acl.AclEntry parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static acl.Acl.AclEntry parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static acl.Acl.AclEntry parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static acl.Acl.AclEntry parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static acl.Acl.AclEntry parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static acl.Acl.AclEntry parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(acl.Acl.AclEntry prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code acl.AclEntry} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:acl.AclEntry) + acl.Acl.AclEntryOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return acl.Acl.internal_static_acl_AclEntry_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return acl.Acl.internal_static_acl_AclEntry_fieldAccessorTable.ensureFieldAccessorsInitialized(acl.Acl.AclEntry.class, acl.Acl.AclEntry.Builder.class); + } + + // Construct using acl.Acl.AclEntry.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + sequenceId_ = 0; + description_ = ""; + match_ = null; + if (matchBuilder_ != null) { + matchBuilder_.dispose(); + matchBuilder_ = null; + } + action_ = null; + if (actionBuilder_ != null) { + actionBuilder_.dispose(); + actionBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return acl.Acl.internal_static_acl_AclEntry_descriptor; + } + + @java.lang.Override + public acl.Acl.AclEntry getDefaultInstanceForType() { + return acl.Acl.AclEntry.getDefaultInstance(); + } + + @java.lang.Override + public acl.Acl.AclEntry build() { + acl.Acl.AclEntry result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private AclAction( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = - com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 8: { - int rawValue = input.readEnum(); - - forwardAction_ = rawValue; - break; - } - case 16: { - int rawValue = input.readEnum(); - - logAction_ = rawValue; - break; - } - default: { - if (!parseUnknownField( - input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException( - e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return acl.Acl.internal_static_acl_AclAction_descriptor; - } + @java.lang.Override + public acl.Acl.AclEntry buildPartial() { + acl.Acl.AclEntry result = new acl.Acl.AclEntry(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return acl.Acl.internal_static_acl_AclAction_fieldAccessorTable - .ensureFieldAccessorsInitialized( - acl.Acl.AclAction.class, acl.Acl.AclAction.Builder.class); - } + private void buildPartial0(acl.Acl.AclEntry result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.sequenceId_ = sequenceId_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.description_ = description_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.match_ = matchBuilder_ == null ? match_ : matchBuilder_.build(); + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.action_ = actionBuilder_ == null ? action_ : actionBuilder_.build(); + } + } - public static final int FORWARD_ACTION_FIELD_NUMBER = 1; - private int forwardAction_; - /** - * .acl.AclForwardActionEnum forward_action = 1; - * @return The enum numeric value on the wire for forwardAction. - */ - @java.lang.Override public int getForwardActionValue() { - return forwardAction_; - } - /** - * .acl.AclForwardActionEnum forward_action = 1; - * @return The forwardAction. - */ - @java.lang.Override public acl.Acl.AclForwardActionEnum getForwardAction() { - @SuppressWarnings("deprecation") - acl.Acl.AclForwardActionEnum result = acl.Acl.AclForwardActionEnum.valueOf(forwardAction_); - return result == null ? acl.Acl.AclForwardActionEnum.UNRECOGNIZED : result; + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof acl.Acl.AclEntry) { + return mergeFrom((acl.Acl.AclEntry) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(acl.Acl.AclEntry other) { + if (other == acl.Acl.AclEntry.getDefaultInstance()) + return this; + if (other.getSequenceId() != 0) { + setSequenceId(other.getSequenceId()); + } + if (!other.getDescription().isEmpty()) { + description_ = other.description_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (other.hasMatch()) { + mergeMatch(other.getMatch()); + } + if (other.hasAction()) { + mergeAction(other.getAction()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 8: + { + sequenceId_ = input.readUInt32(); + bitField0_ |= 0x00000001; + break; + } + // case 8 + case 18: + { + description_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } + // case 18 + case 26: + { + input.readMessage(getMatchFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000004; + break; + } + // case 26 + case 34: + { + input.readMessage(getActionFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000008; + break; + } + // case 34 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private int sequenceId_; + + /** + * uint32 sequence_id = 1; + * @return The sequenceId. + */ + @java.lang.Override + public int getSequenceId() { + return sequenceId_; + } + + /** + * uint32 sequence_id = 1; + * @param value The sequenceId to set. + * @return This builder for chaining. + */ + public Builder setSequenceId(int value) { + sequenceId_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * uint32 sequence_id = 1; + * @return This builder for chaining. + */ + public Builder clearSequenceId() { + bitField0_ = (bitField0_ & ~0x00000001); + sequenceId_ = 0; + onChanged(); + return this; + } + + private java.lang.Object description_ = ""; + + /** + * string description = 2; + * @return The description. + */ + public java.lang.String getDescription() { + java.lang.Object ref = description_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + description_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * string description = 2; + * @return The bytes for description. + */ + public com.google.protobuf.ByteString getDescriptionBytes() { + java.lang.Object ref = description_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + description_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * string description = 2; + * @param value The description to set. + * @return This builder for chaining. + */ + public Builder setDescription(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + description_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * string description = 2; + * @return This builder for chaining. + */ + public Builder clearDescription() { + description_ = getDefaultInstance().getDescription(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * string description = 2; + * @param value The bytes for description to set. + * @return This builder for chaining. + */ + public Builder setDescriptionBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + description_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private acl.Acl.AclMatch match_; + + private com.google.protobuf.SingleFieldBuilderV3 matchBuilder_; + + /** + * .acl.AclMatch match = 3; + * @return Whether the match field is set. + */ + public boolean hasMatch() { + return ((bitField0_ & 0x00000004) != 0); + } + + /** + * .acl.AclMatch match = 3; + * @return The match. + */ + public acl.Acl.AclMatch getMatch() { + if (matchBuilder_ == null) { + return match_ == null ? acl.Acl.AclMatch.getDefaultInstance() : match_; + } else { + return matchBuilder_.getMessage(); + } + } + + /** + * .acl.AclMatch match = 3; + */ + public Builder setMatch(acl.Acl.AclMatch value) { + if (matchBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + match_ = value; + } else { + matchBuilder_.setMessage(value); + } + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * .acl.AclMatch match = 3; + */ + public Builder setMatch(acl.Acl.AclMatch.Builder builderForValue) { + if (matchBuilder_ == null) { + match_ = builderForValue.build(); + } else { + matchBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * .acl.AclMatch match = 3; + */ + public Builder mergeMatch(acl.Acl.AclMatch value) { + if (matchBuilder_ == null) { + if (((bitField0_ & 0x00000004) != 0) && match_ != null && match_ != acl.Acl.AclMatch.getDefaultInstance()) { + getMatchBuilder().mergeFrom(value); + } else { + match_ = value; + } + } else { + matchBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * .acl.AclMatch match = 3; + */ + public Builder clearMatch() { + bitField0_ = (bitField0_ & ~0x00000004); + match_ = null; + if (matchBuilder_ != null) { + matchBuilder_.dispose(); + matchBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * .acl.AclMatch match = 3; + */ + public acl.Acl.AclMatch.Builder getMatchBuilder() { + bitField0_ |= 0x00000004; + onChanged(); + return getMatchFieldBuilder().getBuilder(); + } + + /** + * .acl.AclMatch match = 3; + */ + public acl.Acl.AclMatchOrBuilder getMatchOrBuilder() { + if (matchBuilder_ != null) { + return matchBuilder_.getMessageOrBuilder(); + } else { + return match_ == null ? acl.Acl.AclMatch.getDefaultInstance() : match_; + } + } + + /** + * .acl.AclMatch match = 3; + */ + private com.google.protobuf.SingleFieldBuilderV3 getMatchFieldBuilder() { + if (matchBuilder_ == null) { + matchBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getMatch(), getParentForChildren(), isClean()); + match_ = null; + } + return matchBuilder_; + } + + private acl.Acl.AclAction action_; + + private com.google.protobuf.SingleFieldBuilderV3 actionBuilder_; + + /** + * .acl.AclAction action = 4; + * @return Whether the action field is set. + */ + public boolean hasAction() { + return ((bitField0_ & 0x00000008) != 0); + } + + /** + * .acl.AclAction action = 4; + * @return The action. + */ + public acl.Acl.AclAction getAction() { + if (actionBuilder_ == null) { + return action_ == null ? acl.Acl.AclAction.getDefaultInstance() : action_; + } else { + return actionBuilder_.getMessage(); + } + } + + /** + * .acl.AclAction action = 4; + */ + public Builder setAction(acl.Acl.AclAction value) { + if (actionBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + action_ = value; + } else { + actionBuilder_.setMessage(value); + } + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * .acl.AclAction action = 4; + */ + public Builder setAction(acl.Acl.AclAction.Builder builderForValue) { + if (actionBuilder_ == null) { + action_ = builderForValue.build(); + } else { + actionBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * .acl.AclAction action = 4; + */ + public Builder mergeAction(acl.Acl.AclAction value) { + if (actionBuilder_ == null) { + if (((bitField0_ & 0x00000008) != 0) && action_ != null && action_ != acl.Acl.AclAction.getDefaultInstance()) { + getActionBuilder().mergeFrom(value); + } else { + action_ = value; + } + } else { + actionBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * .acl.AclAction action = 4; + */ + public Builder clearAction() { + bitField0_ = (bitField0_ & ~0x00000008); + action_ = null; + if (actionBuilder_ != null) { + actionBuilder_.dispose(); + actionBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * .acl.AclAction action = 4; + */ + public acl.Acl.AclAction.Builder getActionBuilder() { + bitField0_ |= 0x00000008; + onChanged(); + return getActionFieldBuilder().getBuilder(); + } + + /** + * .acl.AclAction action = 4; + */ + public acl.Acl.AclActionOrBuilder getActionOrBuilder() { + if (actionBuilder_ != null) { + return actionBuilder_.getMessageOrBuilder(); + } else { + return action_ == null ? acl.Acl.AclAction.getDefaultInstance() : action_; + } + } + + /** + * .acl.AclAction action = 4; + */ + private com.google.protobuf.SingleFieldBuilderV3 getActionFieldBuilder() { + if (actionBuilder_ == null) { + actionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getAction(), getParentForChildren(), isClean()); + action_ = null; + } + return actionBuilder_; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:acl.AclEntry) + } + + // @@protoc_insertion_point(class_scope:acl.AclEntry) + private static final acl.Acl.AclEntry DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new acl.Acl.AclEntry(); + } + + public static acl.Acl.AclEntry getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public AclEntry parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public acl.Acl.AclEntry getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } } - public static final int LOG_ACTION_FIELD_NUMBER = 2; - private int logAction_; - /** - * .acl.AclLogActionEnum log_action = 2; - * @return The enum numeric value on the wire for logAction. - */ - @java.lang.Override public int getLogActionValue() { - return logAction_; + public interface AclRuleSetOrBuilder extends // @@protoc_insertion_point(interface_extends:acl.AclRuleSet) + com.google.protobuf.MessageOrBuilder { + + /** + * string name = 1; + * @return The name. + */ + java.lang.String getName(); + + /** + * string name = 1; + * @return The bytes for name. + */ + com.google.protobuf.ByteString getNameBytes(); + + /** + * .acl.AclRuleTypeEnum type = 2; + * @return The enum numeric value on the wire for type. + */ + int getTypeValue(); + + /** + * .acl.AclRuleTypeEnum type = 2; + * @return The type. + */ + acl.Acl.AclRuleTypeEnum getType(); + + /** + * string description = 3; + * @return The description. + */ + java.lang.String getDescription(); + + /** + * string description = 3; + * @return The bytes for description. + */ + com.google.protobuf.ByteString getDescriptionBytes(); + + /** + * string user_id = 4; + * @return The userId. + */ + java.lang.String getUserId(); + + /** + * string user_id = 4; + * @return The bytes for userId. + */ + com.google.protobuf.ByteString getUserIdBytes(); + + /** + * repeated .acl.AclEntry entries = 5; + */ + java.util.List getEntriesList(); + + /** + * repeated .acl.AclEntry entries = 5; + */ + acl.Acl.AclEntry getEntries(int index); + + /** + * repeated .acl.AclEntry entries = 5; + */ + int getEntriesCount(); + + /** + * repeated .acl.AclEntry entries = 5; + */ + java.util.List getEntriesOrBuilderList(); + + /** + * repeated .acl.AclEntry entries = 5; + */ + acl.Acl.AclEntryOrBuilder getEntriesOrBuilder(int index); } + /** - * .acl.AclLogActionEnum log_action = 2; - * @return The logAction. + * Protobuf type {@code acl.AclRuleSet} */ - @java.lang.Override public acl.Acl.AclLogActionEnum getLogAction() { - @SuppressWarnings("deprecation") - acl.Acl.AclLogActionEnum result = acl.Acl.AclLogActionEnum.valueOf(logAction_); - return result == null ? acl.Acl.AclLogActionEnum.UNRECOGNIZED : result; - } + public static final class AclRuleSet extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:acl.AclRuleSet) + AclRuleSetOrBuilder { - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; + private static final long serialVersionUID = 0L; - memoizedIsInitialized = 1; - return true; - } + // Use AclRuleSet.newBuilder() to construct. + private AclRuleSet(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (forwardAction_ != acl.Acl.AclForwardActionEnum.ACLFORWARDINGACTION_UNDEFINED.getNumber()) { - output.writeEnum(1, forwardAction_); - } - if (logAction_ != acl.Acl.AclLogActionEnum.ACLLOGACTION_UNDEFINED.getNumber()) { - output.writeEnum(2, logAction_); - } - unknownFields.writeTo(output); - } + private AclRuleSet() { + name_ = ""; + type_ = 0; + description_ = ""; + userId_ = ""; + entries_ = java.util.Collections.emptyList(); + } - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (forwardAction_ != acl.Acl.AclForwardActionEnum.ACLFORWARDINGACTION_UNDEFINED.getNumber()) { - size += com.google.protobuf.CodedOutputStream - .computeEnumSize(1, forwardAction_); - } - if (logAction_ != acl.Acl.AclLogActionEnum.ACLLOGACTION_UNDEFINED.getNumber()) { - size += com.google.protobuf.CodedOutputStream - .computeEnumSize(2, logAction_); - } - size += unknownFields.getSerializedSize(); - memoizedSize = size; - return size; - } + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new AclRuleSet(); + } - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof acl.Acl.AclAction)) { - return super.equals(obj); - } - acl.Acl.AclAction other = (acl.Acl.AclAction) obj; - - if (forwardAction_ != other.forwardAction_) return false; - if (logAction_ != other.logAction_) return false; - if (!unknownFields.equals(other.unknownFields)) return false; - return true; - } + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return acl.Acl.internal_static_acl_AclRuleSet_descriptor; + } - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + FORWARD_ACTION_FIELD_NUMBER; - hash = (53 * hash) + forwardAction_; - hash = (37 * hash) + LOG_ACTION_FIELD_NUMBER; - hash = (53 * hash) + logAction_; - hash = (29 * hash) + unknownFields.hashCode(); - memoizedHashCode = hash; - return hash; - } + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return acl.Acl.internal_static_acl_AclRuleSet_fieldAccessorTable.ensureFieldAccessorsInitialized(acl.Acl.AclRuleSet.class, acl.Acl.AclRuleSet.Builder.class); + } - public static acl.Acl.AclAction parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static acl.Acl.AclAction parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static acl.Acl.AclAction parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static acl.Acl.AclAction parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static acl.Acl.AclAction parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static acl.Acl.AclAction parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static acl.Acl.AclAction parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static acl.Acl.AclAction parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - public static acl.Acl.AclAction parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - public static acl.Acl.AclAction parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static acl.Acl.AclAction parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static acl.Acl.AclAction parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } + public static final int NAME_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private volatile java.lang.Object name_ = ""; + + /** + * string name = 1; + * @return The name. + */ + @java.lang.Override + public java.lang.String getName() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + name_ = s; + return s; + } + } + + /** + * string name = 1; + * @return The bytes for name. + */ + @java.lang.Override + public com.google.protobuf.ByteString getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int TYPE_FIELD_NUMBER = 2; + + private int type_ = 0; + + /** + * .acl.AclRuleTypeEnum type = 2; + * @return The enum numeric value on the wire for type. + */ + @java.lang.Override + public int getTypeValue() { + return type_; + } + + /** + * .acl.AclRuleTypeEnum type = 2; + * @return The type. + */ + @java.lang.Override + public acl.Acl.AclRuleTypeEnum getType() { + acl.Acl.AclRuleTypeEnum result = acl.Acl.AclRuleTypeEnum.forNumber(type_); + return result == null ? acl.Acl.AclRuleTypeEnum.UNRECOGNIZED : result; + } + + public static final int DESCRIPTION_FIELD_NUMBER = 3; + + @SuppressWarnings("serial") + private volatile java.lang.Object description_ = ""; + + /** + * string description = 3; + * @return The description. + */ + @java.lang.Override + public java.lang.String getDescription() { + java.lang.Object ref = description_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + description_ = s; + return s; + } + } + + /** + * string description = 3; + * @return The bytes for description. + */ + @java.lang.Override + public com.google.protobuf.ByteString getDescriptionBytes() { + java.lang.Object ref = description_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + description_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int USER_ID_FIELD_NUMBER = 4; + + @SuppressWarnings("serial") + private volatile java.lang.Object userId_ = ""; + + /** + * string user_id = 4; + * @return The userId. + */ + @java.lang.Override + public java.lang.String getUserId() { + java.lang.Object ref = userId_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + userId_ = s; + return s; + } + } + + /** + * string user_id = 4; + * @return The bytes for userId. + */ + @java.lang.Override + public com.google.protobuf.ByteString getUserIdBytes() { + java.lang.Object ref = userId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + userId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int ENTRIES_FIELD_NUMBER = 5; + + @SuppressWarnings("serial") + private java.util.List entries_; + + /** + * repeated .acl.AclEntry entries = 5; + */ + @java.lang.Override + public java.util.List getEntriesList() { + return entries_; + } + + /** + * repeated .acl.AclEntry entries = 5; + */ + @java.lang.Override + public java.util.List getEntriesOrBuilderList() { + return entries_; + } + + /** + * repeated .acl.AclEntry entries = 5; + */ + @java.lang.Override + public int getEntriesCount() { + return entries_.size(); + } + + /** + * repeated .acl.AclEntry entries = 5; + */ + @java.lang.Override + public acl.Acl.AclEntry getEntries(int index) { + return entries_.get(index); + } + + /** + * repeated .acl.AclEntry entries = 5; + */ + @java.lang.Override + public acl.Acl.AclEntryOrBuilder getEntriesOrBuilder(int index) { + return entries_.get(index); + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_); + } + if (type_ != acl.Acl.AclRuleTypeEnum.ACLRULETYPE_UNDEFINED.getNumber()) { + output.writeEnum(2, type_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(description_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, description_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(userId_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 4, userId_); + } + for (int i = 0; i < entries_.size(); i++) { + output.writeMessage(5, entries_.get(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_); + } + if (type_ != acl.Acl.AclRuleTypeEnum.ACLRULETYPE_UNDEFINED.getNumber()) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(2, type_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(description_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, description_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(userId_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, userId_); + } + for (int i = 0; i < entries_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, entries_.get(i)); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof acl.Acl.AclRuleSet)) { + return super.equals(obj); + } + acl.Acl.AclRuleSet other = (acl.Acl.AclRuleSet) obj; + if (!getName().equals(other.getName())) + return false; + if (type_ != other.type_) + return false; + if (!getDescription().equals(other.getDescription())) + return false; + if (!getUserId().equals(other.getUserId())) + return false; + if (!getEntriesList().equals(other.getEntriesList())) + return false; + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + NAME_FIELD_NUMBER; + hash = (53 * hash) + getName().hashCode(); + hash = (37 * hash) + TYPE_FIELD_NUMBER; + hash = (53 * hash) + type_; + hash = (37 * hash) + DESCRIPTION_FIELD_NUMBER; + hash = (53 * hash) + getDescription().hashCode(); + hash = (37 * hash) + USER_ID_FIELD_NUMBER; + hash = (53 * hash) + getUserId().hashCode(); + if (getEntriesCount() > 0) { + hash = (37 * hash) + ENTRIES_FIELD_NUMBER; + hash = (53 * hash) + getEntriesList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static acl.Acl.AclRuleSet parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static acl.Acl.AclRuleSet parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static acl.Acl.AclRuleSet parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static acl.Acl.AclRuleSet parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static acl.Acl.AclRuleSet parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static acl.Acl.AclRuleSet parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static acl.Acl.AclRuleSet parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static acl.Acl.AclRuleSet parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static acl.Acl.AclRuleSet parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static acl.Acl.AclRuleSet parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static acl.Acl.AclRuleSet parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static acl.Acl.AclRuleSet parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(acl.Acl.AclRuleSet prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code acl.AclRuleSet} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:acl.AclRuleSet) + acl.Acl.AclRuleSetOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return acl.Acl.internal_static_acl_AclRuleSet_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return acl.Acl.internal_static_acl_AclRuleSet_fieldAccessorTable.ensureFieldAccessorsInitialized(acl.Acl.AclRuleSet.class, acl.Acl.AclRuleSet.Builder.class); + } + + // Construct using acl.Acl.AclRuleSet.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + name_ = ""; + type_ = 0; + description_ = ""; + userId_ = ""; + if (entriesBuilder_ == null) { + entries_ = java.util.Collections.emptyList(); + } else { + entries_ = null; + entriesBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000010); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return acl.Acl.internal_static_acl_AclRuleSet_descriptor; + } + + @java.lang.Override + public acl.Acl.AclRuleSet getDefaultInstanceForType() { + return acl.Acl.AclRuleSet.getDefaultInstance(); + } + + @java.lang.Override + public acl.Acl.AclRuleSet build() { + acl.Acl.AclRuleSet result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public acl.Acl.AclRuleSet buildPartial() { + acl.Acl.AclRuleSet result = new acl.Acl.AclRuleSet(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(acl.Acl.AclRuleSet result) { + if (entriesBuilder_ == null) { + if (((bitField0_ & 0x00000010) != 0)) { + entries_ = java.util.Collections.unmodifiableList(entries_); + bitField0_ = (bitField0_ & ~0x00000010); + } + result.entries_ = entries_; + } else { + result.entries_ = entriesBuilder_.build(); + } + } + + private void buildPartial0(acl.Acl.AclRuleSet result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.name_ = name_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.type_ = type_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.description_ = description_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.userId_ = userId_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof acl.Acl.AclRuleSet) { + return mergeFrom((acl.Acl.AclRuleSet) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(acl.Acl.AclRuleSet other) { + if (other == acl.Acl.AclRuleSet.getDefaultInstance()) + return this; + if (!other.getName().isEmpty()) { + name_ = other.name_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (other.type_ != 0) { + setTypeValue(other.getTypeValue()); + } + if (!other.getDescription().isEmpty()) { + description_ = other.description_; + bitField0_ |= 0x00000004; + onChanged(); + } + if (!other.getUserId().isEmpty()) { + userId_ = other.userId_; + bitField0_ |= 0x00000008; + onChanged(); + } + if (entriesBuilder_ == null) { + if (!other.entries_.isEmpty()) { + if (entries_.isEmpty()) { + entries_ = other.entries_; + bitField0_ = (bitField0_ & ~0x00000010); + } else { + ensureEntriesIsMutable(); + entries_.addAll(other.entries_); + } + onChanged(); + } + } else { + if (!other.entries_.isEmpty()) { + if (entriesBuilder_.isEmpty()) { + entriesBuilder_.dispose(); + entriesBuilder_ = null; + entries_ = other.entries_; + bitField0_ = (bitField0_ & ~0x00000010); + entriesBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getEntriesFieldBuilder() : null; + } else { + entriesBuilder_.addAllMessages(other.entries_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(acl.Acl.AclAction prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } + @java.lang.Override + public final boolean isInitialized() { + return true; + } - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code acl.AclAction} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:acl.AclAction) - acl.Acl.AclActionOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return acl.Acl.internal_static_acl_AclAction_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return acl.Acl.internal_static_acl_AclAction_fieldAccessorTable - .ensureFieldAccessorsInitialized( - acl.Acl.AclAction.class, acl.Acl.AclAction.Builder.class); - } - - // Construct using acl.Acl.AclAction.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3 - .alwaysUseFieldBuilders) { - } - } - @java.lang.Override - public Builder clear() { - super.clear(); - forwardAction_ = 0; - - logAction_ = 0; - - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return acl.Acl.internal_static_acl_AclAction_descriptor; - } - - @java.lang.Override - public acl.Acl.AclAction getDefaultInstanceForType() { - return acl.Acl.AclAction.getDefaultInstance(); - } - - @java.lang.Override - public acl.Acl.AclAction build() { - acl.Acl.AclAction result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public acl.Acl.AclAction buildPartial() { - acl.Acl.AclAction result = new acl.Acl.AclAction(this); - result.forwardAction_ = forwardAction_; - result.logAction_ = logAction_; - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof acl.Acl.AclAction) { - return mergeFrom((acl.Acl.AclAction)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(acl.Acl.AclAction other) { - if (other == acl.Acl.AclAction.getDefaultInstance()) return this; - if (other.forwardAction_ != 0) { - setForwardActionValue(other.getForwardActionValue()); - } - if (other.logAction_ != 0) { - setLogActionValue(other.getLogActionValue()); - } - this.mergeUnknownFields(other.unknownFields); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - acl.Acl.AclAction parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (acl.Acl.AclAction) e.getUnfinishedMessage(); - throw e.unwrapIOException(); - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - - private int forwardAction_ = 0; - /** - * .acl.AclForwardActionEnum forward_action = 1; - * @return The enum numeric value on the wire for forwardAction. - */ - @java.lang.Override public int getForwardActionValue() { - return forwardAction_; - } - /** - * .acl.AclForwardActionEnum forward_action = 1; - * @param value The enum numeric value on the wire for forwardAction to set. - * @return This builder for chaining. - */ - public Builder setForwardActionValue(int value) { - - forwardAction_ = value; - onChanged(); - return this; - } - /** - * .acl.AclForwardActionEnum forward_action = 1; - * @return The forwardAction. - */ - @java.lang.Override - public acl.Acl.AclForwardActionEnum getForwardAction() { - @SuppressWarnings("deprecation") - acl.Acl.AclForwardActionEnum result = acl.Acl.AclForwardActionEnum.valueOf(forwardAction_); - return result == null ? acl.Acl.AclForwardActionEnum.UNRECOGNIZED : result; - } - /** - * .acl.AclForwardActionEnum forward_action = 1; - * @param value The forwardAction to set. - * @return This builder for chaining. - */ - public Builder setForwardAction(acl.Acl.AclForwardActionEnum value) { - if (value == null) { - throw new NullPointerException(); - } - - forwardAction_ = value.getNumber(); - onChanged(); - return this; - } - /** - * .acl.AclForwardActionEnum forward_action = 1; - * @return This builder for chaining. - */ - public Builder clearForwardAction() { - - forwardAction_ = 0; - onChanged(); - return this; - } - - private int logAction_ = 0; - /** - * .acl.AclLogActionEnum log_action = 2; - * @return The enum numeric value on the wire for logAction. - */ - @java.lang.Override public int getLogActionValue() { - return logAction_; - } - /** - * .acl.AclLogActionEnum log_action = 2; - * @param value The enum numeric value on the wire for logAction to set. - * @return This builder for chaining. - */ - public Builder setLogActionValue(int value) { - - logAction_ = value; - onChanged(); - return this; - } - /** - * .acl.AclLogActionEnum log_action = 2; - * @return The logAction. - */ - @java.lang.Override - public acl.Acl.AclLogActionEnum getLogAction() { - @SuppressWarnings("deprecation") - acl.Acl.AclLogActionEnum result = acl.Acl.AclLogActionEnum.valueOf(logAction_); - return result == null ? acl.Acl.AclLogActionEnum.UNRECOGNIZED : result; - } - /** - * .acl.AclLogActionEnum log_action = 2; - * @param value The logAction to set. - * @return This builder for chaining. - */ - public Builder setLogAction(acl.Acl.AclLogActionEnum value) { - if (value == null) { - throw new NullPointerException(); - } - - logAction_ = value.getNumber(); - onChanged(); - return this; - } - /** - * .acl.AclLogActionEnum log_action = 2; - * @return This builder for chaining. - */ - public Builder clearLogAction() { - - logAction_ = 0; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:acl.AclAction) - } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + name_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 16: + { + type_ = input.readEnum(); + bitField0_ |= 0x00000002; + break; + } + // case 16 + case 26: + { + description_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } + // case 26 + case 34: + { + userId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000008; + break; + } + // case 34 + case 42: + { + acl.Acl.AclEntry m = input.readMessage(acl.Acl.AclEntry.parser(), extensionRegistry); + if (entriesBuilder_ == null) { + ensureEntriesIsMutable(); + entries_.add(m); + } else { + entriesBuilder_.addMessage(m); + } + break; + } + // case 42 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } - // @@protoc_insertion_point(class_scope:acl.AclAction) - private static final acl.Acl.AclAction DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new acl.Acl.AclAction(); - } + private int bitField0_; + + private java.lang.Object name_ = ""; + + /** + * string name = 1; + * @return The name. + */ + public java.lang.String getName() { + java.lang.Object ref = name_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + name_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } - public static acl.Acl.AclAction getDefaultInstance() { - return DEFAULT_INSTANCE; - } + /** + * string name = 1; + * @return The bytes for name. + */ + public com.google.protobuf.ByteString getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public AclAction parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new AclAction(input, extensionRegistry); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } + /** + * string name = 1; + * @param value The name to set. + * @return This builder for chaining. + */ + public Builder setName(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + name_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } + /** + * string name = 1; + * @return This builder for chaining. + */ + public Builder clearName() { + name_ = getDefaultInstance().getName(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } - @java.lang.Override - public acl.Acl.AclAction getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } + /** + * string name = 1; + * @param value The bytes for name to set. + * @return This builder for chaining. + */ + public Builder setNameBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + name_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } - } + private int type_ = 0; - public interface AclEntryOrBuilder extends - // @@protoc_insertion_point(interface_extends:acl.AclEntry) - com.google.protobuf.MessageOrBuilder { + /** + * .acl.AclRuleTypeEnum type = 2; + * @return The enum numeric value on the wire for type. + */ + @java.lang.Override + public int getTypeValue() { + return type_; + } - /** - * uint32 sequence_id = 1; - * @return The sequenceId. - */ - int getSequenceId(); + /** + * .acl.AclRuleTypeEnum type = 2; + * @param value The enum numeric value on the wire for type to set. + * @return This builder for chaining. + */ + public Builder setTypeValue(int value) { + type_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } - /** - * string description = 2; - * @return The description. - */ - java.lang.String getDescription(); - /** - * string description = 2; - * @return The bytes for description. - */ - com.google.protobuf.ByteString - getDescriptionBytes(); + /** + * .acl.AclRuleTypeEnum type = 2; + * @return The type. + */ + @java.lang.Override + public acl.Acl.AclRuleTypeEnum getType() { + acl.Acl.AclRuleTypeEnum result = acl.Acl.AclRuleTypeEnum.forNumber(type_); + return result == null ? acl.Acl.AclRuleTypeEnum.UNRECOGNIZED : result; + } - /** - * .acl.AclMatch match = 3; - * @return Whether the match field is set. - */ - boolean hasMatch(); - /** - * .acl.AclMatch match = 3; - * @return The match. - */ - acl.Acl.AclMatch getMatch(); - /** - * .acl.AclMatch match = 3; - */ - acl.Acl.AclMatchOrBuilder getMatchOrBuilder(); + /** + * .acl.AclRuleTypeEnum type = 2; + * @param value The type to set. + * @return This builder for chaining. + */ + public Builder setType(acl.Acl.AclRuleTypeEnum value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000002; + type_ = value.getNumber(); + onChanged(); + return this; + } - /** - * .acl.AclAction action = 4; - * @return Whether the action field is set. - */ - boolean hasAction(); - /** - * .acl.AclAction action = 4; - * @return The action. - */ - acl.Acl.AclAction getAction(); - /** - * .acl.AclAction action = 4; - */ - acl.Acl.AclActionOrBuilder getActionOrBuilder(); - } - /** - * Protobuf type {@code acl.AclEntry} - */ - public static final class AclEntry extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:acl.AclEntry) - AclEntryOrBuilder { - private static final long serialVersionUID = 0L; - // Use AclEntry.newBuilder() to construct. - private AclEntry(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private AclEntry() { - description_ = ""; - } + /** + * .acl.AclRuleTypeEnum type = 2; + * @return This builder for chaining. + */ + public Builder clearType() { + bitField0_ = (bitField0_ & ~0x00000002); + type_ = 0; + onChanged(); + return this; + } - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new AclEntry(); - } + private java.lang.Object description_ = ""; + + /** + * string description = 3; + * @return The description. + */ + public java.lang.String getDescription() { + java.lang.Object ref = description_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + description_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private AclEntry( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = - com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 8: { - - sequenceId_ = input.readUInt32(); - break; - } - case 18: { - java.lang.String s = input.readStringRequireUtf8(); - - description_ = s; - break; - } - case 26: { - acl.Acl.AclMatch.Builder subBuilder = null; - if (match_ != null) { - subBuilder = match_.toBuilder(); - } - match_ = input.readMessage(acl.Acl.AclMatch.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(match_); - match_ = subBuilder.buildPartial(); - } - - break; - } - case 34: { - acl.Acl.AclAction.Builder subBuilder = null; - if (action_ != null) { - subBuilder = action_.toBuilder(); - } - action_ = input.readMessage(acl.Acl.AclAction.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(action_); - action_ = subBuilder.buildPartial(); - } - - break; - } - default: { - if (!parseUnknownField( - input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException( - e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return acl.Acl.internal_static_acl_AclEntry_descriptor; - } + /** + * string description = 3; + * @return The bytes for description. + */ + public com.google.protobuf.ByteString getDescriptionBytes() { + java.lang.Object ref = description_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + description_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return acl.Acl.internal_static_acl_AclEntry_fieldAccessorTable - .ensureFieldAccessorsInitialized( - acl.Acl.AclEntry.class, acl.Acl.AclEntry.Builder.class); - } + /** + * string description = 3; + * @param value The description to set. + * @return This builder for chaining. + */ + public Builder setDescription(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + description_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } - public static final int SEQUENCE_ID_FIELD_NUMBER = 1; - private int sequenceId_; - /** - * uint32 sequence_id = 1; - * @return The sequenceId. - */ - @java.lang.Override - public int getSequenceId() { - return sequenceId_; - } + /** + * string description = 3; + * @return This builder for chaining. + */ + public Builder clearDescription() { + description_ = getDefaultInstance().getDescription(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } - public static final int DESCRIPTION_FIELD_NUMBER = 2; - private volatile java.lang.Object description_; - /** - * string description = 2; - * @return The description. - */ - @java.lang.Override - public java.lang.String getDescription() { - java.lang.Object ref = description_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - description_ = s; - return s; - } - } - /** - * string description = 2; - * @return The bytes for description. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getDescriptionBytes() { - java.lang.Object ref = description_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - description_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } + /** + * string description = 3; + * @param value The bytes for description to set. + * @return This builder for chaining. + */ + public Builder setDescriptionBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + description_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } - public static final int MATCH_FIELD_NUMBER = 3; - private acl.Acl.AclMatch match_; - /** - * .acl.AclMatch match = 3; - * @return Whether the match field is set. - */ - @java.lang.Override - public boolean hasMatch() { - return match_ != null; - } - /** - * .acl.AclMatch match = 3; - * @return The match. - */ - @java.lang.Override - public acl.Acl.AclMatch getMatch() { - return match_ == null ? acl.Acl.AclMatch.getDefaultInstance() : match_; - } - /** - * .acl.AclMatch match = 3; - */ - @java.lang.Override - public acl.Acl.AclMatchOrBuilder getMatchOrBuilder() { - return getMatch(); - } + private java.lang.Object userId_ = ""; + + /** + * string user_id = 4; + * @return The userId. + */ + public java.lang.String getUserId() { + java.lang.Object ref = userId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + userId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } - public static final int ACTION_FIELD_NUMBER = 4; - private acl.Acl.AclAction action_; - /** - * .acl.AclAction action = 4; - * @return Whether the action field is set. - */ - @java.lang.Override - public boolean hasAction() { - return action_ != null; - } - /** - * .acl.AclAction action = 4; - * @return The action. - */ - @java.lang.Override - public acl.Acl.AclAction getAction() { - return action_ == null ? acl.Acl.AclAction.getDefaultInstance() : action_; - } - /** - * .acl.AclAction action = 4; - */ - @java.lang.Override - public acl.Acl.AclActionOrBuilder getActionOrBuilder() { - return getAction(); - } + /** + * string user_id = 4; + * @return The bytes for userId. + */ + public com.google.protobuf.ByteString getUserIdBytes() { + java.lang.Object ref = userId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + userId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; + /** + * string user_id = 4; + * @param value The userId to set. + * @return This builder for chaining. + */ + public Builder setUserId(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + userId_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } - memoizedIsInitialized = 1; - return true; - } + /** + * string user_id = 4; + * @return This builder for chaining. + */ + public Builder clearUserId() { + userId_ = getDefaultInstance().getUserId(); + bitField0_ = (bitField0_ & ~0x00000008); + onChanged(); + return this; + } - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (sequenceId_ != 0) { - output.writeUInt32(1, sequenceId_); - } - if (!getDescriptionBytes().isEmpty()) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 2, description_); - } - if (match_ != null) { - output.writeMessage(3, getMatch()); - } - if (action_ != null) { - output.writeMessage(4, getAction()); - } - unknownFields.writeTo(output); - } + /** + * string user_id = 4; + * @param value The bytes for userId to set. + * @return This builder for chaining. + */ + public Builder setUserIdBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + userId_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (sequenceId_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(1, sequenceId_); - } - if (!getDescriptionBytes().isEmpty()) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, description_); - } - if (match_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(3, getMatch()); - } - if (action_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(4, getAction()); - } - size += unknownFields.getSerializedSize(); - memoizedSize = size; - return size; - } + private java.util.List entries_ = java.util.Collections.emptyList(); - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof acl.Acl.AclEntry)) { - return super.equals(obj); - } - acl.Acl.AclEntry other = (acl.Acl.AclEntry) obj; - - if (getSequenceId() - != other.getSequenceId()) return false; - if (!getDescription() - .equals(other.getDescription())) return false; - if (hasMatch() != other.hasMatch()) return false; - if (hasMatch()) { - if (!getMatch() - .equals(other.getMatch())) return false; - } - if (hasAction() != other.hasAction()) return false; - if (hasAction()) { - if (!getAction() - .equals(other.getAction())) return false; - } - if (!unknownFields.equals(other.unknownFields)) return false; - return true; - } + private void ensureEntriesIsMutable() { + if (!((bitField0_ & 0x00000010) != 0)) { + entries_ = new java.util.ArrayList(entries_); + bitField0_ |= 0x00000010; + } + } - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + SEQUENCE_ID_FIELD_NUMBER; - hash = (53 * hash) + getSequenceId(); - hash = (37 * hash) + DESCRIPTION_FIELD_NUMBER; - hash = (53 * hash) + getDescription().hashCode(); - if (hasMatch()) { - hash = (37 * hash) + MATCH_FIELD_NUMBER; - hash = (53 * hash) + getMatch().hashCode(); - } - if (hasAction()) { - hash = (37 * hash) + ACTION_FIELD_NUMBER; - hash = (53 * hash) + getAction().hashCode(); - } - hash = (29 * hash) + unknownFields.hashCode(); - memoizedHashCode = hash; - return hash; - } + private com.google.protobuf.RepeatedFieldBuilderV3 entriesBuilder_; + + /** + * repeated .acl.AclEntry entries = 5; + */ + public java.util.List getEntriesList() { + if (entriesBuilder_ == null) { + return java.util.Collections.unmodifiableList(entries_); + } else { + return entriesBuilder_.getMessageList(); + } + } - public static acl.Acl.AclEntry parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static acl.Acl.AclEntry parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static acl.Acl.AclEntry parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static acl.Acl.AclEntry parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static acl.Acl.AclEntry parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static acl.Acl.AclEntry parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static acl.Acl.AclEntry parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static acl.Acl.AclEntry parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - public static acl.Acl.AclEntry parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - public static acl.Acl.AclEntry parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static acl.Acl.AclEntry parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static acl.Acl.AclEntry parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } + /** + * repeated .acl.AclEntry entries = 5; + */ + public int getEntriesCount() { + if (entriesBuilder_ == null) { + return entries_.size(); + } else { + return entriesBuilder_.getCount(); + } + } - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(acl.Acl.AclEntry prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } + /** + * repeated .acl.AclEntry entries = 5; + */ + public acl.Acl.AclEntry getEntries(int index) { + if (entriesBuilder_ == null) { + return entries_.get(index); + } else { + return entriesBuilder_.getMessage(index); + } + } - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code acl.AclEntry} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:acl.AclEntry) - acl.Acl.AclEntryOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return acl.Acl.internal_static_acl_AclEntry_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return acl.Acl.internal_static_acl_AclEntry_fieldAccessorTable - .ensureFieldAccessorsInitialized( - acl.Acl.AclEntry.class, acl.Acl.AclEntry.Builder.class); - } - - // Construct using acl.Acl.AclEntry.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3 - .alwaysUseFieldBuilders) { - } - } - @java.lang.Override - public Builder clear() { - super.clear(); - sequenceId_ = 0; - - description_ = ""; - - if (matchBuilder_ == null) { - match_ = null; - } else { - match_ = null; - matchBuilder_ = null; - } - if (actionBuilder_ == null) { - action_ = null; - } else { - action_ = null; - actionBuilder_ = null; - } - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return acl.Acl.internal_static_acl_AclEntry_descriptor; - } - - @java.lang.Override - public acl.Acl.AclEntry getDefaultInstanceForType() { - return acl.Acl.AclEntry.getDefaultInstance(); - } - - @java.lang.Override - public acl.Acl.AclEntry build() { - acl.Acl.AclEntry result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public acl.Acl.AclEntry buildPartial() { - acl.Acl.AclEntry result = new acl.Acl.AclEntry(this); - result.sequenceId_ = sequenceId_; - result.description_ = description_; - if (matchBuilder_ == null) { - result.match_ = match_; - } else { - result.match_ = matchBuilder_.build(); - } - if (actionBuilder_ == null) { - result.action_ = action_; - } else { - result.action_ = actionBuilder_.build(); - } - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof acl.Acl.AclEntry) { - return mergeFrom((acl.Acl.AclEntry)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(acl.Acl.AclEntry other) { - if (other == acl.Acl.AclEntry.getDefaultInstance()) return this; - if (other.getSequenceId() != 0) { - setSequenceId(other.getSequenceId()); - } - if (!other.getDescription().isEmpty()) { - description_ = other.description_; - onChanged(); - } - if (other.hasMatch()) { - mergeMatch(other.getMatch()); - } - if (other.hasAction()) { - mergeAction(other.getAction()); - } - this.mergeUnknownFields(other.unknownFields); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - acl.Acl.AclEntry parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (acl.Acl.AclEntry) e.getUnfinishedMessage(); - throw e.unwrapIOException(); - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - - private int sequenceId_ ; - /** - * uint32 sequence_id = 1; - * @return The sequenceId. - */ - @java.lang.Override - public int getSequenceId() { - return sequenceId_; - } - /** - * uint32 sequence_id = 1; - * @param value The sequenceId to set. - * @return This builder for chaining. - */ - public Builder setSequenceId(int value) { - - sequenceId_ = value; - onChanged(); - return this; - } - /** - * uint32 sequence_id = 1; - * @return This builder for chaining. - */ - public Builder clearSequenceId() { - - sequenceId_ = 0; - onChanged(); - return this; - } - - private java.lang.Object description_ = ""; - /** - * string description = 2; - * @return The description. - */ - public java.lang.String getDescription() { - java.lang.Object ref = description_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - description_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string description = 2; - * @return The bytes for description. - */ - public com.google.protobuf.ByteString - getDescriptionBytes() { - java.lang.Object ref = description_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - description_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string description = 2; - * @param value The description to set. - * @return This builder for chaining. - */ - public Builder setDescription( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - - description_ = value; - onChanged(); - return this; - } - /** - * string description = 2; - * @return This builder for chaining. - */ - public Builder clearDescription() { - - description_ = getDefaultInstance().getDescription(); - onChanged(); - return this; - } - /** - * string description = 2; - * @param value The bytes for description to set. - * @return This builder for chaining. - */ - public Builder setDescriptionBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - - description_ = value; - onChanged(); - return this; - } - - private acl.Acl.AclMatch match_; - private com.google.protobuf.SingleFieldBuilderV3< - acl.Acl.AclMatch, acl.Acl.AclMatch.Builder, acl.Acl.AclMatchOrBuilder> matchBuilder_; - /** - * .acl.AclMatch match = 3; - * @return Whether the match field is set. - */ - public boolean hasMatch() { - return matchBuilder_ != null || match_ != null; - } - /** - * .acl.AclMatch match = 3; - * @return The match. - */ - public acl.Acl.AclMatch getMatch() { - if (matchBuilder_ == null) { - return match_ == null ? acl.Acl.AclMatch.getDefaultInstance() : match_; - } else { - return matchBuilder_.getMessage(); - } - } - /** - * .acl.AclMatch match = 3; - */ - public Builder setMatch(acl.Acl.AclMatch value) { - if (matchBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - match_ = value; - onChanged(); - } else { - matchBuilder_.setMessage(value); - } - - return this; - } - /** - * .acl.AclMatch match = 3; - */ - public Builder setMatch( - acl.Acl.AclMatch.Builder builderForValue) { - if (matchBuilder_ == null) { - match_ = builderForValue.build(); - onChanged(); - } else { - matchBuilder_.setMessage(builderForValue.build()); - } - - return this; - } - /** - * .acl.AclMatch match = 3; - */ - public Builder mergeMatch(acl.Acl.AclMatch value) { - if (matchBuilder_ == null) { - if (match_ != null) { - match_ = - acl.Acl.AclMatch.newBuilder(match_).mergeFrom(value).buildPartial(); - } else { - match_ = value; - } - onChanged(); - } else { - matchBuilder_.mergeFrom(value); - } - - return this; - } - /** - * .acl.AclMatch match = 3; - */ - public Builder clearMatch() { - if (matchBuilder_ == null) { - match_ = null; - onChanged(); - } else { - match_ = null; - matchBuilder_ = null; - } - - return this; - } - /** - * .acl.AclMatch match = 3; - */ - public acl.Acl.AclMatch.Builder getMatchBuilder() { - - onChanged(); - return getMatchFieldBuilder().getBuilder(); - } - /** - * .acl.AclMatch match = 3; - */ - public acl.Acl.AclMatchOrBuilder getMatchOrBuilder() { - if (matchBuilder_ != null) { - return matchBuilder_.getMessageOrBuilder(); - } else { - return match_ == null ? - acl.Acl.AclMatch.getDefaultInstance() : match_; - } - } - /** - * .acl.AclMatch match = 3; - */ - private com.google.protobuf.SingleFieldBuilderV3< - acl.Acl.AclMatch, acl.Acl.AclMatch.Builder, acl.Acl.AclMatchOrBuilder> - getMatchFieldBuilder() { - if (matchBuilder_ == null) { - matchBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - acl.Acl.AclMatch, acl.Acl.AclMatch.Builder, acl.Acl.AclMatchOrBuilder>( - getMatch(), - getParentForChildren(), - isClean()); - match_ = null; - } - return matchBuilder_; - } - - private acl.Acl.AclAction action_; - private com.google.protobuf.SingleFieldBuilderV3< - acl.Acl.AclAction, acl.Acl.AclAction.Builder, acl.Acl.AclActionOrBuilder> actionBuilder_; - /** - * .acl.AclAction action = 4; - * @return Whether the action field is set. - */ - public boolean hasAction() { - return actionBuilder_ != null || action_ != null; - } - /** - * .acl.AclAction action = 4; - * @return The action. - */ - public acl.Acl.AclAction getAction() { - if (actionBuilder_ == null) { - return action_ == null ? acl.Acl.AclAction.getDefaultInstance() : action_; - } else { - return actionBuilder_.getMessage(); - } - } - /** - * .acl.AclAction action = 4; - */ - public Builder setAction(acl.Acl.AclAction value) { - if (actionBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - action_ = value; - onChanged(); - } else { - actionBuilder_.setMessage(value); - } - - return this; - } - /** - * .acl.AclAction action = 4; - */ - public Builder setAction( - acl.Acl.AclAction.Builder builderForValue) { - if (actionBuilder_ == null) { - action_ = builderForValue.build(); - onChanged(); - } else { - actionBuilder_.setMessage(builderForValue.build()); - } - - return this; - } - /** - * .acl.AclAction action = 4; - */ - public Builder mergeAction(acl.Acl.AclAction value) { - if (actionBuilder_ == null) { - if (action_ != null) { - action_ = - acl.Acl.AclAction.newBuilder(action_).mergeFrom(value).buildPartial(); - } else { - action_ = value; - } - onChanged(); - } else { - actionBuilder_.mergeFrom(value); - } - - return this; - } - /** - * .acl.AclAction action = 4; - */ - public Builder clearAction() { - if (actionBuilder_ == null) { - action_ = null; - onChanged(); - } else { - action_ = null; - actionBuilder_ = null; - } - - return this; - } - /** - * .acl.AclAction action = 4; - */ - public acl.Acl.AclAction.Builder getActionBuilder() { - - onChanged(); - return getActionFieldBuilder().getBuilder(); - } - /** - * .acl.AclAction action = 4; - */ - public acl.Acl.AclActionOrBuilder getActionOrBuilder() { - if (actionBuilder_ != null) { - return actionBuilder_.getMessageOrBuilder(); - } else { - return action_ == null ? - acl.Acl.AclAction.getDefaultInstance() : action_; - } - } - /** - * .acl.AclAction action = 4; - */ - private com.google.protobuf.SingleFieldBuilderV3< - acl.Acl.AclAction, acl.Acl.AclAction.Builder, acl.Acl.AclActionOrBuilder> - getActionFieldBuilder() { - if (actionBuilder_ == null) { - actionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - acl.Acl.AclAction, acl.Acl.AclAction.Builder, acl.Acl.AclActionOrBuilder>( - getAction(), - getParentForChildren(), - isClean()); - action_ = null; - } - return actionBuilder_; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:acl.AclEntry) - } + /** + * repeated .acl.AclEntry entries = 5; + */ + public Builder setEntries(int index, acl.Acl.AclEntry value) { + if (entriesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureEntriesIsMutable(); + entries_.set(index, value); + onChanged(); + } else { + entriesBuilder_.setMessage(index, value); + } + return this; + } - // @@protoc_insertion_point(class_scope:acl.AclEntry) - private static final acl.Acl.AclEntry DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new acl.Acl.AclEntry(); - } + /** + * repeated .acl.AclEntry entries = 5; + */ + public Builder setEntries(int index, acl.Acl.AclEntry.Builder builderForValue) { + if (entriesBuilder_ == null) { + ensureEntriesIsMutable(); + entries_.set(index, builderForValue.build()); + onChanged(); + } else { + entriesBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } - public static acl.Acl.AclEntry getDefaultInstance() { - return DEFAULT_INSTANCE; - } + /** + * repeated .acl.AclEntry entries = 5; + */ + public Builder addEntries(acl.Acl.AclEntry value) { + if (entriesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureEntriesIsMutable(); + entries_.add(value); + onChanged(); + } else { + entriesBuilder_.addMessage(value); + } + return this; + } - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public AclEntry parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new AclEntry(input, extensionRegistry); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } + /** + * repeated .acl.AclEntry entries = 5; + */ + public Builder addEntries(int index, acl.Acl.AclEntry value) { + if (entriesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureEntriesIsMutable(); + entries_.add(index, value); + onChanged(); + } else { + entriesBuilder_.addMessage(index, value); + } + return this; + } - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } + /** + * repeated .acl.AclEntry entries = 5; + */ + public Builder addEntries(acl.Acl.AclEntry.Builder builderForValue) { + if (entriesBuilder_ == null) { + ensureEntriesIsMutable(); + entries_.add(builderForValue.build()); + onChanged(); + } else { + entriesBuilder_.addMessage(builderForValue.build()); + } + return this; + } - @java.lang.Override - public acl.Acl.AclEntry getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } + /** + * repeated .acl.AclEntry entries = 5; + */ + public Builder addEntries(int index, acl.Acl.AclEntry.Builder builderForValue) { + if (entriesBuilder_ == null) { + ensureEntriesIsMutable(); + entries_.add(index, builderForValue.build()); + onChanged(); + } else { + entriesBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } - } + /** + * repeated .acl.AclEntry entries = 5; + */ + public Builder addAllEntries(java.lang.Iterable values) { + if (entriesBuilder_ == null) { + ensureEntriesIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, entries_); + onChanged(); + } else { + entriesBuilder_.addAllMessages(values); + } + return this; + } - public interface AclRuleSetOrBuilder extends - // @@protoc_insertion_point(interface_extends:acl.AclRuleSet) - com.google.protobuf.MessageOrBuilder { + /** + * repeated .acl.AclEntry entries = 5; + */ + public Builder clearEntries() { + if (entriesBuilder_ == null) { + entries_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000010); + onChanged(); + } else { + entriesBuilder_.clear(); + } + return this; + } - /** - * string name = 1; - * @return The name. - */ - java.lang.String getName(); - /** - * string name = 1; - * @return The bytes for name. - */ - com.google.protobuf.ByteString - getNameBytes(); + /** + * repeated .acl.AclEntry entries = 5; + */ + public Builder removeEntries(int index) { + if (entriesBuilder_ == null) { + ensureEntriesIsMutable(); + entries_.remove(index); + onChanged(); + } else { + entriesBuilder_.remove(index); + } + return this; + } - /** - * .acl.AclRuleTypeEnum type = 2; - * @return The enum numeric value on the wire for type. - */ - int getTypeValue(); - /** - * .acl.AclRuleTypeEnum type = 2; - * @return The type. - */ - acl.Acl.AclRuleTypeEnum getType(); + /** + * repeated .acl.AclEntry entries = 5; + */ + public acl.Acl.AclEntry.Builder getEntriesBuilder(int index) { + return getEntriesFieldBuilder().getBuilder(index); + } - /** - * string description = 3; - * @return The description. - */ - java.lang.String getDescription(); - /** - * string description = 3; - * @return The bytes for description. - */ - com.google.protobuf.ByteString - getDescriptionBytes(); + /** + * repeated .acl.AclEntry entries = 5; + */ + public acl.Acl.AclEntryOrBuilder getEntriesOrBuilder(int index) { + if (entriesBuilder_ == null) { + return entries_.get(index); + } else { + return entriesBuilder_.getMessageOrBuilder(index); + } + } - /** - * string user_id = 4; - * @return The userId. - */ - java.lang.String getUserId(); - /** - * string user_id = 4; - * @return The bytes for userId. - */ - com.google.protobuf.ByteString - getUserIdBytes(); + /** + * repeated .acl.AclEntry entries = 5; + */ + public java.util.List getEntriesOrBuilderList() { + if (entriesBuilder_ != null) { + return entriesBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(entries_); + } + } - /** - * repeated .acl.AclEntry entries = 5; - */ - java.util.List - getEntriesList(); - /** - * repeated .acl.AclEntry entries = 5; - */ - acl.Acl.AclEntry getEntries(int index); - /** - * repeated .acl.AclEntry entries = 5; - */ - int getEntriesCount(); - /** - * repeated .acl.AclEntry entries = 5; - */ - java.util.List - getEntriesOrBuilderList(); - /** - * repeated .acl.AclEntry entries = 5; - */ - acl.Acl.AclEntryOrBuilder getEntriesOrBuilder( - int index); - } - /** - * Protobuf type {@code acl.AclRuleSet} - */ - public static final class AclRuleSet extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:acl.AclRuleSet) - AclRuleSetOrBuilder { - private static final long serialVersionUID = 0L; - // Use AclRuleSet.newBuilder() to construct. - private AclRuleSet(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private AclRuleSet() { - name_ = ""; - type_ = 0; - description_ = ""; - userId_ = ""; - entries_ = java.util.Collections.emptyList(); - } + /** + * repeated .acl.AclEntry entries = 5; + */ + public acl.Acl.AclEntry.Builder addEntriesBuilder() { + return getEntriesFieldBuilder().addBuilder(acl.Acl.AclEntry.getDefaultInstance()); + } - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new AclRuleSet(); - } + /** + * repeated .acl.AclEntry entries = 5; + */ + public acl.Acl.AclEntry.Builder addEntriesBuilder(int index) { + return getEntriesFieldBuilder().addBuilder(index, acl.Acl.AclEntry.getDefaultInstance()); + } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private AclRuleSet( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - int mutable_bitField0_ = 0; - com.google.protobuf.UnknownFieldSet.Builder unknownFields = - com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - java.lang.String s = input.readStringRequireUtf8(); - - name_ = s; - break; - } - case 16: { - int rawValue = input.readEnum(); - - type_ = rawValue; - break; - } - case 26: { - java.lang.String s = input.readStringRequireUtf8(); - - description_ = s; - break; - } - case 34: { - java.lang.String s = input.readStringRequireUtf8(); - - userId_ = s; - break; - } - case 42: { - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - entries_ = new java.util.ArrayList(); - mutable_bitField0_ |= 0x00000001; - } - entries_.add( - input.readMessage(acl.Acl.AclEntry.parser(), extensionRegistry)); - break; - } - default: { - if (!parseUnknownField( - input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException( - e).setUnfinishedMessage(this); - } finally { - if (((mutable_bitField0_ & 0x00000001) != 0)) { - entries_ = java.util.Collections.unmodifiableList(entries_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return acl.Acl.internal_static_acl_AclRuleSet_descriptor; - } + /** + * repeated .acl.AclEntry entries = 5; + */ + public java.util.List getEntriesBuilderList() { + return getEntriesFieldBuilder().getBuilderList(); + } - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return acl.Acl.internal_static_acl_AclRuleSet_fieldAccessorTable - .ensureFieldAccessorsInitialized( - acl.Acl.AclRuleSet.class, acl.Acl.AclRuleSet.Builder.class); - } + private com.google.protobuf.RepeatedFieldBuilderV3 getEntriesFieldBuilder() { + if (entriesBuilder_ == null) { + entriesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3(entries_, ((bitField0_ & 0x00000010) != 0), getParentForChildren(), isClean()); + entries_ = null; + } + return entriesBuilder_; + } - public static final int NAME_FIELD_NUMBER = 1; - private volatile java.lang.Object name_; - /** - * string name = 1; - * @return The name. - */ - @java.lang.Override - public java.lang.String getName() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - name_ = s; - return s; - } - } - /** - * string name = 1; - * @return The bytes for name. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - name_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } - public static final int TYPE_FIELD_NUMBER = 2; - private int type_; - /** - * .acl.AclRuleTypeEnum type = 2; - * @return The enum numeric value on the wire for type. - */ - @java.lang.Override public int getTypeValue() { - return type_; - } - /** - * .acl.AclRuleTypeEnum type = 2; - * @return The type. - */ - @java.lang.Override public acl.Acl.AclRuleTypeEnum getType() { - @SuppressWarnings("deprecation") - acl.Acl.AclRuleTypeEnum result = acl.Acl.AclRuleTypeEnum.valueOf(type_); - return result == null ? acl.Acl.AclRuleTypeEnum.UNRECOGNIZED : result; - } + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:acl.AclRuleSet) + } - public static final int DESCRIPTION_FIELD_NUMBER = 3; - private volatile java.lang.Object description_; - /** - * string description = 3; - * @return The description. - */ - @java.lang.Override - public java.lang.String getDescription() { - java.lang.Object ref = description_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - description_ = s; - return s; - } - } - /** - * string description = 3; - * @return The bytes for description. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getDescriptionBytes() { - java.lang.Object ref = description_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - description_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } + // @@protoc_insertion_point(class_scope:acl.AclRuleSet) + private static final acl.Acl.AclRuleSet DEFAULT_INSTANCE; - public static final int USER_ID_FIELD_NUMBER = 4; - private volatile java.lang.Object userId_; - /** - * string user_id = 4; - * @return The userId. - */ - @java.lang.Override - public java.lang.String getUserId() { - java.lang.Object ref = userId_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - userId_ = s; - return s; - } - } - /** - * string user_id = 4; - * @return The bytes for userId. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getUserIdBytes() { - java.lang.Object ref = userId_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - userId_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } + static { + DEFAULT_INSTANCE = new acl.Acl.AclRuleSet(); + } - public static final int ENTRIES_FIELD_NUMBER = 5; - private java.util.List entries_; - /** - * repeated .acl.AclEntry entries = 5; - */ - @java.lang.Override - public java.util.List getEntriesList() { - return entries_; - } - /** - * repeated .acl.AclEntry entries = 5; - */ - @java.lang.Override - public java.util.List - getEntriesOrBuilderList() { - return entries_; - } - /** - * repeated .acl.AclEntry entries = 5; - */ - @java.lang.Override - public int getEntriesCount() { - return entries_.size(); - } - /** - * repeated .acl.AclEntry entries = 5; - */ - @java.lang.Override - public acl.Acl.AclEntry getEntries(int index) { - return entries_.get(index); - } - /** - * repeated .acl.AclEntry entries = 5; - */ - @java.lang.Override - public acl.Acl.AclEntryOrBuilder getEntriesOrBuilder( - int index) { - return entries_.get(index); - } + public static acl.Acl.AclRuleSet getDefaultInstance() { + return DEFAULT_INSTANCE; + } - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public AclRuleSet parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; - memoizedIsInitialized = 1; - return true; - } + public static com.google.protobuf.Parser parser() { + return PARSER; + } - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (!getNameBytes().isEmpty()) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_); - } - if (type_ != acl.Acl.AclRuleTypeEnum.ACLRULETYPE_UNDEFINED.getNumber()) { - output.writeEnum(2, type_); - } - if (!getDescriptionBytes().isEmpty()) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 3, description_); - } - if (!getUserIdBytes().isEmpty()) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 4, userId_); - } - for (int i = 0; i < entries_.size(); i++) { - output.writeMessage(5, entries_.get(i)); - } - unknownFields.writeTo(output); - } + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (!getNameBytes().isEmpty()) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_); - } - if (type_ != acl.Acl.AclRuleTypeEnum.ACLRULETYPE_UNDEFINED.getNumber()) { - size += com.google.protobuf.CodedOutputStream - .computeEnumSize(2, type_); - } - if (!getDescriptionBytes().isEmpty()) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, description_); - } - if (!getUserIdBytes().isEmpty()) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, userId_); - } - for (int i = 0; i < entries_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(5, entries_.get(i)); - } - size += unknownFields.getSerializedSize(); - memoizedSize = size; - return size; + @java.lang.Override + public acl.Acl.AclRuleSet getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } } - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof acl.Acl.AclRuleSet)) { - return super.equals(obj); - } - acl.Acl.AclRuleSet other = (acl.Acl.AclRuleSet) obj; - - if (!getName() - .equals(other.getName())) return false; - if (type_ != other.type_) return false; - if (!getDescription() - .equals(other.getDescription())) return false; - if (!getUserId() - .equals(other.getUserId())) return false; - if (!getEntriesList() - .equals(other.getEntriesList())) return false; - if (!unknownFields.equals(other.unknownFields)) return false; - return true; - } + private static final com.google.protobuf.Descriptors.Descriptor internal_static_acl_AclMatch_descriptor; - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + NAME_FIELD_NUMBER; - hash = (53 * hash) + getName().hashCode(); - hash = (37 * hash) + TYPE_FIELD_NUMBER; - hash = (53 * hash) + type_; - hash = (37 * hash) + DESCRIPTION_FIELD_NUMBER; - hash = (53 * hash) + getDescription().hashCode(); - hash = (37 * hash) + USER_ID_FIELD_NUMBER; - hash = (53 * hash) + getUserId().hashCode(); - if (getEntriesCount() > 0) { - hash = (37 * hash) + ENTRIES_FIELD_NUMBER; - hash = (53 * hash) + getEntriesList().hashCode(); - } - hash = (29 * hash) + unknownFields.hashCode(); - memoizedHashCode = hash; - return hash; - } + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_acl_AclMatch_fieldAccessorTable; - public static acl.Acl.AclRuleSet parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static acl.Acl.AclRuleSet parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static acl.Acl.AclRuleSet parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static acl.Acl.AclRuleSet parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static acl.Acl.AclRuleSet parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static acl.Acl.AclRuleSet parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static acl.Acl.AclRuleSet parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static acl.Acl.AclRuleSet parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - public static acl.Acl.AclRuleSet parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - public static acl.Acl.AclRuleSet parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static acl.Acl.AclRuleSet parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static acl.Acl.AclRuleSet parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } + private static final com.google.protobuf.Descriptors.Descriptor internal_static_acl_AclAction_descriptor; - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(acl.Acl.AclRuleSet prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_acl_AclAction_fieldAccessorTable; - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code acl.AclRuleSet} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:acl.AclRuleSet) - acl.Acl.AclRuleSetOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return acl.Acl.internal_static_acl_AclRuleSet_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return acl.Acl.internal_static_acl_AclRuleSet_fieldAccessorTable - .ensureFieldAccessorsInitialized( - acl.Acl.AclRuleSet.class, acl.Acl.AclRuleSet.Builder.class); - } - - // Construct using acl.Acl.AclRuleSet.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3 - .alwaysUseFieldBuilders) { - getEntriesFieldBuilder(); - } - } - @java.lang.Override - public Builder clear() { - super.clear(); - name_ = ""; - - type_ = 0; - - description_ = ""; - - userId_ = ""; - - if (entriesBuilder_ == null) { - entries_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); - } else { - entriesBuilder_.clear(); - } - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return acl.Acl.internal_static_acl_AclRuleSet_descriptor; - } - - @java.lang.Override - public acl.Acl.AclRuleSet getDefaultInstanceForType() { - return acl.Acl.AclRuleSet.getDefaultInstance(); - } - - @java.lang.Override - public acl.Acl.AclRuleSet build() { - acl.Acl.AclRuleSet result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public acl.Acl.AclRuleSet buildPartial() { - acl.Acl.AclRuleSet result = new acl.Acl.AclRuleSet(this); - int from_bitField0_ = bitField0_; - result.name_ = name_; - result.type_ = type_; - result.description_ = description_; - result.userId_ = userId_; - if (entriesBuilder_ == null) { - if (((bitField0_ & 0x00000001) != 0)) { - entries_ = java.util.Collections.unmodifiableList(entries_); - bitField0_ = (bitField0_ & ~0x00000001); - } - result.entries_ = entries_; - } else { - result.entries_ = entriesBuilder_.build(); - } - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof acl.Acl.AclRuleSet) { - return mergeFrom((acl.Acl.AclRuleSet)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(acl.Acl.AclRuleSet other) { - if (other == acl.Acl.AclRuleSet.getDefaultInstance()) return this; - if (!other.getName().isEmpty()) { - name_ = other.name_; - onChanged(); - } - if (other.type_ != 0) { - setTypeValue(other.getTypeValue()); - } - if (!other.getDescription().isEmpty()) { - description_ = other.description_; - onChanged(); - } - if (!other.getUserId().isEmpty()) { - userId_ = other.userId_; - onChanged(); - } - if (entriesBuilder_ == null) { - if (!other.entries_.isEmpty()) { - if (entries_.isEmpty()) { - entries_ = other.entries_; - bitField0_ = (bitField0_ & ~0x00000001); - } else { - ensureEntriesIsMutable(); - entries_.addAll(other.entries_); - } - onChanged(); - } - } else { - if (!other.entries_.isEmpty()) { - if (entriesBuilder_.isEmpty()) { - entriesBuilder_.dispose(); - entriesBuilder_ = null; - entries_ = other.entries_; - bitField0_ = (bitField0_ & ~0x00000001); - entriesBuilder_ = - com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? - getEntriesFieldBuilder() : null; - } else { - entriesBuilder_.addAllMessages(other.entries_); - } - } - } - this.mergeUnknownFields(other.unknownFields); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - acl.Acl.AclRuleSet parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (acl.Acl.AclRuleSet) e.getUnfinishedMessage(); - throw e.unwrapIOException(); - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - private java.lang.Object name_ = ""; - /** - * string name = 1; - * @return The name. - */ - public java.lang.String getName() { - java.lang.Object ref = name_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - name_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string name = 1; - * @return The bytes for name. - */ - public com.google.protobuf.ByteString - getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - name_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string name = 1; - * @param value The name to set. - * @return This builder for chaining. - */ - public Builder setName( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - - name_ = value; - onChanged(); - return this; - } - /** - * string name = 1; - * @return This builder for chaining. - */ - public Builder clearName() { - - name_ = getDefaultInstance().getName(); - onChanged(); - return this; - } - /** - * string name = 1; - * @param value The bytes for name to set. - * @return This builder for chaining. - */ - public Builder setNameBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - - name_ = value; - onChanged(); - return this; - } - - private int type_ = 0; - /** - * .acl.AclRuleTypeEnum type = 2; - * @return The enum numeric value on the wire for type. - */ - @java.lang.Override public int getTypeValue() { - return type_; - } - /** - * .acl.AclRuleTypeEnum type = 2; - * @param value The enum numeric value on the wire for type to set. - * @return This builder for chaining. - */ - public Builder setTypeValue(int value) { - - type_ = value; - onChanged(); - return this; - } - /** - * .acl.AclRuleTypeEnum type = 2; - * @return The type. - */ - @java.lang.Override - public acl.Acl.AclRuleTypeEnum getType() { - @SuppressWarnings("deprecation") - acl.Acl.AclRuleTypeEnum result = acl.Acl.AclRuleTypeEnum.valueOf(type_); - return result == null ? acl.Acl.AclRuleTypeEnum.UNRECOGNIZED : result; - } - /** - * .acl.AclRuleTypeEnum type = 2; - * @param value The type to set. - * @return This builder for chaining. - */ - public Builder setType(acl.Acl.AclRuleTypeEnum value) { - if (value == null) { - throw new NullPointerException(); - } - - type_ = value.getNumber(); - onChanged(); - return this; - } - /** - * .acl.AclRuleTypeEnum type = 2; - * @return This builder for chaining. - */ - public Builder clearType() { - - type_ = 0; - onChanged(); - return this; - } - - private java.lang.Object description_ = ""; - /** - * string description = 3; - * @return The description. - */ - public java.lang.String getDescription() { - java.lang.Object ref = description_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - description_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string description = 3; - * @return The bytes for description. - */ - public com.google.protobuf.ByteString - getDescriptionBytes() { - java.lang.Object ref = description_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - description_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string description = 3; - * @param value The description to set. - * @return This builder for chaining. - */ - public Builder setDescription( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - - description_ = value; - onChanged(); - return this; - } - /** - * string description = 3; - * @return This builder for chaining. - */ - public Builder clearDescription() { - - description_ = getDefaultInstance().getDescription(); - onChanged(); - return this; - } - /** - * string description = 3; - * @param value The bytes for description to set. - * @return This builder for chaining. - */ - public Builder setDescriptionBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - - description_ = value; - onChanged(); - return this; - } - - private java.lang.Object userId_ = ""; - /** - * string user_id = 4; - * @return The userId. - */ - public java.lang.String getUserId() { - java.lang.Object ref = userId_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - userId_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string user_id = 4; - * @return The bytes for userId. - */ - public com.google.protobuf.ByteString - getUserIdBytes() { - java.lang.Object ref = userId_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - userId_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string user_id = 4; - * @param value The userId to set. - * @return This builder for chaining. - */ - public Builder setUserId( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - - userId_ = value; - onChanged(); - return this; - } - /** - * string user_id = 4; - * @return This builder for chaining. - */ - public Builder clearUserId() { - - userId_ = getDefaultInstance().getUserId(); - onChanged(); - return this; - } - /** - * string user_id = 4; - * @param value The bytes for userId to set. - * @return This builder for chaining. - */ - public Builder setUserIdBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - - userId_ = value; - onChanged(); - return this; - } - - private java.util.List entries_ = - java.util.Collections.emptyList(); - private void ensureEntriesIsMutable() { - if (!((bitField0_ & 0x00000001) != 0)) { - entries_ = new java.util.ArrayList(entries_); - bitField0_ |= 0x00000001; - } - } - - private com.google.protobuf.RepeatedFieldBuilderV3< - acl.Acl.AclEntry, acl.Acl.AclEntry.Builder, acl.Acl.AclEntryOrBuilder> entriesBuilder_; - - /** - * repeated .acl.AclEntry entries = 5; - */ - public java.util.List getEntriesList() { - if (entriesBuilder_ == null) { - return java.util.Collections.unmodifiableList(entries_); - } else { - return entriesBuilder_.getMessageList(); - } - } - /** - * repeated .acl.AclEntry entries = 5; - */ - public int getEntriesCount() { - if (entriesBuilder_ == null) { - return entries_.size(); - } else { - return entriesBuilder_.getCount(); - } - } - /** - * repeated .acl.AclEntry entries = 5; - */ - public acl.Acl.AclEntry getEntries(int index) { - if (entriesBuilder_ == null) { - return entries_.get(index); - } else { - return entriesBuilder_.getMessage(index); - } - } - /** - * repeated .acl.AclEntry entries = 5; - */ - public Builder setEntries( - int index, acl.Acl.AclEntry value) { - if (entriesBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureEntriesIsMutable(); - entries_.set(index, value); - onChanged(); - } else { - entriesBuilder_.setMessage(index, value); - } - return this; - } - /** - * repeated .acl.AclEntry entries = 5; - */ - public Builder setEntries( - int index, acl.Acl.AclEntry.Builder builderForValue) { - if (entriesBuilder_ == null) { - ensureEntriesIsMutable(); - entries_.set(index, builderForValue.build()); - onChanged(); - } else { - entriesBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .acl.AclEntry entries = 5; - */ - public Builder addEntries(acl.Acl.AclEntry value) { - if (entriesBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureEntriesIsMutable(); - entries_.add(value); - onChanged(); - } else { - entriesBuilder_.addMessage(value); - } - return this; - } - /** - * repeated .acl.AclEntry entries = 5; - */ - public Builder addEntries( - int index, acl.Acl.AclEntry value) { - if (entriesBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureEntriesIsMutable(); - entries_.add(index, value); - onChanged(); - } else { - entriesBuilder_.addMessage(index, value); - } - return this; - } - /** - * repeated .acl.AclEntry entries = 5; - */ - public Builder addEntries( - acl.Acl.AclEntry.Builder builderForValue) { - if (entriesBuilder_ == null) { - ensureEntriesIsMutable(); - entries_.add(builderForValue.build()); - onChanged(); - } else { - entriesBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * repeated .acl.AclEntry entries = 5; - */ - public Builder addEntries( - int index, acl.Acl.AclEntry.Builder builderForValue) { - if (entriesBuilder_ == null) { - ensureEntriesIsMutable(); - entries_.add(index, builderForValue.build()); - onChanged(); - } else { - entriesBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .acl.AclEntry entries = 5; - */ - public Builder addAllEntries( - java.lang.Iterable values) { - if (entriesBuilder_ == null) { - ensureEntriesIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, entries_); - onChanged(); - } else { - entriesBuilder_.addAllMessages(values); - } - return this; - } - /** - * repeated .acl.AclEntry entries = 5; - */ - public Builder clearEntries() { - if (entriesBuilder_ == null) { - entries_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - } else { - entriesBuilder_.clear(); - } - return this; - } - /** - * repeated .acl.AclEntry entries = 5; - */ - public Builder removeEntries(int index) { - if (entriesBuilder_ == null) { - ensureEntriesIsMutable(); - entries_.remove(index); - onChanged(); - } else { - entriesBuilder_.remove(index); - } - return this; - } - /** - * repeated .acl.AclEntry entries = 5; - */ - public acl.Acl.AclEntry.Builder getEntriesBuilder( - int index) { - return getEntriesFieldBuilder().getBuilder(index); - } - /** - * repeated .acl.AclEntry entries = 5; - */ - public acl.Acl.AclEntryOrBuilder getEntriesOrBuilder( - int index) { - if (entriesBuilder_ == null) { - return entries_.get(index); } else { - return entriesBuilder_.getMessageOrBuilder(index); - } - } - /** - * repeated .acl.AclEntry entries = 5; - */ - public java.util.List - getEntriesOrBuilderList() { - if (entriesBuilder_ != null) { - return entriesBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(entries_); - } - } - /** - * repeated .acl.AclEntry entries = 5; - */ - public acl.Acl.AclEntry.Builder addEntriesBuilder() { - return getEntriesFieldBuilder().addBuilder( - acl.Acl.AclEntry.getDefaultInstance()); - } - /** - * repeated .acl.AclEntry entries = 5; - */ - public acl.Acl.AclEntry.Builder addEntriesBuilder( - int index) { - return getEntriesFieldBuilder().addBuilder( - index, acl.Acl.AclEntry.getDefaultInstance()); - } - /** - * repeated .acl.AclEntry entries = 5; - */ - public java.util.List - getEntriesBuilderList() { - return getEntriesFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilderV3< - acl.Acl.AclEntry, acl.Acl.AclEntry.Builder, acl.Acl.AclEntryOrBuilder> - getEntriesFieldBuilder() { - if (entriesBuilder_ == null) { - entriesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< - acl.Acl.AclEntry, acl.Acl.AclEntry.Builder, acl.Acl.AclEntryOrBuilder>( - entries_, - ((bitField0_ & 0x00000001) != 0), - getParentForChildren(), - isClean()); - entries_ = null; - } - return entriesBuilder_; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:acl.AclRuleSet) - } + private static final com.google.protobuf.Descriptors.Descriptor internal_static_acl_AclEntry_descriptor; - // @@protoc_insertion_point(class_scope:acl.AclRuleSet) - private static final acl.Acl.AclRuleSet DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new acl.Acl.AclRuleSet(); - } + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_acl_AclEntry_fieldAccessorTable; - public static acl.Acl.AclRuleSet getDefaultInstance() { - return DEFAULT_INSTANCE; - } + private static final com.google.protobuf.Descriptors.Descriptor internal_static_acl_AclRuleSet_descriptor; - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public AclRuleSet parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new AclRuleSet(input, extensionRegistry); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_acl_AclRuleSet_fieldAccessorTable; - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; + public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + return descriptor; } - @java.lang.Override - public acl.Acl.AclRuleSet getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } + private static com.google.protobuf.Descriptors.FileDescriptor descriptor; - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_acl_AclMatch_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_acl_AclMatch_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_acl_AclAction_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_acl_AclAction_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_acl_AclEntry_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_acl_AclEntry_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_acl_AclRuleSet_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_acl_AclRuleSet_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\tacl.proto\022\003acl\"\252\001\n\010AclMatch\022\014\n\004dscp\030\001 " + - "\001(\r\022\020\n\010protocol\030\002 \001(\r\022\023\n\013src_address\030\003 \001" + - "(\t\022\023\n\013dst_address\030\004 \001(\t\022\020\n\010src_port\030\005 \001(" + - "\r\022\020\n\010dst_port\030\006 \001(\r\022\030\n\020start_mpls_label\030" + - "\007 \001(\r\022\026\n\016end_mpls_label\030\010 \001(\r\"i\n\tAclActi" + - "on\0221\n\016forward_action\030\001 \001(\0162\031.acl.AclForw" + - "ardActionEnum\022)\n\nlog_action\030\002 \001(\0162\025.acl." + - "AclLogActionEnum\"r\n\010AclEntry\022\023\n\013sequence" + - "_id\030\001 \001(\r\022\023\n\013description\030\002 \001(\t\022\034\n\005match\030" + - "\003 \001(\0132\r.acl.AclMatch\022\036\n\006action\030\004 \001(\0132\016.a" + - "cl.AclAction\"\204\001\n\nAclRuleSet\022\014\n\004name\030\001 \001(" + - "\t\022\"\n\004type\030\002 \001(\0162\024.acl.AclRuleTypeEnum\022\023\n" + - "\013description\030\003 \001(\t\022\017\n\007user_id\030\004 \001(\t\022\036\n\007e" + - "ntries\030\005 \003(\0132\r.acl.AclEntry*\231\001\n\017AclRuleT" + - "ypeEnum\022\031\n\025ACLRULETYPE_UNDEFINED\020\000\022\024\n\020AC" + - "LRULETYPE_IPV4\020\001\022\024\n\020ACLRULETYPE_IPV6\020\002\022\022" + - "\n\016ACLRULETYPE_L2\020\003\022\024\n\020ACLRULETYPE_MPLS\020\004" + - "\022\025\n\021ACLRULETYPE_MIXED\020\005*\227\001\n\024AclForwardAc" + - "tionEnum\022!\n\035ACLFORWARDINGACTION_UNDEFINE" + - "D\020\000\022\034\n\030ACLFORWARDINGACTION_DROP\020\001\022\036\n\032ACL" + - "FORWARDINGACTION_ACCEPT\020\002\022\036\n\032ACLFORWARDI" + - "NGACTION_REJECT\020\003*_\n\020AclLogActionEnum\022\032\n" + - "\026ACLLOGACTION_UNDEFINED\020\000\022\026\n\022ACLLOGACTIO" + - "N_NOLOG\020\001\022\027\n\023ACLLOGACTION_SYSLOG\020\002b\006prot" + - "o3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - internal_static_acl_AclMatch_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_acl_AclMatch_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_acl_AclMatch_descriptor, - new java.lang.String[] { "Dscp", "Protocol", "SrcAddress", "DstAddress", "SrcPort", "DstPort", "StartMplsLabel", "EndMplsLabel", }); - internal_static_acl_AclAction_descriptor = - getDescriptor().getMessageTypes().get(1); - internal_static_acl_AclAction_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_acl_AclAction_descriptor, - new java.lang.String[] { "ForwardAction", "LogAction", }); - internal_static_acl_AclEntry_descriptor = - getDescriptor().getMessageTypes().get(2); - internal_static_acl_AclEntry_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_acl_AclEntry_descriptor, - new java.lang.String[] { "SequenceId", "Description", "Match", "Action", }); - internal_static_acl_AclRuleSet_descriptor = - getDescriptor().getMessageTypes().get(3); - internal_static_acl_AclRuleSet_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_acl_AclRuleSet_descriptor, - new java.lang.String[] { "Name", "Type", "Description", "UserId", "Entries", }); - } - - // @@protoc_insertion_point(outer_class_scope) + static { + java.lang.String[] descriptorData = { "\n\tacl.proto\022\003acl\"\252\001\n\010AclMatch\022\014\n\004dscp\030\001 " + "\001(\r\022\020\n\010protocol\030\002 \001(\r\022\023\n\013src_address\030\003 \001" + "(\t\022\023\n\013dst_address\030\004 \001(\t\022\020\n\010src_port\030\005 \001(" + "\r\022\020\n\010dst_port\030\006 \001(\r\022\030\n\020start_mpls_label\030" + "\007 \001(\r\022\026\n\016end_mpls_label\030\010 \001(\r\"i\n\tAclActi" + "on\0221\n\016forward_action\030\001 \001(\0162\031.acl.AclForw" + "ardActionEnum\022)\n\nlog_action\030\002 \001(\0162\025.acl." + "AclLogActionEnum\"r\n\010AclEntry\022\023\n\013sequence" + "_id\030\001 \001(\r\022\023\n\013description\030\002 \001(\t\022\034\n\005match\030" + "\003 \001(\0132\r.acl.AclMatch\022\036\n\006action\030\004 \001(\0132\016.a" + "cl.AclAction\"\204\001\n\nAclRuleSet\022\014\n\004name\030\001 \001(" + "\t\022\"\n\004type\030\002 \001(\0162\024.acl.AclRuleTypeEnum\022\023\n" + "\013description\030\003 \001(\t\022\017\n\007user_id\030\004 \001(\t\022\036\n\007e" + "ntries\030\005 \003(\0132\r.acl.AclEntry*\231\001\n\017AclRuleT" + "ypeEnum\022\031\n\025ACLRULETYPE_UNDEFINED\020\000\022\024\n\020AC" + "LRULETYPE_IPV4\020\001\022\024\n\020ACLRULETYPE_IPV6\020\002\022\022" + "\n\016ACLRULETYPE_L2\020\003\022\024\n\020ACLRULETYPE_MPLS\020\004" + "\022\025\n\021ACLRULETYPE_MIXED\020\005*\227\001\n\024AclForwardAc" + "tionEnum\022!\n\035ACLFORWARDINGACTION_UNDEFINE" + "D\020\000\022\034\n\030ACLFORWARDINGACTION_DROP\020\001\022\036\n\032ACL" + "FORWARDINGACTION_ACCEPT\020\002\022\036\n\032ACLFORWARDI" + "NGACTION_REJECT\020\003*_\n\020AclLogActionEnum\022\032\n" + "\026ACLLOGACTION_UNDEFINED\020\000\022\026\n\022ACLLOGACTIO" + "N_NOLOG\020\001\022\027\n\023ACLLOGACTION_SYSLOG\020\002b\006prot" + "o3" }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(descriptorData, new com.google.protobuf.Descriptors.FileDescriptor[] {}); + internal_static_acl_AclMatch_descriptor = getDescriptor().getMessageTypes().get(0); + internal_static_acl_AclMatch_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_acl_AclMatch_descriptor, new java.lang.String[] { "Dscp", "Protocol", "SrcAddress", "DstAddress", "SrcPort", "DstPort", "StartMplsLabel", "EndMplsLabel" }); + internal_static_acl_AclAction_descriptor = getDescriptor().getMessageTypes().get(1); + internal_static_acl_AclAction_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_acl_AclAction_descriptor, new java.lang.String[] { "ForwardAction", "LogAction" }); + internal_static_acl_AclEntry_descriptor = getDescriptor().getMessageTypes().get(2); + internal_static_acl_AclEntry_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_acl_AclEntry_descriptor, new java.lang.String[] { "SequenceId", "Description", "Match", "Action" }); + internal_static_acl_AclRuleSet_descriptor = getDescriptor().getMessageTypes().get(3); + internal_static_acl_AclRuleSet_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_acl_AclRuleSet_descriptor, new java.lang.String[] { "Name", "Type", "Description", "UserId", "Entries" }); + } + // @@protoc_insertion_point(outer_class_scope) } diff --git a/src/policy/target/generated-sources/grpc/context/ContextOuterClass.java b/src/policy/target/generated-sources/grpc/context/ContextOuterClass.java index d4873899b0113a7356c1c4d6bc2ea9aae2e8b4e5..22679d79248b2374c8f96e7f5286ac81e37c8517 100644 --- a/src/policy/target/generated-sources/grpc/context/ContextOuterClass.java +++ b/src/policy/target/generated-sources/grpc/context/ContextOuterClass.java @@ -1,1533 +1,1320 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // source: context.proto - package context; public final class ContextOuterClass { - private ContextOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - /** - * Protobuf enum {@code context.EventTypeEnum} - */ - public enum EventTypeEnum - implements com.google.protobuf.ProtocolMessageEnum { - /** - * EVENTTYPE_UNDEFINED = 0; - */ - EVENTTYPE_UNDEFINED(0), - /** - * EVENTTYPE_CREATE = 1; - */ - EVENTTYPE_CREATE(1), - /** - * EVENTTYPE_UPDATE = 2; - */ - EVENTTYPE_UPDATE(2), - /** - * EVENTTYPE_REMOVE = 3; - */ - EVENTTYPE_REMOVE(3), - UNRECOGNIZED(-1), - ; - - /** - * EVENTTYPE_UNDEFINED = 0; - */ - public static final int EVENTTYPE_UNDEFINED_VALUE = 0; - /** - * EVENTTYPE_CREATE = 1; - */ - public static final int EVENTTYPE_CREATE_VALUE = 1; - /** - * EVENTTYPE_UPDATE = 2; - */ - public static final int EVENTTYPE_UPDATE_VALUE = 2; - /** - * EVENTTYPE_REMOVE = 3; - */ - public static final int EVENTTYPE_REMOVE_VALUE = 3; + private ContextOuterClass() { + } - public final int getNumber() { - if (this == UNRECOGNIZED) { - throw new java.lang.IllegalArgumentException( - "Can't get the number of an unknown enum value."); - } - return value; + public static void registerAllExtensions(com.google.protobuf.ExtensionRegistryLite registry) { } - /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. - * @deprecated Use {@link #forNumber(int)} instead. - */ - @java.lang.Deprecated - public static EventTypeEnum valueOf(int value) { - return forNumber(value); + public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions((com.google.protobuf.ExtensionRegistryLite) registry); } /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. + * Protobuf enum {@code context.EventTypeEnum} */ - public static EventTypeEnum forNumber(int value) { - switch (value) { - case 0: return EVENTTYPE_UNDEFINED; - case 1: return EVENTTYPE_CREATE; - case 2: return EVENTTYPE_UPDATE; - case 3: return EVENTTYPE_REMOVE; - default: return null; - } - } + public enum EventTypeEnum implements com.google.protobuf.ProtocolMessageEnum { - public static com.google.protobuf.Internal.EnumLiteMap - internalGetValueMap() { - return internalValueMap; - } - private static final com.google.protobuf.Internal.EnumLiteMap< - EventTypeEnum> internalValueMap = - new com.google.protobuf.Internal.EnumLiteMap() { - public EventTypeEnum findValueByNumber(int number) { - return EventTypeEnum.forNumber(number); - } - }; + /** + * EVENTTYPE_UNDEFINED = 0; + */ + EVENTTYPE_UNDEFINED(0), + /** + * EVENTTYPE_CREATE = 1; + */ + EVENTTYPE_CREATE(1), + /** + * EVENTTYPE_UPDATE = 2; + */ + EVENTTYPE_UPDATE(2), + /** + * EVENTTYPE_REMOVE = 3; + */ + EVENTTYPE_REMOVE(3), + UNRECOGNIZED(-1); - public final com.google.protobuf.Descriptors.EnumValueDescriptor - getValueDescriptor() { - if (this == UNRECOGNIZED) { - throw new java.lang.IllegalStateException( - "Can't get the descriptor of an unrecognized enum value."); - } - return getDescriptor().getValues().get(ordinal()); - } - public final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptorForType() { - return getDescriptor(); - } - public static final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptor() { - return context.ContextOuterClass.getDescriptor().getEnumTypes().get(0); - } + /** + * EVENTTYPE_UNDEFINED = 0; + */ + public static final int EVENTTYPE_UNDEFINED_VALUE = 0; - private static final EventTypeEnum[] VALUES = values(); - - public static EventTypeEnum valueOf( - com.google.protobuf.Descriptors.EnumValueDescriptor desc) { - if (desc.getType() != getDescriptor()) { - throw new java.lang.IllegalArgumentException( - "EnumValueDescriptor is not for this type."); - } - if (desc.getIndex() == -1) { - return UNRECOGNIZED; - } - return VALUES[desc.getIndex()]; - } + /** + * EVENTTYPE_CREATE = 1; + */ + public static final int EVENTTYPE_CREATE_VALUE = 1; - private final int value; + /** + * EVENTTYPE_UPDATE = 2; + */ + public static final int EVENTTYPE_UPDATE_VALUE = 2; - private EventTypeEnum(int value) { - this.value = value; - } + /** + * EVENTTYPE_REMOVE = 3; + */ + public static final int EVENTTYPE_REMOVE_VALUE = 3; - // @@protoc_insertion_point(enum_scope:context.EventTypeEnum) - } + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException("Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static EventTypeEnum valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static EventTypeEnum forNumber(int value) { + switch(value) { + case 0: + return EVENTTYPE_UNDEFINED; + case 1: + return EVENTTYPE_CREATE; + case 2: + return EVENTTYPE_UPDATE; + case 3: + return EVENTTYPE_REMOVE; + default: + return null; + } + } - /** - * Protobuf enum {@code context.DeviceDriverEnum} - */ - public enum DeviceDriverEnum - implements com.google.protobuf.ProtocolMessageEnum { - /** - *
-     * also used for emulated
-     * 
- * - * DEVICEDRIVER_UNDEFINED = 0; - */ - DEVICEDRIVER_UNDEFINED(0), - /** - * DEVICEDRIVER_OPENCONFIG = 1; - */ - DEVICEDRIVER_OPENCONFIG(1), - /** - * DEVICEDRIVER_TRANSPORT_API = 2; - */ - DEVICEDRIVER_TRANSPORT_API(2), - /** - * DEVICEDRIVER_P4 = 3; - */ - DEVICEDRIVER_P4(3), - /** - * DEVICEDRIVER_IETF_NETWORK_TOPOLOGY = 4; - */ - DEVICEDRIVER_IETF_NETWORK_TOPOLOGY(4), - /** - * DEVICEDRIVER_ONF_TR_532 = 5; - */ - DEVICEDRIVER_ONF_TR_532(5), - /** - * DEVICEDRIVER_XR = 6; - */ - DEVICEDRIVER_XR(6), - /** - * DEVICEDRIVER_IETF_L2VPN = 7; - */ - DEVICEDRIVER_IETF_L2VPN(7), - /** - * DEVICEDRIVER_GNMI_OPENCONFIG = 8; - */ - DEVICEDRIVER_GNMI_OPENCONFIG(8), - /** - * DEVICEDRIVER_FLEXSCALE = 9; - */ - DEVICEDRIVER_FLEXSCALE(9), - /** - * DEVICEDRIVER_IETF_ACTN = 10; - */ - DEVICEDRIVER_IETF_ACTN(10), - UNRECOGNIZED(-1), - ; + public static com.google.protobuf.Internal.EnumLiteMap internalGetValueMap() { + return internalValueMap; + } - /** - *
-     * also used for emulated
-     * 
- * - * DEVICEDRIVER_UNDEFINED = 0; - */ - public static final int DEVICEDRIVER_UNDEFINED_VALUE = 0; - /** - * DEVICEDRIVER_OPENCONFIG = 1; - */ - public static final int DEVICEDRIVER_OPENCONFIG_VALUE = 1; - /** - * DEVICEDRIVER_TRANSPORT_API = 2; - */ - public static final int DEVICEDRIVER_TRANSPORT_API_VALUE = 2; - /** - * DEVICEDRIVER_P4 = 3; - */ - public static final int DEVICEDRIVER_P4_VALUE = 3; - /** - * DEVICEDRIVER_IETF_NETWORK_TOPOLOGY = 4; - */ - public static final int DEVICEDRIVER_IETF_NETWORK_TOPOLOGY_VALUE = 4; - /** - * DEVICEDRIVER_ONF_TR_532 = 5; - */ - public static final int DEVICEDRIVER_ONF_TR_532_VALUE = 5; - /** - * DEVICEDRIVER_XR = 6; - */ - public static final int DEVICEDRIVER_XR_VALUE = 6; - /** - * DEVICEDRIVER_IETF_L2VPN = 7; - */ - public static final int DEVICEDRIVER_IETF_L2VPN_VALUE = 7; - /** - * DEVICEDRIVER_GNMI_OPENCONFIG = 8; - */ - public static final int DEVICEDRIVER_GNMI_OPENCONFIG_VALUE = 8; - /** - * DEVICEDRIVER_FLEXSCALE = 9; - */ - public static final int DEVICEDRIVER_FLEXSCALE_VALUE = 9; - /** - * DEVICEDRIVER_IETF_ACTN = 10; - */ - public static final int DEVICEDRIVER_IETF_ACTN_VALUE = 10; + private static final com.google.protobuf.Internal.EnumLiteMap internalValueMap = new com.google.protobuf.Internal.EnumLiteMap() { + public EventTypeEnum findValueByNumber(int number) { + return EventTypeEnum.forNumber(number); + } + }; - public final int getNumber() { - if (this == UNRECOGNIZED) { - throw new java.lang.IllegalArgumentException( - "Can't get the number of an unknown enum value."); - } - return value; - } + public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException("Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } - /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. - * @deprecated Use {@link #forNumber(int)} instead. - */ - @java.lang.Deprecated - public static DeviceDriverEnum valueOf(int value) { - return forNumber(value); - } + public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() { + return getDescriptor(); + } - /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. - */ - public static DeviceDriverEnum forNumber(int value) { - switch (value) { - case 0: return DEVICEDRIVER_UNDEFINED; - case 1: return DEVICEDRIVER_OPENCONFIG; - case 2: return DEVICEDRIVER_TRANSPORT_API; - case 3: return DEVICEDRIVER_P4; - case 4: return DEVICEDRIVER_IETF_NETWORK_TOPOLOGY; - case 5: return DEVICEDRIVER_ONF_TR_532; - case 6: return DEVICEDRIVER_XR; - case 7: return DEVICEDRIVER_IETF_L2VPN; - case 8: return DEVICEDRIVER_GNMI_OPENCONFIG; - case 9: return DEVICEDRIVER_FLEXSCALE; - case 10: return DEVICEDRIVER_IETF_ACTN; - default: return null; - } - } + public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { + return context.ContextOuterClass.getDescriptor().getEnumTypes().get(0); + } - public static com.google.protobuf.Internal.EnumLiteMap - internalGetValueMap() { - return internalValueMap; - } - private static final com.google.protobuf.Internal.EnumLiteMap< - DeviceDriverEnum> internalValueMap = - new com.google.protobuf.Internal.EnumLiteMap() { - public DeviceDriverEnum findValueByNumber(int number) { - return DeviceDriverEnum.forNumber(number); + private static final EventTypeEnum[] VALUES = values(); + + public static EventTypeEnum valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type."); } - }; + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private EventTypeEnum(int value) { + this.value = value; + } + } + + /** + * Protobuf enum {@code context.DeviceDriverEnum} + */ + public enum DeviceDriverEnum implements com.google.protobuf.ProtocolMessageEnum { + + /** + *
+         * also used for emulated
+         * 
+ * + * DEVICEDRIVER_UNDEFINED = 0; + */ + DEVICEDRIVER_UNDEFINED(0), + /** + * DEVICEDRIVER_OPENCONFIG = 1; + */ + DEVICEDRIVER_OPENCONFIG(1), + /** + * DEVICEDRIVER_TRANSPORT_API = 2; + */ + DEVICEDRIVER_TRANSPORT_API(2), + /** + * DEVICEDRIVER_P4 = 3; + */ + DEVICEDRIVER_P4(3), + /** + * DEVICEDRIVER_IETF_NETWORK_TOPOLOGY = 4; + */ + DEVICEDRIVER_IETF_NETWORK_TOPOLOGY(4), + /** + * DEVICEDRIVER_ONF_TR_532 = 5; + */ + DEVICEDRIVER_ONF_TR_532(5), + /** + * DEVICEDRIVER_XR = 6; + */ + DEVICEDRIVER_XR(6), + /** + * DEVICEDRIVER_IETF_L2VPN = 7; + */ + DEVICEDRIVER_IETF_L2VPN(7), + /** + * DEVICEDRIVER_GNMI_OPENCONFIG = 8; + */ + DEVICEDRIVER_GNMI_OPENCONFIG(8), + /** + * DEVICEDRIVER_FLEXSCALE = 9; + */ + DEVICEDRIVER_FLEXSCALE(9), + /** + * DEVICEDRIVER_IETF_ACTN = 10; + */ + DEVICEDRIVER_IETF_ACTN(10), + UNRECOGNIZED(-1); + + /** + *
+         * also used for emulated
+         * 
+ * + * DEVICEDRIVER_UNDEFINED = 0; + */ + public static final int DEVICEDRIVER_UNDEFINED_VALUE = 0; + + /** + * DEVICEDRIVER_OPENCONFIG = 1; + */ + public static final int DEVICEDRIVER_OPENCONFIG_VALUE = 1; + + /** + * DEVICEDRIVER_TRANSPORT_API = 2; + */ + public static final int DEVICEDRIVER_TRANSPORT_API_VALUE = 2; + + /** + * DEVICEDRIVER_P4 = 3; + */ + public static final int DEVICEDRIVER_P4_VALUE = 3; + + /** + * DEVICEDRIVER_IETF_NETWORK_TOPOLOGY = 4; + */ + public static final int DEVICEDRIVER_IETF_NETWORK_TOPOLOGY_VALUE = 4; + + /** + * DEVICEDRIVER_ONF_TR_532 = 5; + */ + public static final int DEVICEDRIVER_ONF_TR_532_VALUE = 5; + + /** + * DEVICEDRIVER_XR = 6; + */ + public static final int DEVICEDRIVER_XR_VALUE = 6; + + /** + * DEVICEDRIVER_IETF_L2VPN = 7; + */ + public static final int DEVICEDRIVER_IETF_L2VPN_VALUE = 7; + + /** + * DEVICEDRIVER_GNMI_OPENCONFIG = 8; + */ + public static final int DEVICEDRIVER_GNMI_OPENCONFIG_VALUE = 8; + + /** + * DEVICEDRIVER_FLEXSCALE = 9; + */ + public static final int DEVICEDRIVER_FLEXSCALE_VALUE = 9; + + /** + * DEVICEDRIVER_IETF_ACTN = 10; + */ + public static final int DEVICEDRIVER_IETF_ACTN_VALUE = 10; + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException("Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static DeviceDriverEnum valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static DeviceDriverEnum forNumber(int value) { + switch(value) { + case 0: + return DEVICEDRIVER_UNDEFINED; + case 1: + return DEVICEDRIVER_OPENCONFIG; + case 2: + return DEVICEDRIVER_TRANSPORT_API; + case 3: + return DEVICEDRIVER_P4; + case 4: + return DEVICEDRIVER_IETF_NETWORK_TOPOLOGY; + case 5: + return DEVICEDRIVER_ONF_TR_532; + case 6: + return DEVICEDRIVER_XR; + case 7: + return DEVICEDRIVER_IETF_L2VPN; + case 8: + return DEVICEDRIVER_GNMI_OPENCONFIG; + case 9: + return DEVICEDRIVER_FLEXSCALE; + case 10: + return DEVICEDRIVER_IETF_ACTN; + default: + return null; + } + } - public final com.google.protobuf.Descriptors.EnumValueDescriptor - getValueDescriptor() { - if (this == UNRECOGNIZED) { - throw new java.lang.IllegalStateException( - "Can't get the descriptor of an unrecognized enum value."); - } - return getDescriptor().getValues().get(ordinal()); - } - public final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptorForType() { - return getDescriptor(); - } - public static final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptor() { - return context.ContextOuterClass.getDescriptor().getEnumTypes().get(1); - } + public static com.google.protobuf.Internal.EnumLiteMap internalGetValueMap() { + return internalValueMap; + } - private static final DeviceDriverEnum[] VALUES = values(); - - public static DeviceDriverEnum valueOf( - com.google.protobuf.Descriptors.EnumValueDescriptor desc) { - if (desc.getType() != getDescriptor()) { - throw new java.lang.IllegalArgumentException( - "EnumValueDescriptor is not for this type."); - } - if (desc.getIndex() == -1) { - return UNRECOGNIZED; - } - return VALUES[desc.getIndex()]; - } + private static final com.google.protobuf.Internal.EnumLiteMap internalValueMap = new com.google.protobuf.Internal.EnumLiteMap() { - private final int value; + public DeviceDriverEnum findValueByNumber(int number) { + return DeviceDriverEnum.forNumber(number); + } + }; - private DeviceDriverEnum(int value) { - this.value = value; - } + public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException("Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } - // @@protoc_insertion_point(enum_scope:context.DeviceDriverEnum) - } + public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() { + return getDescriptor(); + } - /** - * Protobuf enum {@code context.DeviceOperationalStatusEnum} - */ - public enum DeviceOperationalStatusEnum - implements com.google.protobuf.ProtocolMessageEnum { - /** - * DEVICEOPERATIONALSTATUS_UNDEFINED = 0; - */ - DEVICEOPERATIONALSTATUS_UNDEFINED(0), - /** - * DEVICEOPERATIONALSTATUS_DISABLED = 1; - */ - DEVICEOPERATIONALSTATUS_DISABLED(1), - /** - * DEVICEOPERATIONALSTATUS_ENABLED = 2; - */ - DEVICEOPERATIONALSTATUS_ENABLED(2), - UNRECOGNIZED(-1), - ; + public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { + return context.ContextOuterClass.getDescriptor().getEnumTypes().get(1); + } - /** - * DEVICEOPERATIONALSTATUS_UNDEFINED = 0; - */ - public static final int DEVICEOPERATIONALSTATUS_UNDEFINED_VALUE = 0; - /** - * DEVICEOPERATIONALSTATUS_DISABLED = 1; - */ - public static final int DEVICEOPERATIONALSTATUS_DISABLED_VALUE = 1; - /** - * DEVICEOPERATIONALSTATUS_ENABLED = 2; - */ - public static final int DEVICEOPERATIONALSTATUS_ENABLED_VALUE = 2; + private static final DeviceDriverEnum[] VALUES = values(); + public static DeviceDriverEnum valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } - public final int getNumber() { - if (this == UNRECOGNIZED) { - throw new java.lang.IllegalArgumentException( - "Can't get the number of an unknown enum value."); - } - return value; - } + private final int value; - /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. - * @deprecated Use {@link #forNumber(int)} instead. - */ - @java.lang.Deprecated - public static DeviceOperationalStatusEnum valueOf(int value) { - return forNumber(value); + private DeviceDriverEnum(int value) { + this.value = value; + } } /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. + * Protobuf enum {@code context.DeviceOperationalStatusEnum} */ - public static DeviceOperationalStatusEnum forNumber(int value) { - switch (value) { - case 0: return DEVICEOPERATIONALSTATUS_UNDEFINED; - case 1: return DEVICEOPERATIONALSTATUS_DISABLED; - case 2: return DEVICEOPERATIONALSTATUS_ENABLED; - default: return null; - } - } + public enum DeviceOperationalStatusEnum implements com.google.protobuf.ProtocolMessageEnum { - public static com.google.protobuf.Internal.EnumLiteMap - internalGetValueMap() { - return internalValueMap; - } - private static final com.google.protobuf.Internal.EnumLiteMap< - DeviceOperationalStatusEnum> internalValueMap = - new com.google.protobuf.Internal.EnumLiteMap() { - public DeviceOperationalStatusEnum findValueByNumber(int number) { - return DeviceOperationalStatusEnum.forNumber(number); - } - }; + /** + * DEVICEOPERATIONALSTATUS_UNDEFINED = 0; + */ + DEVICEOPERATIONALSTATUS_UNDEFINED(0), + /** + * DEVICEOPERATIONALSTATUS_DISABLED = 1; + */ + DEVICEOPERATIONALSTATUS_DISABLED(1), + /** + * DEVICEOPERATIONALSTATUS_ENABLED = 2; + */ + DEVICEOPERATIONALSTATUS_ENABLED(2), + UNRECOGNIZED(-1); - public final com.google.protobuf.Descriptors.EnumValueDescriptor - getValueDescriptor() { - if (this == UNRECOGNIZED) { - throw new java.lang.IllegalStateException( - "Can't get the descriptor of an unrecognized enum value."); - } - return getDescriptor().getValues().get(ordinal()); - } - public final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptorForType() { - return getDescriptor(); - } - public static final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptor() { - return context.ContextOuterClass.getDescriptor().getEnumTypes().get(2); - } + /** + * DEVICEOPERATIONALSTATUS_UNDEFINED = 0; + */ + public static final int DEVICEOPERATIONALSTATUS_UNDEFINED_VALUE = 0; - private static final DeviceOperationalStatusEnum[] VALUES = values(); - - public static DeviceOperationalStatusEnum valueOf( - com.google.protobuf.Descriptors.EnumValueDescriptor desc) { - if (desc.getType() != getDescriptor()) { - throw new java.lang.IllegalArgumentException( - "EnumValueDescriptor is not for this type."); - } - if (desc.getIndex() == -1) { - return UNRECOGNIZED; - } - return VALUES[desc.getIndex()]; - } + /** + * DEVICEOPERATIONALSTATUS_DISABLED = 1; + */ + public static final int DEVICEOPERATIONALSTATUS_DISABLED_VALUE = 1; - private final int value; + /** + * DEVICEOPERATIONALSTATUS_ENABLED = 2; + */ + public static final int DEVICEOPERATIONALSTATUS_ENABLED_VALUE = 2; - private DeviceOperationalStatusEnum(int value) { - this.value = value; - } + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException("Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static DeviceOperationalStatusEnum valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static DeviceOperationalStatusEnum forNumber(int value) { + switch(value) { + case 0: + return DEVICEOPERATIONALSTATUS_UNDEFINED; + case 1: + return DEVICEOPERATIONALSTATUS_DISABLED; + case 2: + return DEVICEOPERATIONALSTATUS_ENABLED; + default: + return null; + } + } - // @@protoc_insertion_point(enum_scope:context.DeviceOperationalStatusEnum) - } + public static com.google.protobuf.Internal.EnumLiteMap internalGetValueMap() { + return internalValueMap; + } - /** - * Protobuf enum {@code context.ServiceTypeEnum} - */ - public enum ServiceTypeEnum - implements com.google.protobuf.ProtocolMessageEnum { - /** - * SERVICETYPE_UNKNOWN = 0; - */ - SERVICETYPE_UNKNOWN(0), - /** - * SERVICETYPE_L3NM = 1; - */ - SERVICETYPE_L3NM(1), - /** - * SERVICETYPE_L2NM = 2; - */ - SERVICETYPE_L2NM(2), - /** - * SERVICETYPE_TAPI_CONNECTIVITY_SERVICE = 3; - */ - SERVICETYPE_TAPI_CONNECTIVITY_SERVICE(3), - /** - * SERVICETYPE_TE = 4; - */ - SERVICETYPE_TE(4), - /** - * SERVICETYPE_E2E = 5; - */ - SERVICETYPE_E2E(5), - UNRECOGNIZED(-1), - ; + private static final com.google.protobuf.Internal.EnumLiteMap internalValueMap = new com.google.protobuf.Internal.EnumLiteMap() { - /** - * SERVICETYPE_UNKNOWN = 0; - */ - public static final int SERVICETYPE_UNKNOWN_VALUE = 0; - /** - * SERVICETYPE_L3NM = 1; - */ - public static final int SERVICETYPE_L3NM_VALUE = 1; - /** - * SERVICETYPE_L2NM = 2; - */ - public static final int SERVICETYPE_L2NM_VALUE = 2; - /** - * SERVICETYPE_TAPI_CONNECTIVITY_SERVICE = 3; - */ - public static final int SERVICETYPE_TAPI_CONNECTIVITY_SERVICE_VALUE = 3; - /** - * SERVICETYPE_TE = 4; - */ - public static final int SERVICETYPE_TE_VALUE = 4; - /** - * SERVICETYPE_E2E = 5; - */ - public static final int SERVICETYPE_E2E_VALUE = 5; + public DeviceOperationalStatusEnum findValueByNumber(int number) { + return DeviceOperationalStatusEnum.forNumber(number); + } + }; + public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException("Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } - public final int getNumber() { - if (this == UNRECOGNIZED) { - throw new java.lang.IllegalArgumentException( - "Can't get the number of an unknown enum value."); - } - return value; - } + public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() { + return getDescriptor(); + } - /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. - * @deprecated Use {@link #forNumber(int)} instead. - */ - @java.lang.Deprecated - public static ServiceTypeEnum valueOf(int value) { - return forNumber(value); - } + public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { + return context.ContextOuterClass.getDescriptor().getEnumTypes().get(2); + } - /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. - */ - public static ServiceTypeEnum forNumber(int value) { - switch (value) { - case 0: return SERVICETYPE_UNKNOWN; - case 1: return SERVICETYPE_L3NM; - case 2: return SERVICETYPE_L2NM; - case 3: return SERVICETYPE_TAPI_CONNECTIVITY_SERVICE; - case 4: return SERVICETYPE_TE; - case 5: return SERVICETYPE_E2E; - default: return null; - } - } + private static final DeviceOperationalStatusEnum[] VALUES = values(); - public static com.google.protobuf.Internal.EnumLiteMap - internalGetValueMap() { - return internalValueMap; - } - private static final com.google.protobuf.Internal.EnumLiteMap< - ServiceTypeEnum> internalValueMap = - new com.google.protobuf.Internal.EnumLiteMap() { - public ServiceTypeEnum findValueByNumber(int number) { - return ServiceTypeEnum.forNumber(number); + public static DeviceOperationalStatusEnum valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type."); } - }; - - public final com.google.protobuf.Descriptors.EnumValueDescriptor - getValueDescriptor() { - if (this == UNRECOGNIZED) { - throw new java.lang.IllegalStateException( - "Can't get the descriptor of an unrecognized enum value."); - } - return getDescriptor().getValues().get(ordinal()); - } - public final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptorForType() { - return getDescriptor(); - } - public static final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptor() { - return context.ContextOuterClass.getDescriptor().getEnumTypes().get(3); - } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private DeviceOperationalStatusEnum(int value) { + this.value = value; + } + } + + /** + * Protobuf enum {@code context.ServiceTypeEnum} + */ + public enum ServiceTypeEnum implements com.google.protobuf.ProtocolMessageEnum { + + /** + * SERVICETYPE_UNKNOWN = 0; + */ + SERVICETYPE_UNKNOWN(0), + /** + * SERVICETYPE_L3NM = 1; + */ + SERVICETYPE_L3NM(1), + /** + * SERVICETYPE_L2NM = 2; + */ + SERVICETYPE_L2NM(2), + /** + * SERVICETYPE_TAPI_CONNECTIVITY_SERVICE = 3; + */ + SERVICETYPE_TAPI_CONNECTIVITY_SERVICE(3), + /** + * SERVICETYPE_TE = 4; + */ + SERVICETYPE_TE(4), + /** + * SERVICETYPE_E2E = 5; + */ + SERVICETYPE_E2E(5), + UNRECOGNIZED(-1); + + /** + * SERVICETYPE_UNKNOWN = 0; + */ + public static final int SERVICETYPE_UNKNOWN_VALUE = 0; + + /** + * SERVICETYPE_L3NM = 1; + */ + public static final int SERVICETYPE_L3NM_VALUE = 1; + + /** + * SERVICETYPE_L2NM = 2; + */ + public static final int SERVICETYPE_L2NM_VALUE = 2; + + /** + * SERVICETYPE_TAPI_CONNECTIVITY_SERVICE = 3; + */ + public static final int SERVICETYPE_TAPI_CONNECTIVITY_SERVICE_VALUE = 3; + + /** + * SERVICETYPE_TE = 4; + */ + public static final int SERVICETYPE_TE_VALUE = 4; + + /** + * SERVICETYPE_E2E = 5; + */ + public static final int SERVICETYPE_E2E_VALUE = 5; + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException("Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static ServiceTypeEnum valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static ServiceTypeEnum forNumber(int value) { + switch(value) { + case 0: + return SERVICETYPE_UNKNOWN; + case 1: + return SERVICETYPE_L3NM; + case 2: + return SERVICETYPE_L2NM; + case 3: + return SERVICETYPE_TAPI_CONNECTIVITY_SERVICE; + case 4: + return SERVICETYPE_TE; + case 5: + return SERVICETYPE_E2E; + default: + return null; + } + } - private static final ServiceTypeEnum[] VALUES = values(); - - public static ServiceTypeEnum valueOf( - com.google.protobuf.Descriptors.EnumValueDescriptor desc) { - if (desc.getType() != getDescriptor()) { - throw new java.lang.IllegalArgumentException( - "EnumValueDescriptor is not for this type."); - } - if (desc.getIndex() == -1) { - return UNRECOGNIZED; - } - return VALUES[desc.getIndex()]; - } + public static com.google.protobuf.Internal.EnumLiteMap internalGetValueMap() { + return internalValueMap; + } - private final int value; + private static final com.google.protobuf.Internal.EnumLiteMap internalValueMap = new com.google.protobuf.Internal.EnumLiteMap() { - private ServiceTypeEnum(int value) { - this.value = value; - } + public ServiceTypeEnum findValueByNumber(int number) { + return ServiceTypeEnum.forNumber(number); + } + }; - // @@protoc_insertion_point(enum_scope:context.ServiceTypeEnum) - } + public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException("Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } - /** - * Protobuf enum {@code context.ServiceStatusEnum} - */ - public enum ServiceStatusEnum - implements com.google.protobuf.ProtocolMessageEnum { - /** - * SERVICESTATUS_UNDEFINED = 0; - */ - SERVICESTATUS_UNDEFINED(0), - /** - * SERVICESTATUS_PLANNED = 1; - */ - SERVICESTATUS_PLANNED(1), - /** - * SERVICESTATUS_ACTIVE = 2; - */ - SERVICESTATUS_ACTIVE(2), - /** - * SERVICESTATUS_UPDATING = 3; - */ - SERVICESTATUS_UPDATING(3), - /** - * SERVICESTATUS_PENDING_REMOVAL = 4; - */ - SERVICESTATUS_PENDING_REMOVAL(4), - /** - * SERVICESTATUS_SLA_VIOLATED = 5; - */ - SERVICESTATUS_SLA_VIOLATED(5), - UNRECOGNIZED(-1), - ; + public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() { + return getDescriptor(); + } - /** - * SERVICESTATUS_UNDEFINED = 0; - */ - public static final int SERVICESTATUS_UNDEFINED_VALUE = 0; - /** - * SERVICESTATUS_PLANNED = 1; - */ - public static final int SERVICESTATUS_PLANNED_VALUE = 1; - /** - * SERVICESTATUS_ACTIVE = 2; - */ - public static final int SERVICESTATUS_ACTIVE_VALUE = 2; - /** - * SERVICESTATUS_UPDATING = 3; - */ - public static final int SERVICESTATUS_UPDATING_VALUE = 3; - /** - * SERVICESTATUS_PENDING_REMOVAL = 4; - */ - public static final int SERVICESTATUS_PENDING_REMOVAL_VALUE = 4; - /** - * SERVICESTATUS_SLA_VIOLATED = 5; - */ - public static final int SERVICESTATUS_SLA_VIOLATED_VALUE = 5; + public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { + return context.ContextOuterClass.getDescriptor().getEnumTypes().get(3); + } + private static final ServiceTypeEnum[] VALUES = values(); - public final int getNumber() { - if (this == UNRECOGNIZED) { - throw new java.lang.IllegalArgumentException( - "Can't get the number of an unknown enum value."); - } - return value; - } + public static ServiceTypeEnum valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private ServiceTypeEnum(int value) { + this.value = value; + } + } + + /** + * Protobuf enum {@code context.ServiceStatusEnum} + */ + public enum ServiceStatusEnum implements com.google.protobuf.ProtocolMessageEnum { + + /** + * SERVICESTATUS_UNDEFINED = 0; + */ + SERVICESTATUS_UNDEFINED(0), + /** + * SERVICESTATUS_PLANNED = 1; + */ + SERVICESTATUS_PLANNED(1), + /** + * SERVICESTATUS_ACTIVE = 2; + */ + SERVICESTATUS_ACTIVE(2), + /** + * SERVICESTATUS_UPDATING = 3; + */ + SERVICESTATUS_UPDATING(3), + /** + * SERVICESTATUS_PENDING_REMOVAL = 4; + */ + SERVICESTATUS_PENDING_REMOVAL(4), + /** + * SERVICESTATUS_SLA_VIOLATED = 5; + */ + SERVICESTATUS_SLA_VIOLATED(5), + UNRECOGNIZED(-1); + + /** + * SERVICESTATUS_UNDEFINED = 0; + */ + public static final int SERVICESTATUS_UNDEFINED_VALUE = 0; + + /** + * SERVICESTATUS_PLANNED = 1; + */ + public static final int SERVICESTATUS_PLANNED_VALUE = 1; + + /** + * SERVICESTATUS_ACTIVE = 2; + */ + public static final int SERVICESTATUS_ACTIVE_VALUE = 2; + + /** + * SERVICESTATUS_UPDATING = 3; + */ + public static final int SERVICESTATUS_UPDATING_VALUE = 3; + + /** + * SERVICESTATUS_PENDING_REMOVAL = 4; + */ + public static final int SERVICESTATUS_PENDING_REMOVAL_VALUE = 4; + + /** + * SERVICESTATUS_SLA_VIOLATED = 5; + */ + public static final int SERVICESTATUS_SLA_VIOLATED_VALUE = 5; + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException("Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static ServiceStatusEnum valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static ServiceStatusEnum forNumber(int value) { + switch(value) { + case 0: + return SERVICESTATUS_UNDEFINED; + case 1: + return SERVICESTATUS_PLANNED; + case 2: + return SERVICESTATUS_ACTIVE; + case 3: + return SERVICESTATUS_UPDATING; + case 4: + return SERVICESTATUS_PENDING_REMOVAL; + case 5: + return SERVICESTATUS_SLA_VIOLATED; + default: + return null; + } + } - /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. - * @deprecated Use {@link #forNumber(int)} instead. - */ - @java.lang.Deprecated - public static ServiceStatusEnum valueOf(int value) { - return forNumber(value); - } + public static com.google.protobuf.Internal.EnumLiteMap internalGetValueMap() { + return internalValueMap; + } - /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. - */ - public static ServiceStatusEnum forNumber(int value) { - switch (value) { - case 0: return SERVICESTATUS_UNDEFINED; - case 1: return SERVICESTATUS_PLANNED; - case 2: return SERVICESTATUS_ACTIVE; - case 3: return SERVICESTATUS_UPDATING; - case 4: return SERVICESTATUS_PENDING_REMOVAL; - case 5: return SERVICESTATUS_SLA_VIOLATED; - default: return null; - } - } + private static final com.google.protobuf.Internal.EnumLiteMap internalValueMap = new com.google.protobuf.Internal.EnumLiteMap() { - public static com.google.protobuf.Internal.EnumLiteMap - internalGetValueMap() { - return internalValueMap; - } - private static final com.google.protobuf.Internal.EnumLiteMap< - ServiceStatusEnum> internalValueMap = - new com.google.protobuf.Internal.EnumLiteMap() { public ServiceStatusEnum findValueByNumber(int number) { - return ServiceStatusEnum.forNumber(number); + return ServiceStatusEnum.forNumber(number); } - }; + }; - public final com.google.protobuf.Descriptors.EnumValueDescriptor - getValueDescriptor() { - if (this == UNRECOGNIZED) { - throw new java.lang.IllegalStateException( - "Can't get the descriptor of an unrecognized enum value."); - } - return getDescriptor().getValues().get(ordinal()); - } - public final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptorForType() { - return getDescriptor(); - } - public static final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptor() { - return context.ContextOuterClass.getDescriptor().getEnumTypes().get(4); - } + public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException("Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } - private static final ServiceStatusEnum[] VALUES = values(); - - public static ServiceStatusEnum valueOf( - com.google.protobuf.Descriptors.EnumValueDescriptor desc) { - if (desc.getType() != getDescriptor()) { - throw new java.lang.IllegalArgumentException( - "EnumValueDescriptor is not for this type."); - } - if (desc.getIndex() == -1) { - return UNRECOGNIZED; - } - return VALUES[desc.getIndex()]; - } + public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() { + return getDescriptor(); + } - private final int value; + public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { + return context.ContextOuterClass.getDescriptor().getEnumTypes().get(4); + } - private ServiceStatusEnum(int value) { - this.value = value; - } + private static final ServiceStatusEnum[] VALUES = values(); - // @@protoc_insertion_point(enum_scope:context.ServiceStatusEnum) - } + public static ServiceStatusEnum valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private ServiceStatusEnum(int value) { + this.value = value; + } + } + + /** + * Protobuf enum {@code context.SliceStatusEnum} + */ + public enum SliceStatusEnum implements com.google.protobuf.ProtocolMessageEnum { + + /** + * SLICESTATUS_UNDEFINED = 0; + */ + SLICESTATUS_UNDEFINED(0), + /** + * SLICESTATUS_PLANNED = 1; + */ + SLICESTATUS_PLANNED(1), + /** + * SLICESTATUS_INIT = 2; + */ + SLICESTATUS_INIT(2), + /** + * SLICESTATUS_ACTIVE = 3; + */ + SLICESTATUS_ACTIVE(3), + /** + * SLICESTATUS_DEINIT = 4; + */ + SLICESTATUS_DEINIT(4), + /** + * SLICESTATUS_SLA_VIOLATED = 5; + */ + SLICESTATUS_SLA_VIOLATED(5), + UNRECOGNIZED(-1); + + /** + * SLICESTATUS_UNDEFINED = 0; + */ + public static final int SLICESTATUS_UNDEFINED_VALUE = 0; + + /** + * SLICESTATUS_PLANNED = 1; + */ + public static final int SLICESTATUS_PLANNED_VALUE = 1; + + /** + * SLICESTATUS_INIT = 2; + */ + public static final int SLICESTATUS_INIT_VALUE = 2; + + /** + * SLICESTATUS_ACTIVE = 3; + */ + public static final int SLICESTATUS_ACTIVE_VALUE = 3; + + /** + * SLICESTATUS_DEINIT = 4; + */ + public static final int SLICESTATUS_DEINIT_VALUE = 4; + + /** + * SLICESTATUS_SLA_VIOLATED = 5; + */ + public static final int SLICESTATUS_SLA_VIOLATED_VALUE = 5; + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException("Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static SliceStatusEnum valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static SliceStatusEnum forNumber(int value) { + switch(value) { + case 0: + return SLICESTATUS_UNDEFINED; + case 1: + return SLICESTATUS_PLANNED; + case 2: + return SLICESTATUS_INIT; + case 3: + return SLICESTATUS_ACTIVE; + case 4: + return SLICESTATUS_DEINIT; + case 5: + return SLICESTATUS_SLA_VIOLATED; + default: + return null; + } + } - /** - * Protobuf enum {@code context.SliceStatusEnum} - */ - public enum SliceStatusEnum - implements com.google.protobuf.ProtocolMessageEnum { - /** - * SLICESTATUS_UNDEFINED = 0; - */ - SLICESTATUS_UNDEFINED(0), - /** - * SLICESTATUS_PLANNED = 1; - */ - SLICESTATUS_PLANNED(1), - /** - * SLICESTATUS_INIT = 2; - */ - SLICESTATUS_INIT(2), - /** - * SLICESTATUS_ACTIVE = 3; - */ - SLICESTATUS_ACTIVE(3), - /** - * SLICESTATUS_DEINIT = 4; - */ - SLICESTATUS_DEINIT(4), - /** - * SLICESTATUS_SLA_VIOLATED = 5; - */ - SLICESTATUS_SLA_VIOLATED(5), - UNRECOGNIZED(-1), - ; - - /** - * SLICESTATUS_UNDEFINED = 0; - */ - public static final int SLICESTATUS_UNDEFINED_VALUE = 0; - /** - * SLICESTATUS_PLANNED = 1; - */ - public static final int SLICESTATUS_PLANNED_VALUE = 1; - /** - * SLICESTATUS_INIT = 2; - */ - public static final int SLICESTATUS_INIT_VALUE = 2; - /** - * SLICESTATUS_ACTIVE = 3; - */ - public static final int SLICESTATUS_ACTIVE_VALUE = 3; - /** - * SLICESTATUS_DEINIT = 4; - */ - public static final int SLICESTATUS_DEINIT_VALUE = 4; - /** - * SLICESTATUS_SLA_VIOLATED = 5; - */ - public static final int SLICESTATUS_SLA_VIOLATED_VALUE = 5; - - - public final int getNumber() { - if (this == UNRECOGNIZED) { - throw new java.lang.IllegalArgumentException( - "Can't get the number of an unknown enum value."); - } - return value; - } - - /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. - * @deprecated Use {@link #forNumber(int)} instead. - */ - @java.lang.Deprecated - public static SliceStatusEnum valueOf(int value) { - return forNumber(value); - } + public static com.google.protobuf.Internal.EnumLiteMap internalGetValueMap() { + return internalValueMap; + } - /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. - */ - public static SliceStatusEnum forNumber(int value) { - switch (value) { - case 0: return SLICESTATUS_UNDEFINED; - case 1: return SLICESTATUS_PLANNED; - case 2: return SLICESTATUS_INIT; - case 3: return SLICESTATUS_ACTIVE; - case 4: return SLICESTATUS_DEINIT; - case 5: return SLICESTATUS_SLA_VIOLATED; - default: return null; - } - } + private static final com.google.protobuf.Internal.EnumLiteMap internalValueMap = new com.google.protobuf.Internal.EnumLiteMap() { - public static com.google.protobuf.Internal.EnumLiteMap - internalGetValueMap() { - return internalValueMap; - } - private static final com.google.protobuf.Internal.EnumLiteMap< - SliceStatusEnum> internalValueMap = - new com.google.protobuf.Internal.EnumLiteMap() { public SliceStatusEnum findValueByNumber(int number) { - return SliceStatusEnum.forNumber(number); + return SliceStatusEnum.forNumber(number); } - }; - - public final com.google.protobuf.Descriptors.EnumValueDescriptor - getValueDescriptor() { - if (this == UNRECOGNIZED) { - throw new java.lang.IllegalStateException( - "Can't get the descriptor of an unrecognized enum value."); - } - return getDescriptor().getValues().get(ordinal()); - } - public final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptorForType() { - return getDescriptor(); - } - public static final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptor() { - return context.ContextOuterClass.getDescriptor().getEnumTypes().get(5); - } + }; - private static final SliceStatusEnum[] VALUES = values(); - - public static SliceStatusEnum valueOf( - com.google.protobuf.Descriptors.EnumValueDescriptor desc) { - if (desc.getType() != getDescriptor()) { - throw new java.lang.IllegalArgumentException( - "EnumValueDescriptor is not for this type."); - } - if (desc.getIndex() == -1) { - return UNRECOGNIZED; - } - return VALUES[desc.getIndex()]; - } + public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException("Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } - private final int value; + public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() { + return getDescriptor(); + } - private SliceStatusEnum(int value) { - this.value = value; - } + public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { + return context.ContextOuterClass.getDescriptor().getEnumTypes().get(5); + } - // @@protoc_insertion_point(enum_scope:context.SliceStatusEnum) - } - - /** - *
-   * ----- Configuration -------------------------------------------------------------------------------------------------
-   * 
- * - * Protobuf enum {@code context.ConfigActionEnum} - */ - public enum ConfigActionEnum - implements com.google.protobuf.ProtocolMessageEnum { - /** - * CONFIGACTION_UNDEFINED = 0; - */ - CONFIGACTION_UNDEFINED(0), - /** - * CONFIGACTION_SET = 1; - */ - CONFIGACTION_SET(1), - /** - * CONFIGACTION_DELETE = 2; - */ - CONFIGACTION_DELETE(2), - UNRECOGNIZED(-1), - ; + private static final SliceStatusEnum[] VALUES = values(); - /** - * CONFIGACTION_UNDEFINED = 0; - */ - public static final int CONFIGACTION_UNDEFINED_VALUE = 0; - /** - * CONFIGACTION_SET = 1; - */ - public static final int CONFIGACTION_SET_VALUE = 1; - /** - * CONFIGACTION_DELETE = 2; - */ - public static final int CONFIGACTION_DELETE_VALUE = 2; + public static SliceStatusEnum valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + private final int value; - public final int getNumber() { - if (this == UNRECOGNIZED) { - throw new java.lang.IllegalArgumentException( - "Can't get the number of an unknown enum value."); - } - return value; + private SliceStatusEnum(int value) { + this.value = value; + } } /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. - * @deprecated Use {@link #forNumber(int)} instead. - */ - @java.lang.Deprecated - public static ConfigActionEnum valueOf(int value) { - return forNumber(value); - } + *
+     * ----- Configuration -------------------------------------------------------------------------------------------------
+     * 
+ * + * Protobuf enum {@code context.ConfigActionEnum} + */ + public enum ConfigActionEnum implements com.google.protobuf.ProtocolMessageEnum { + + /** + * CONFIGACTION_UNDEFINED = 0; + */ + CONFIGACTION_UNDEFINED(0), + /** + * CONFIGACTION_SET = 1; + */ + CONFIGACTION_SET(1), + /** + * CONFIGACTION_DELETE = 2; + */ + CONFIGACTION_DELETE(2), + UNRECOGNIZED(-1); + + /** + * CONFIGACTION_UNDEFINED = 0; + */ + public static final int CONFIGACTION_UNDEFINED_VALUE = 0; + + /** + * CONFIGACTION_SET = 1; + */ + public static final int CONFIGACTION_SET_VALUE = 1; + + /** + * CONFIGACTION_DELETE = 2; + */ + public static final int CONFIGACTION_DELETE_VALUE = 2; + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException("Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static ConfigActionEnum valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static ConfigActionEnum forNumber(int value) { + switch(value) { + case 0: + return CONFIGACTION_UNDEFINED; + case 1: + return CONFIGACTION_SET; + case 2: + return CONFIGACTION_DELETE; + default: + return null; + } + } - /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. - */ - public static ConfigActionEnum forNumber(int value) { - switch (value) { - case 0: return CONFIGACTION_UNDEFINED; - case 1: return CONFIGACTION_SET; - case 2: return CONFIGACTION_DELETE; - default: return null; - } - } + public static com.google.protobuf.Internal.EnumLiteMap internalGetValueMap() { + return internalValueMap; + } + + private static final com.google.protobuf.Internal.EnumLiteMap internalValueMap = new com.google.protobuf.Internal.EnumLiteMap() { - public static com.google.protobuf.Internal.EnumLiteMap - internalGetValueMap() { - return internalValueMap; - } - private static final com.google.protobuf.Internal.EnumLiteMap< - ConfigActionEnum> internalValueMap = - new com.google.protobuf.Internal.EnumLiteMap() { public ConfigActionEnum findValueByNumber(int number) { - return ConfigActionEnum.forNumber(number); + return ConfigActionEnum.forNumber(number); } - }; - - public final com.google.protobuf.Descriptors.EnumValueDescriptor - getValueDescriptor() { - if (this == UNRECOGNIZED) { - throw new java.lang.IllegalStateException( - "Can't get the descriptor of an unrecognized enum value."); - } - return getDescriptor().getValues().get(ordinal()); - } - public final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptorForType() { - return getDescriptor(); - } - public static final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptor() { - return context.ContextOuterClass.getDescriptor().getEnumTypes().get(6); - } - - private static final ConfigActionEnum[] VALUES = values(); - - public static ConfigActionEnum valueOf( - com.google.protobuf.Descriptors.EnumValueDescriptor desc) { - if (desc.getType() != getDescriptor()) { - throw new java.lang.IllegalArgumentException( - "EnumValueDescriptor is not for this type."); - } - if (desc.getIndex() == -1) { - return UNRECOGNIZED; - } - return VALUES[desc.getIndex()]; - } + }; - private final int value; + public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException("Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } - private ConfigActionEnum(int value) { - this.value = value; - } + public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() { + return getDescriptor(); + } - // @@protoc_insertion_point(enum_scope:context.ConfigActionEnum) - } - - /** - *
-   * ----- Constraint ----------------------------------------------------------------------------------------------------
-   * 
- * - * Protobuf enum {@code context.ConstraintActionEnum} - */ - public enum ConstraintActionEnum - implements com.google.protobuf.ProtocolMessageEnum { - /** - * CONSTRAINTACTION_UNDEFINED = 0; - */ - CONSTRAINTACTION_UNDEFINED(0), - /** - * CONSTRAINTACTION_SET = 1; - */ - CONSTRAINTACTION_SET(1), - /** - * CONSTRAINTACTION_DELETE = 2; - */ - CONSTRAINTACTION_DELETE(2), - UNRECOGNIZED(-1), - ; + public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { + return context.ContextOuterClass.getDescriptor().getEnumTypes().get(6); + } - /** - * CONSTRAINTACTION_UNDEFINED = 0; - */ - public static final int CONSTRAINTACTION_UNDEFINED_VALUE = 0; - /** - * CONSTRAINTACTION_SET = 1; - */ - public static final int CONSTRAINTACTION_SET_VALUE = 1; - /** - * CONSTRAINTACTION_DELETE = 2; - */ - public static final int CONSTRAINTACTION_DELETE_VALUE = 2; + private static final ConfigActionEnum[] VALUES = values(); + public static ConfigActionEnum valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } - public final int getNumber() { - if (this == UNRECOGNIZED) { - throw new java.lang.IllegalArgumentException( - "Can't get the number of an unknown enum value."); - } - return value; - } + private final int value; - /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. - * @deprecated Use {@link #forNumber(int)} instead. - */ - @java.lang.Deprecated - public static ConstraintActionEnum valueOf(int value) { - return forNumber(value); + private ConfigActionEnum(int value) { + this.value = value; + } } /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. - */ - public static ConstraintActionEnum forNumber(int value) { - switch (value) { - case 0: return CONSTRAINTACTION_UNDEFINED; - case 1: return CONSTRAINTACTION_SET; - case 2: return CONSTRAINTACTION_DELETE; - default: return null; - } - } - - public static com.google.protobuf.Internal.EnumLiteMap - internalGetValueMap() { - return internalValueMap; - } - private static final com.google.protobuf.Internal.EnumLiteMap< - ConstraintActionEnum> internalValueMap = - new com.google.protobuf.Internal.EnumLiteMap() { - public ConstraintActionEnum findValueByNumber(int number) { - return ConstraintActionEnum.forNumber(number); + *
+     * ----- Constraint ----------------------------------------------------------------------------------------------------
+     * 
+ * + * Protobuf enum {@code context.ConstraintActionEnum} + */ + public enum ConstraintActionEnum implements com.google.protobuf.ProtocolMessageEnum { + + /** + * CONSTRAINTACTION_UNDEFINED = 0; + */ + CONSTRAINTACTION_UNDEFINED(0), + /** + * CONSTRAINTACTION_SET = 1; + */ + CONSTRAINTACTION_SET(1), + /** + * CONSTRAINTACTION_DELETE = 2; + */ + CONSTRAINTACTION_DELETE(2), + UNRECOGNIZED(-1); + + /** + * CONSTRAINTACTION_UNDEFINED = 0; + */ + public static final int CONSTRAINTACTION_UNDEFINED_VALUE = 0; + + /** + * CONSTRAINTACTION_SET = 1; + */ + public static final int CONSTRAINTACTION_SET_VALUE = 1; + + /** + * CONSTRAINTACTION_DELETE = 2; + */ + public static final int CONSTRAINTACTION_DELETE_VALUE = 2; + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException("Can't get the number of an unknown enum value."); } - }; - - public final com.google.protobuf.Descriptors.EnumValueDescriptor - getValueDescriptor() { - if (this == UNRECOGNIZED) { - throw new java.lang.IllegalStateException( - "Can't get the descriptor of an unrecognized enum value."); - } - return getDescriptor().getValues().get(ordinal()); - } - public final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptorForType() { - return getDescriptor(); - } - public static final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptor() { - return context.ContextOuterClass.getDescriptor().getEnumTypes().get(7); - } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static ConstraintActionEnum valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static ConstraintActionEnum forNumber(int value) { + switch(value) { + case 0: + return CONSTRAINTACTION_UNDEFINED; + case 1: + return CONSTRAINTACTION_SET; + case 2: + return CONSTRAINTACTION_DELETE; + default: + return null; + } + } - private static final ConstraintActionEnum[] VALUES = values(); - - public static ConstraintActionEnum valueOf( - com.google.protobuf.Descriptors.EnumValueDescriptor desc) { - if (desc.getType() != getDescriptor()) { - throw new java.lang.IllegalArgumentException( - "EnumValueDescriptor is not for this type."); - } - if (desc.getIndex() == -1) { - return UNRECOGNIZED; - } - return VALUES[desc.getIndex()]; - } + public static com.google.protobuf.Internal.EnumLiteMap internalGetValueMap() { + return internalValueMap; + } - private final int value; + private static final com.google.protobuf.Internal.EnumLiteMap internalValueMap = new com.google.protobuf.Internal.EnumLiteMap() { - private ConstraintActionEnum(int value) { - this.value = value; - } + public ConstraintActionEnum findValueByNumber(int number) { + return ConstraintActionEnum.forNumber(number); + } + }; - // @@protoc_insertion_point(enum_scope:context.ConstraintActionEnum) - } + public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException("Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } - /** - * Protobuf enum {@code context.IsolationLevelEnum} - */ - public enum IsolationLevelEnum - implements com.google.protobuf.ProtocolMessageEnum { - /** - * NO_ISOLATION = 0; - */ - NO_ISOLATION(0), - /** - * PHYSICAL_ISOLATION = 1; - */ - PHYSICAL_ISOLATION(1), - /** - * LOGICAL_ISOLATION = 2; - */ - LOGICAL_ISOLATION(2), - /** - * PROCESS_ISOLATION = 3; - */ - PROCESS_ISOLATION(3), - /** - * PHYSICAL_MEMORY_ISOLATION = 4; - */ - PHYSICAL_MEMORY_ISOLATION(4), - /** - * PHYSICAL_NETWORK_ISOLATION = 5; - */ - PHYSICAL_NETWORK_ISOLATION(5), - /** - * VIRTUAL_RESOURCE_ISOLATION = 6; - */ - VIRTUAL_RESOURCE_ISOLATION(6), - /** - * NETWORK_FUNCTIONS_ISOLATION = 7; - */ - NETWORK_FUNCTIONS_ISOLATION(7), - /** - * SERVICE_ISOLATION = 8; - */ - SERVICE_ISOLATION(8), - UNRECOGNIZED(-1), - ; + public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() { + return getDescriptor(); + } - /** - * NO_ISOLATION = 0; - */ - public static final int NO_ISOLATION_VALUE = 0; - /** - * PHYSICAL_ISOLATION = 1; - */ - public static final int PHYSICAL_ISOLATION_VALUE = 1; - /** - * LOGICAL_ISOLATION = 2; - */ - public static final int LOGICAL_ISOLATION_VALUE = 2; - /** - * PROCESS_ISOLATION = 3; - */ - public static final int PROCESS_ISOLATION_VALUE = 3; - /** - * PHYSICAL_MEMORY_ISOLATION = 4; - */ - public static final int PHYSICAL_MEMORY_ISOLATION_VALUE = 4; - /** - * PHYSICAL_NETWORK_ISOLATION = 5; - */ - public static final int PHYSICAL_NETWORK_ISOLATION_VALUE = 5; - /** - * VIRTUAL_RESOURCE_ISOLATION = 6; - */ - public static final int VIRTUAL_RESOURCE_ISOLATION_VALUE = 6; - /** - * NETWORK_FUNCTIONS_ISOLATION = 7; - */ - public static final int NETWORK_FUNCTIONS_ISOLATION_VALUE = 7; - /** - * SERVICE_ISOLATION = 8; - */ - public static final int SERVICE_ISOLATION_VALUE = 8; + public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { + return context.ContextOuterClass.getDescriptor().getEnumTypes().get(7); + } + private static final ConstraintActionEnum[] VALUES = values(); - public final int getNumber() { - if (this == UNRECOGNIZED) { - throw new java.lang.IllegalArgumentException( - "Can't get the number of an unknown enum value."); - } - return value; - } + public static ConstraintActionEnum valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private ConstraintActionEnum(int value) { + this.value = value; + } + } + + /** + * Protobuf enum {@code context.IsolationLevelEnum} + */ + public enum IsolationLevelEnum implements com.google.protobuf.ProtocolMessageEnum { + + /** + * NO_ISOLATION = 0; + */ + NO_ISOLATION(0), + /** + * PHYSICAL_ISOLATION = 1; + */ + PHYSICAL_ISOLATION(1), + /** + * LOGICAL_ISOLATION = 2; + */ + LOGICAL_ISOLATION(2), + /** + * PROCESS_ISOLATION = 3; + */ + PROCESS_ISOLATION(3), + /** + * PHYSICAL_MEMORY_ISOLATION = 4; + */ + PHYSICAL_MEMORY_ISOLATION(4), + /** + * PHYSICAL_NETWORK_ISOLATION = 5; + */ + PHYSICAL_NETWORK_ISOLATION(5), + /** + * VIRTUAL_RESOURCE_ISOLATION = 6; + */ + VIRTUAL_RESOURCE_ISOLATION(6), + /** + * NETWORK_FUNCTIONS_ISOLATION = 7; + */ + NETWORK_FUNCTIONS_ISOLATION(7), + /** + * SERVICE_ISOLATION = 8; + */ + SERVICE_ISOLATION(8), + UNRECOGNIZED(-1); + + /** + * NO_ISOLATION = 0; + */ + public static final int NO_ISOLATION_VALUE = 0; + + /** + * PHYSICAL_ISOLATION = 1; + */ + public static final int PHYSICAL_ISOLATION_VALUE = 1; + + /** + * LOGICAL_ISOLATION = 2; + */ + public static final int LOGICAL_ISOLATION_VALUE = 2; + + /** + * PROCESS_ISOLATION = 3; + */ + public static final int PROCESS_ISOLATION_VALUE = 3; + + /** + * PHYSICAL_MEMORY_ISOLATION = 4; + */ + public static final int PHYSICAL_MEMORY_ISOLATION_VALUE = 4; + + /** + * PHYSICAL_NETWORK_ISOLATION = 5; + */ + public static final int PHYSICAL_NETWORK_ISOLATION_VALUE = 5; + + /** + * VIRTUAL_RESOURCE_ISOLATION = 6; + */ + public static final int VIRTUAL_RESOURCE_ISOLATION_VALUE = 6; + + /** + * NETWORK_FUNCTIONS_ISOLATION = 7; + */ + public static final int NETWORK_FUNCTIONS_ISOLATION_VALUE = 7; + + /** + * SERVICE_ISOLATION = 8; + */ + public static final int SERVICE_ISOLATION_VALUE = 8; + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException("Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static IsolationLevelEnum valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static IsolationLevelEnum forNumber(int value) { + switch(value) { + case 0: + return NO_ISOLATION; + case 1: + return PHYSICAL_ISOLATION; + case 2: + return LOGICAL_ISOLATION; + case 3: + return PROCESS_ISOLATION; + case 4: + return PHYSICAL_MEMORY_ISOLATION; + case 5: + return PHYSICAL_NETWORK_ISOLATION; + case 6: + return VIRTUAL_RESOURCE_ISOLATION; + case 7: + return NETWORK_FUNCTIONS_ISOLATION; + case 8: + return SERVICE_ISOLATION; + default: + return null; + } + } - /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. - * @deprecated Use {@link #forNumber(int)} instead. - */ - @java.lang.Deprecated - public static IsolationLevelEnum valueOf(int value) { - return forNumber(value); - } + public static com.google.protobuf.Internal.EnumLiteMap internalGetValueMap() { + return internalValueMap; + } - /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. - */ - public static IsolationLevelEnum forNumber(int value) { - switch (value) { - case 0: return NO_ISOLATION; - case 1: return PHYSICAL_ISOLATION; - case 2: return LOGICAL_ISOLATION; - case 3: return PROCESS_ISOLATION; - case 4: return PHYSICAL_MEMORY_ISOLATION; - case 5: return PHYSICAL_NETWORK_ISOLATION; - case 6: return VIRTUAL_RESOURCE_ISOLATION; - case 7: return NETWORK_FUNCTIONS_ISOLATION; - case 8: return SERVICE_ISOLATION; - default: return null; - } - } + private static final com.google.protobuf.Internal.EnumLiteMap internalValueMap = new com.google.protobuf.Internal.EnumLiteMap() { - public static com.google.protobuf.Internal.EnumLiteMap - internalGetValueMap() { - return internalValueMap; - } - private static final com.google.protobuf.Internal.EnumLiteMap< - IsolationLevelEnum> internalValueMap = - new com.google.protobuf.Internal.EnumLiteMap() { public IsolationLevelEnum findValueByNumber(int number) { - return IsolationLevelEnum.forNumber(number); + return IsolationLevelEnum.forNumber(number); } - }; - - public final com.google.protobuf.Descriptors.EnumValueDescriptor - getValueDescriptor() { - if (this == UNRECOGNIZED) { - throw new java.lang.IllegalStateException( - "Can't get the descriptor of an unrecognized enum value."); - } - return getDescriptor().getValues().get(ordinal()); - } - public final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptorForType() { - return getDescriptor(); - } - public static final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptor() { - return context.ContextOuterClass.getDescriptor().getEnumTypes().get(8); - } - - private static final IsolationLevelEnum[] VALUES = values(); - - public static IsolationLevelEnum valueOf( - com.google.protobuf.Descriptors.EnumValueDescriptor desc) { - if (desc.getType() != getDescriptor()) { - throw new java.lang.IllegalArgumentException( - "EnumValueDescriptor is not for this type."); - } - if (desc.getIndex() == -1) { - return UNRECOGNIZED; - } - return VALUES[desc.getIndex()]; - } - - private final int value; - - private IsolationLevelEnum(int value) { - this.value = value; - } - - // @@protoc_insertion_point(enum_scope:context.IsolationLevelEnum) - } - - public interface EmptyOrBuilder extends - // @@protoc_insertion_point(interface_extends:context.Empty) - com.google.protobuf.MessageOrBuilder { - } - /** - *
-   * ----- Generic -------------------------------------------------------------------------------------------------------
-   * 
- * - * Protobuf type {@code context.Empty} - */ - public static final class Empty extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:context.Empty) - EmptyOrBuilder { - private static final long serialVersionUID = 0L; - // Use Empty.newBuilder() to construct. - private Empty(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private Empty() { - } + }; - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new Empty(); - } - - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private Empty( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = - com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - default: { - if (!parseUnknownField( - input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException( - e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return context.ContextOuterClass.internal_static_context_Empty_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_Empty_fieldAccessorTable - .ensureFieldAccessorsInitialized( - context.ContextOuterClass.Empty.class, context.ContextOuterClass.Empty.Builder.class); - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } + public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException("Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - unknownFields.writeTo(output); - } + public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() { + return getDescriptor(); + } - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; + public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { + return context.ContextOuterClass.getDescriptor().getEnumTypes().get(8); + } - size = 0; - size += unknownFields.getSerializedSize(); - memoizedSize = size; - return size; - } + private static final IsolationLevelEnum[] VALUES = values(); - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof context.ContextOuterClass.Empty)) { - return super.equals(obj); - } - context.ContextOuterClass.Empty other = (context.ContextOuterClass.Empty) obj; - - if (!unknownFields.equals(other.unknownFields)) return false; - return true; - } + public static IsolationLevelEnum valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (29 * hash) + unknownFields.hashCode(); - memoizedHashCode = hash; - return hash; - } + private final int value; - public static context.ContextOuterClass.Empty parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static context.ContextOuterClass.Empty parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static context.ContextOuterClass.Empty parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static context.ContextOuterClass.Empty parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static context.ContextOuterClass.Empty parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static context.ContextOuterClass.Empty parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static context.ContextOuterClass.Empty parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static context.ContextOuterClass.Empty parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - public static context.ContextOuterClass.Empty parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - public static context.ContextOuterClass.Empty parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static context.ContextOuterClass.Empty parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static context.ContextOuterClass.Empty parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); + private IsolationLevelEnum(int value) { + this.value = value; + } } - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(context.ContextOuterClass.Empty prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); + public interface EmptyOrBuilder extends // @@protoc_insertion_point(interface_extends:context.Empty) + com.google.protobuf.MessageOrBuilder { } - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } /** *
      * ----- Generic -------------------------------------------------------------------------------------------------------
@@ -1535,74918 +1322,68464 @@ public final class ContextOuterClass {
      *
      * Protobuf type {@code context.Empty}
      */
-    public static final class Builder extends
-        com.google.protobuf.GeneratedMessageV3.Builder implements
-        // @@protoc_insertion_point(builder_implements:context.Empty)
-        context.ContextOuterClass.EmptyOrBuilder {
-      public static final com.google.protobuf.Descriptors.Descriptor
-          getDescriptor() {
-        return context.ContextOuterClass.internal_static_context_Empty_descriptor;
-      }
-
-      @java.lang.Override
-      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-          internalGetFieldAccessorTable() {
-        return context.ContextOuterClass.internal_static_context_Empty_fieldAccessorTable
-            .ensureFieldAccessorsInitialized(
-                context.ContextOuterClass.Empty.class, context.ContextOuterClass.Empty.Builder.class);
-      }
-
-      // Construct using context.ContextOuterClass.Empty.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
-      }
-
-      private Builder(
-          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
-        super(parent);
-        maybeForceBuilderInitialization();
-      }
-      private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessageV3
-                .alwaysUseFieldBuilders) {
-        }
-      }
-      @java.lang.Override
-      public Builder clear() {
-        super.clear();
-        return this;
-      }
-
-      @java.lang.Override
-      public com.google.protobuf.Descriptors.Descriptor
-          getDescriptorForType() {
-        return context.ContextOuterClass.internal_static_context_Empty_descriptor;
-      }
-
-      @java.lang.Override
-      public context.ContextOuterClass.Empty getDefaultInstanceForType() {
-        return context.ContextOuterClass.Empty.getDefaultInstance();
-      }
-
-      @java.lang.Override
-      public context.ContextOuterClass.Empty build() {
-        context.ContextOuterClass.Empty result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
-      }
-
-      @java.lang.Override
-      public context.ContextOuterClass.Empty buildPartial() {
-        context.ContextOuterClass.Empty result = new context.ContextOuterClass.Empty(this);
-        onBuilt();
-        return result;
-      }
-
-      @java.lang.Override
-      public Builder clone() {
-        return super.clone();
-      }
-      @java.lang.Override
-      public Builder setField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          java.lang.Object value) {
-        return super.setField(field, value);
-      }
-      @java.lang.Override
-      public Builder clearField(
-          com.google.protobuf.Descriptors.FieldDescriptor field) {
-        return super.clearField(field);
-      }
-      @java.lang.Override
-      public Builder clearOneof(
-          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
-        return super.clearOneof(oneof);
-      }
-      @java.lang.Override
-      public Builder setRepeatedField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          int index, java.lang.Object value) {
-        return super.setRepeatedField(field, index, value);
-      }
-      @java.lang.Override
-      public Builder addRepeatedField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          java.lang.Object value) {
-        return super.addRepeatedField(field, value);
-      }
-      @java.lang.Override
-      public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof context.ContextOuterClass.Empty) {
-          return mergeFrom((context.ContextOuterClass.Empty)other);
-        } else {
-          super.mergeFrom(other);
-          return this;
-        }
-      }
-
-      public Builder mergeFrom(context.ContextOuterClass.Empty other) {
-        if (other == context.ContextOuterClass.Empty.getDefaultInstance()) return this;
-        this.mergeUnknownFields(other.unknownFields);
-        onChanged();
-        return this;
-      }
-
-      @java.lang.Override
-      public final boolean isInitialized() {
-        return true;
-      }
-
-      @java.lang.Override
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        context.ContextOuterClass.Empty parsedMessage = null;
-        try {
-          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
-        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-          parsedMessage = (context.ContextOuterClass.Empty) e.getUnfinishedMessage();
-          throw e.unwrapIOException();
-        } finally {
-          if (parsedMessage != null) {
-            mergeFrom(parsedMessage);
-          }
-        }
-        return this;
-      }
-      @java.lang.Override
-      public final Builder setUnknownFields(
-          final com.google.protobuf.UnknownFieldSet unknownFields) {
-        return super.setUnknownFields(unknownFields);
-      }
-
-      @java.lang.Override
-      public final Builder mergeUnknownFields(
-          final com.google.protobuf.UnknownFieldSet unknownFields) {
-        return super.mergeUnknownFields(unknownFields);
-      }
-
-
-      // @@protoc_insertion_point(builder_scope:context.Empty)
-    }
-
-    // @@protoc_insertion_point(class_scope:context.Empty)
-    private static final context.ContextOuterClass.Empty DEFAULT_INSTANCE;
-    static {
-      DEFAULT_INSTANCE = new context.ContextOuterClass.Empty();
-    }
+    public static final class Empty extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.Empty)
+    EmptyOrBuilder {
 
-    public static context.ContextOuterClass.Empty getDefaultInstance() {
-      return DEFAULT_INSTANCE;
-    }
+        private static final long serialVersionUID = 0L;
 
-    private static final com.google.protobuf.Parser
-        PARSER = new com.google.protobuf.AbstractParser() {
-      @java.lang.Override
-      public Empty parsePartialFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        return new Empty(input, extensionRegistry);
-      }
-    };
-
-    public static com.google.protobuf.Parser parser() {
-      return PARSER;
-    }
+        // Use Empty.newBuilder() to construct.
+        private Empty(com.google.protobuf.GeneratedMessageV3.Builder builder) {
+            super(builder);
+        }
 
-    @java.lang.Override
-    public com.google.protobuf.Parser getParserForType() {
-      return PARSER;
-    }
+        private Empty() {
+        }
 
-    @java.lang.Override
-    public context.ContextOuterClass.Empty getDefaultInstanceForType() {
-      return DEFAULT_INSTANCE;
-    }
+        @java.lang.Override
+        @SuppressWarnings({ "unused" })
+        protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
+            return new Empty();
+        }
 
-  }
+        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+            return context.ContextOuterClass.internal_static_context_Empty_descriptor;
+        }
 
-  public interface UuidOrBuilder extends
-      // @@protoc_insertion_point(interface_extends:context.Uuid)
-      com.google.protobuf.MessageOrBuilder {
+        @java.lang.Override
+        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
+            return context.ContextOuterClass.internal_static_context_Empty_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.Empty.class, context.ContextOuterClass.Empty.Builder.class);
+        }
 
-    /**
-     * string uuid = 1;
-     * @return The uuid.
-     */
-    java.lang.String getUuid();
-    /**
-     * string uuid = 1;
-     * @return The bytes for uuid.
-     */
-    com.google.protobuf.ByteString
-        getUuidBytes();
-  }
-  /**
-   * Protobuf type {@code context.Uuid}
-   */
-  public static final class Uuid extends
-      com.google.protobuf.GeneratedMessageV3 implements
-      // @@protoc_insertion_point(message_implements:context.Uuid)
-      UuidOrBuilder {
-  private static final long serialVersionUID = 0L;
-    // Use Uuid.newBuilder() to construct.
-    private Uuid(com.google.protobuf.GeneratedMessageV3.Builder builder) {
-      super(builder);
-    }
-    private Uuid() {
-      uuid_ = "";
-    }
+        private byte memoizedIsInitialized = -1;
 
-    @java.lang.Override
-    @SuppressWarnings({"unused"})
-    protected java.lang.Object newInstance(
-        UnusedPrivateParameter unused) {
-      return new Uuid();
-    }
+        @java.lang.Override
+        public final boolean isInitialized() {
+            byte isInitialized = memoizedIsInitialized;
+            if (isInitialized == 1)
+                return true;
+            if (isInitialized == 0)
+                return false;
+            memoizedIsInitialized = 1;
+            return true;
+        }
 
-    @java.lang.Override
-    public final com.google.protobuf.UnknownFieldSet
-    getUnknownFields() {
-      return this.unknownFields;
-    }
-    private Uuid(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      this();
-      if (extensionRegistry == null) {
-        throw new java.lang.NullPointerException();
-      }
-      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.protobuf.UnknownFieldSet.newBuilder();
-      try {
-        boolean done = false;
-        while (!done) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              done = true;
-              break;
-            case 10: {
-              java.lang.String s = input.readStringRequireUtf8();
-
-              uuid_ = s;
-              break;
-            }
-            default: {
-              if (!parseUnknownField(
-                  input, unknownFields, extensionRegistry, tag)) {
-                done = true;
-              }
-              break;
-            }
-          }
-        }
-      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        throw e.setUnfinishedMessage(this);
-      } catch (java.io.IOException e) {
-        throw new com.google.protobuf.InvalidProtocolBufferException(
-            e).setUnfinishedMessage(this);
-      } finally {
-        this.unknownFields = unknownFields.build();
-        makeExtensionsImmutable();
-      }
-    }
-    public static final com.google.protobuf.Descriptors.Descriptor
-        getDescriptor() {
-      return context.ContextOuterClass.internal_static_context_Uuid_descriptor;
-    }
+        @java.lang.Override
+        public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
+            getUnknownFields().writeTo(output);
+        }
 
-    @java.lang.Override
-    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-        internalGetFieldAccessorTable() {
-      return context.ContextOuterClass.internal_static_context_Uuid_fieldAccessorTable
-          .ensureFieldAccessorsInitialized(
-              context.ContextOuterClass.Uuid.class, context.ContextOuterClass.Uuid.Builder.class);
-    }
+        @java.lang.Override
+        public int getSerializedSize() {
+            int size = memoizedSize;
+            if (size != -1)
+                return size;
+            size = 0;
+            size += getUnknownFields().getSerializedSize();
+            memoizedSize = size;
+            return size;
+        }
 
-    public static final int UUID_FIELD_NUMBER = 1;
-    private volatile java.lang.Object uuid_;
-    /**
-     * string uuid = 1;
-     * @return The uuid.
-     */
-    @java.lang.Override
-    public java.lang.String getUuid() {
-      java.lang.Object ref = uuid_;
-      if (ref instanceof java.lang.String) {
-        return (java.lang.String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = 
-            (com.google.protobuf.ByteString) ref;
-        java.lang.String s = bs.toStringUtf8();
-        uuid_ = s;
-        return s;
-      }
-    }
-    /**
-     * string uuid = 1;
-     * @return The bytes for uuid.
-     */
-    @java.lang.Override
-    public com.google.protobuf.ByteString
-        getUuidBytes() {
-      java.lang.Object ref = uuid_;
-      if (ref instanceof java.lang.String) {
-        com.google.protobuf.ByteString b = 
-            com.google.protobuf.ByteString.copyFromUtf8(
-                (java.lang.String) ref);
-        uuid_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
-    }
+        @java.lang.Override
+        public boolean equals(final java.lang.Object obj) {
+            if (obj == this) {
+                return true;
+            }
+            if (!(obj instanceof context.ContextOuterClass.Empty)) {
+                return super.equals(obj);
+            }
+            context.ContextOuterClass.Empty other = (context.ContextOuterClass.Empty) obj;
+            if (!getUnknownFields().equals(other.getUnknownFields()))
+                return false;
+            return true;
+        }
 
-    private byte memoizedIsInitialized = -1;
-    @java.lang.Override
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized == 1) return true;
-      if (isInitialized == 0) return false;
+        @java.lang.Override
+        public int hashCode() {
+            if (memoizedHashCode != 0) {
+                return memoizedHashCode;
+            }
+            int hash = 41;
+            hash = (19 * hash) + getDescriptor().hashCode();
+            hash = (29 * hash) + getUnknownFields().hashCode();
+            memoizedHashCode = hash;
+            return hash;
+        }
 
-      memoizedIsInitialized = 1;
-      return true;
-    }
+        public static context.ContextOuterClass.Empty parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
+            return PARSER.parseFrom(data);
+        }
 
-    @java.lang.Override
-    public void writeTo(com.google.protobuf.CodedOutputStream output)
-                        throws java.io.IOException {
-      if (!getUuidBytes().isEmpty()) {
-        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, uuid_);
-      }
-      unknownFields.writeTo(output);
-    }
+        public static context.ContextOuterClass.Empty parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
+            return PARSER.parseFrom(data, extensionRegistry);
+        }
 
-    @java.lang.Override
-    public int getSerializedSize() {
-      int size = memoizedSize;
-      if (size != -1) return size;
-
-      size = 0;
-      if (!getUuidBytes().isEmpty()) {
-        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, uuid_);
-      }
-      size += unknownFields.getSerializedSize();
-      memoizedSize = size;
-      return size;
-    }
+        public static context.ContextOuterClass.Empty parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException {
+            return PARSER.parseFrom(data);
+        }
 
-    @java.lang.Override
-    public boolean equals(final java.lang.Object obj) {
-      if (obj == this) {
-       return true;
-      }
-      if (!(obj instanceof context.ContextOuterClass.Uuid)) {
-        return super.equals(obj);
-      }
-      context.ContextOuterClass.Uuid other = (context.ContextOuterClass.Uuid) obj;
-
-      if (!getUuid()
-          .equals(other.getUuid())) return false;
-      if (!unknownFields.equals(other.unknownFields)) return false;
-      return true;
-    }
+        public static context.ContextOuterClass.Empty parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
+            return PARSER.parseFrom(data, extensionRegistry);
+        }
 
-    @java.lang.Override
-    public int hashCode() {
-      if (memoizedHashCode != 0) {
-        return memoizedHashCode;
-      }
-      int hash = 41;
-      hash = (19 * hash) + getDescriptor().hashCode();
-      hash = (37 * hash) + UUID_FIELD_NUMBER;
-      hash = (53 * hash) + getUuid().hashCode();
-      hash = (29 * hash) + unknownFields.hashCode();
-      memoizedHashCode = hash;
-      return hash;
-    }
+        public static context.ContextOuterClass.Empty parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
+            return PARSER.parseFrom(data);
+        }
 
-    public static context.ContextOuterClass.Uuid parseFrom(
-        java.nio.ByteBuffer data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static context.ContextOuterClass.Uuid parseFrom(
-        java.nio.ByteBuffer data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static context.ContextOuterClass.Uuid parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static context.ContextOuterClass.Uuid parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static context.ContextOuterClass.Uuid parseFrom(byte[] data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data);
-    }
-    public static context.ContextOuterClass.Uuid parseFrom(
-        byte[] data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return PARSER.parseFrom(data, extensionRegistry);
-    }
-    public static context.ContextOuterClass.Uuid parseFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input);
-    }
-    public static context.ContextOuterClass.Uuid parseFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input, extensionRegistry);
-    }
-    public static context.ContextOuterClass.Uuid parseDelimitedFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseDelimitedWithIOException(PARSER, input);
-    }
-    public static context.ContextOuterClass.Uuid parseDelimitedFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
-    }
-    public static context.ContextOuterClass.Uuid parseFrom(
-        com.google.protobuf.CodedInputStream input)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input);
-    }
-    public static context.ContextOuterClass.Uuid parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return com.google.protobuf.GeneratedMessageV3
-          .parseWithIOException(PARSER, input, extensionRegistry);
-    }
+        public static context.ContextOuterClass.Empty parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
+            return PARSER.parseFrom(data, extensionRegistry);
+        }
 
-    @java.lang.Override
-    public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder() {
-      return DEFAULT_INSTANCE.toBuilder();
-    }
-    public static Builder newBuilder(context.ContextOuterClass.Uuid prototype) {
-      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
-    }
-    @java.lang.Override
-    public Builder toBuilder() {
-      return this == DEFAULT_INSTANCE
-          ? new Builder() : new Builder().mergeFrom(this);
-    }
+        public static context.ContextOuterClass.Empty parseFrom(java.io.InputStream input) throws java.io.IOException {
+            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+        }
 
-    @java.lang.Override
-    protected Builder newBuilderForType(
-        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
-      Builder builder = new Builder(parent);
-      return builder;
-    }
-    /**
-     * Protobuf type {@code context.Uuid}
-     */
-    public static final class Builder extends
-        com.google.protobuf.GeneratedMessageV3.Builder implements
-        // @@protoc_insertion_point(builder_implements:context.Uuid)
-        context.ContextOuterClass.UuidOrBuilder {
-      public static final com.google.protobuf.Descriptors.Descriptor
-          getDescriptor() {
-        return context.ContextOuterClass.internal_static_context_Uuid_descriptor;
-      }
-
-      @java.lang.Override
-      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
-          internalGetFieldAccessorTable() {
-        return context.ContextOuterClass.internal_static_context_Uuid_fieldAccessorTable
-            .ensureFieldAccessorsInitialized(
-                context.ContextOuterClass.Uuid.class, context.ContextOuterClass.Uuid.Builder.class);
-      }
-
-      // Construct using context.ContextOuterClass.Uuid.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
-      }
-
-      private Builder(
-          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
-        super(parent);
-        maybeForceBuilderInitialization();
-      }
-      private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessageV3
-                .alwaysUseFieldBuilders) {
-        }
-      }
-      @java.lang.Override
-      public Builder clear() {
-        super.clear();
-        uuid_ = "";
-
-        return this;
-      }
-
-      @java.lang.Override
-      public com.google.protobuf.Descriptors.Descriptor
-          getDescriptorForType() {
-        return context.ContextOuterClass.internal_static_context_Uuid_descriptor;
-      }
-
-      @java.lang.Override
-      public context.ContextOuterClass.Uuid getDefaultInstanceForType() {
-        return context.ContextOuterClass.Uuid.getDefaultInstance();
-      }
-
-      @java.lang.Override
-      public context.ContextOuterClass.Uuid build() {
-        context.ContextOuterClass.Uuid result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
-      }
-
-      @java.lang.Override
-      public context.ContextOuterClass.Uuid buildPartial() {
-        context.ContextOuterClass.Uuid result = new context.ContextOuterClass.Uuid(this);
-        result.uuid_ = uuid_;
-        onBuilt();
-        return result;
-      }
-
-      @java.lang.Override
-      public Builder clone() {
-        return super.clone();
-      }
-      @java.lang.Override
-      public Builder setField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          java.lang.Object value) {
-        return super.setField(field, value);
-      }
-      @java.lang.Override
-      public Builder clearField(
-          com.google.protobuf.Descriptors.FieldDescriptor field) {
-        return super.clearField(field);
-      }
-      @java.lang.Override
-      public Builder clearOneof(
-          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
-        return super.clearOneof(oneof);
-      }
-      @java.lang.Override
-      public Builder setRepeatedField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          int index, java.lang.Object value) {
-        return super.setRepeatedField(field, index, value);
-      }
-      @java.lang.Override
-      public Builder addRepeatedField(
-          com.google.protobuf.Descriptors.FieldDescriptor field,
-          java.lang.Object value) {
-        return super.addRepeatedField(field, value);
-      }
-      @java.lang.Override
-      public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof context.ContextOuterClass.Uuid) {
-          return mergeFrom((context.ContextOuterClass.Uuid)other);
-        } else {
-          super.mergeFrom(other);
-          return this;
-        }
-      }
-
-      public Builder mergeFrom(context.ContextOuterClass.Uuid other) {
-        if (other == context.ContextOuterClass.Uuid.getDefaultInstance()) return this;
-        if (!other.getUuid().isEmpty()) {
-          uuid_ = other.uuid_;
-          onChanged();
-        }
-        this.mergeUnknownFields(other.unknownFields);
-        onChanged();
-        return this;
-      }
-
-      @java.lang.Override
-      public final boolean isInitialized() {
-        return true;
-      }
-
-      @java.lang.Override
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        context.ContextOuterClass.Uuid parsedMessage = null;
-        try {
-          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
-        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-          parsedMessage = (context.ContextOuterClass.Uuid) e.getUnfinishedMessage();
-          throw e.unwrapIOException();
-        } finally {
-          if (parsedMessage != null) {
-            mergeFrom(parsedMessage);
-          }
-        }
-        return this;
-      }
-
-      private java.lang.Object uuid_ = "";
-      /**
-       * string uuid = 1;
-       * @return The uuid.
-       */
-      public java.lang.String getUuid() {
-        java.lang.Object ref = uuid_;
-        if (!(ref instanceof java.lang.String)) {
-          com.google.protobuf.ByteString bs =
-              (com.google.protobuf.ByteString) ref;
-          java.lang.String s = bs.toStringUtf8();
-          uuid_ = s;
-          return s;
-        } else {
-          return (java.lang.String) ref;
-        }
-      }
-      /**
-       * string uuid = 1;
-       * @return The bytes for uuid.
-       */
-      public com.google.protobuf.ByteString
-          getUuidBytes() {
-        java.lang.Object ref = uuid_;
-        if (ref instanceof String) {
-          com.google.protobuf.ByteString b = 
-              com.google.protobuf.ByteString.copyFromUtf8(
-                  (java.lang.String) ref);
-          uuid_ = b;
-          return b;
-        } else {
-          return (com.google.protobuf.ByteString) ref;
-        }
-      }
-      /**
-       * string uuid = 1;
-       * @param value The uuid to set.
-       * @return This builder for chaining.
-       */
-      public Builder setUuid(
-          java.lang.String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  
-        uuid_ = value;
-        onChanged();
-        return this;
-      }
-      /**
-       * string uuid = 1;
-       * @return This builder for chaining.
-       */
-      public Builder clearUuid() {
-        
-        uuid_ = getDefaultInstance().getUuid();
-        onChanged();
-        return this;
-      }
-      /**
-       * string uuid = 1;
-       * @param value The bytes for uuid to set.
-       * @return This builder for chaining.
-       */
-      public Builder setUuidBytes(
-          com.google.protobuf.ByteString value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-        
-        uuid_ = value;
-        onChanged();
-        return this;
-      }
-      @java.lang.Override
-      public final Builder setUnknownFields(
-          final com.google.protobuf.UnknownFieldSet unknownFields) {
-        return super.setUnknownFields(unknownFields);
-      }
-
-      @java.lang.Override
-      public final Builder mergeUnknownFields(
-          final com.google.protobuf.UnknownFieldSet unknownFields) {
-        return super.mergeUnknownFields(unknownFields);
-      }
-
-
-      // @@protoc_insertion_point(builder_scope:context.Uuid)
-    }
+        public static context.ContextOuterClass.Empty parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
+            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry);
+        }
 
-    // @@protoc_insertion_point(class_scope:context.Uuid)
-    private static final context.ContextOuterClass.Uuid DEFAULT_INSTANCE;
-    static {
-      DEFAULT_INSTANCE = new context.ContextOuterClass.Uuid();
-    }
+        public static context.ContextOuterClass.Empty parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
+            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
+        }
 
-    public static context.ContextOuterClass.Uuid getDefaultInstance() {
-      return DEFAULT_INSTANCE;
-    }
+        public static context.ContextOuterClass.Empty parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
+            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+        }
 
-    private static final com.google.protobuf.Parser
-        PARSER = new com.google.protobuf.AbstractParser() {
-      @java.lang.Override
-      public Uuid parsePartialFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        return new Uuid(input, extensionRegistry);
-      }
-    };
-
-    public static com.google.protobuf.Parser parser() {
-      return PARSER;
-    }
+        public static context.ContextOuterClass.Empty parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+        }
 
-    @java.lang.Override
-    public com.google.protobuf.Parser getParserForType() {
-      return PARSER;
-    }
+        public static context.ContextOuterClass.Empty parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
+            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry);
+        }
 
-    @java.lang.Override
-    public context.ContextOuterClass.Uuid getDefaultInstanceForType() {
-      return DEFAULT_INSTANCE;
-    }
+        @java.lang.Override
+        public Builder newBuilderForType() {
+            return newBuilder();
+        }
 
-  }
+        public static Builder newBuilder() {
+            return DEFAULT_INSTANCE.toBuilder();
+        }
 
-  public interface TimestampOrBuilder extends
-      // @@protoc_insertion_point(interface_extends:context.Timestamp)
-      com.google.protobuf.MessageOrBuilder {
+        public static Builder newBuilder(context.ContextOuterClass.Empty prototype) {
+            return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+        }
 
-    /**
-     * double timestamp = 1;
-     * @return The timestamp.
-     */
-    double getTimestamp();
-  }
-  /**
-   * Protobuf type {@code context.Timestamp}
-   */
-  public static final class Timestamp extends
-      com.google.protobuf.GeneratedMessageV3 implements
-      // @@protoc_insertion_point(message_implements:context.Timestamp)
-      TimestampOrBuilder {
-  private static final long serialVersionUID = 0L;
-    // Use Timestamp.newBuilder() to construct.
-    private Timestamp(com.google.protobuf.GeneratedMessageV3.Builder builder) {
-      super(builder);
-    }
-    private Timestamp() {
-    }
+        @java.lang.Override
+        public Builder toBuilder() {
+            return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
+        }
 
-    @java.lang.Override
-    @SuppressWarnings({"unused"})
-    protected java.lang.Object newInstance(
-        UnusedPrivateParameter unused) {
-      return new Timestamp();
-    }
+        @java.lang.Override
+        protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+            Builder builder = new Builder(parent);
+            return builder;
+        }
 
-    @java.lang.Override
-    public final com.google.protobuf.UnknownFieldSet
-    getUnknownFields() {
-      return this.unknownFields;
-    }
-    private Timestamp(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      this();
-      if (extensionRegistry == null) {
-        throw new java.lang.NullPointerException();
-      }
-      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.protobuf.UnknownFieldSet.newBuilder();
-      try {
-        boolean done = false;
-        while (!done) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              done = true;
-              break;
-            case 9: {
-
-              timestamp_ = input.readDouble();
-              break;
-            }
-            default: {
-              if (!parseUnknownField(
-                  input, unknownFields, extensionRegistry, tag)) {
-                done = true;
-              }
-              break;
-            }
-          }
-        }
-      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-        throw e.setUnfinishedMessage(this);
-      } catch (java.io.IOException e) {
-        throw new com.google.protobuf.InvalidProtocolBufferException(
-            e).setUnfinishedMessage(this);
-      } finally {
-        this.unknownFields = unknownFields.build();
-        makeExtensionsImmutable();
-      }
-    }
-    public static final com.google.protobuf.Descriptors.Descriptor
-        getDescriptor() {
-      return context.ContextOuterClass.internal_static_context_Timestamp_descriptor;
-    }
+        /**
+         * 
+         * ----- Generic -------------------------------------------------------------------------------------------------------
+         * 
+ * + * Protobuf type {@code context.Empty} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.Empty) + context.ContextOuterClass.EmptyOrBuilder { - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_Timestamp_fieldAccessorTable - .ensureFieldAccessorsInitialized( - context.ContextOuterClass.Timestamp.class, context.ContextOuterClass.Timestamp.Builder.class); - } + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_Empty_descriptor; + } - public static final int TIMESTAMP_FIELD_NUMBER = 1; - private double timestamp_; - /** - * double timestamp = 1; - * @return The timestamp. - */ - @java.lang.Override - public double getTimestamp() { - return timestamp_; - } + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_Empty_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.Empty.class, context.ContextOuterClass.Empty.Builder.class); + } - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; + // Construct using context.ContextOuterClass.Empty.newBuilder() + private Builder() { + } - memoizedIsInitialized = 1; - return true; - } + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (timestamp_ != 0D) { - output.writeDouble(1, timestamp_); - } - unknownFields.writeTo(output); - } + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (timestamp_ != 0D) { - size += com.google.protobuf.CodedOutputStream - .computeDoubleSize(1, timestamp_); - } - size += unknownFields.getSerializedSize(); - memoizedSize = size; - return size; - } + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_Empty_descriptor; + } - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof context.ContextOuterClass.Timestamp)) { - return super.equals(obj); - } - context.ContextOuterClass.Timestamp other = (context.ContextOuterClass.Timestamp) obj; - - if (java.lang.Double.doubleToLongBits(getTimestamp()) - != java.lang.Double.doubleToLongBits( - other.getTimestamp())) return false; - if (!unknownFields.equals(other.unknownFields)) return false; - return true; - } + @java.lang.Override + public context.ContextOuterClass.Empty getDefaultInstanceForType() { + return context.ContextOuterClass.Empty.getDefaultInstance(); + } - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + TIMESTAMP_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - java.lang.Double.doubleToLongBits(getTimestamp())); - hash = (29 * hash) + unknownFields.hashCode(); - memoizedHashCode = hash; - return hash; - } + @java.lang.Override + public context.ContextOuterClass.Empty build() { + context.ContextOuterClass.Empty result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } - public static context.ContextOuterClass.Timestamp parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static context.ContextOuterClass.Timestamp parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static context.ContextOuterClass.Timestamp parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static context.ContextOuterClass.Timestamp parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static context.ContextOuterClass.Timestamp parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static context.ContextOuterClass.Timestamp parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static context.ContextOuterClass.Timestamp parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static context.ContextOuterClass.Timestamp parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - public static context.ContextOuterClass.Timestamp parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - public static context.ContextOuterClass.Timestamp parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static context.ContextOuterClass.Timestamp parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static context.ContextOuterClass.Timestamp parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } + @java.lang.Override + public context.ContextOuterClass.Empty buildPartial() { + context.ContextOuterClass.Empty result = new context.ContextOuterClass.Empty(this); + onBuilt(); + return result; + } - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(context.ContextOuterClass.Timestamp prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.Empty) { + return mergeFrom((context.ContextOuterClass.Empty) other); + } else { + super.mergeFrom(other); + return this; + } + } - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code context.Timestamp} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:context.Timestamp) - context.ContextOuterClass.TimestampOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return context.ContextOuterClass.internal_static_context_Timestamp_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_Timestamp_fieldAccessorTable - .ensureFieldAccessorsInitialized( - context.ContextOuterClass.Timestamp.class, context.ContextOuterClass.Timestamp.Builder.class); - } - - // Construct using context.ContextOuterClass.Timestamp.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3 - .alwaysUseFieldBuilders) { - } - } - @java.lang.Override - public Builder clear() { - super.clear(); - timestamp_ = 0D; - - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return context.ContextOuterClass.internal_static_context_Timestamp_descriptor; - } - - @java.lang.Override - public context.ContextOuterClass.Timestamp getDefaultInstanceForType() { - return context.ContextOuterClass.Timestamp.getDefaultInstance(); - } - - @java.lang.Override - public context.ContextOuterClass.Timestamp build() { - context.ContextOuterClass.Timestamp result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public context.ContextOuterClass.Timestamp buildPartial() { - context.ContextOuterClass.Timestamp result = new context.ContextOuterClass.Timestamp(this); - result.timestamp_ = timestamp_; - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof context.ContextOuterClass.Timestamp) { - return mergeFrom((context.ContextOuterClass.Timestamp)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(context.ContextOuterClass.Timestamp other) { - if (other == context.ContextOuterClass.Timestamp.getDefaultInstance()) return this; - if (other.getTimestamp() != 0D) { - setTimestamp(other.getTimestamp()); - } - this.mergeUnknownFields(other.unknownFields); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - context.ContextOuterClass.Timestamp parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.Timestamp) e.getUnfinishedMessage(); - throw e.unwrapIOException(); - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - - private double timestamp_ ; - /** - * double timestamp = 1; - * @return The timestamp. - */ - @java.lang.Override - public double getTimestamp() { - return timestamp_; - } - /** - * double timestamp = 1; - * @param value The timestamp to set. - * @return This builder for chaining. - */ - public Builder setTimestamp(double value) { - - timestamp_ = value; - onChanged(); - return this; - } - /** - * double timestamp = 1; - * @return This builder for chaining. - */ - public Builder clearTimestamp() { - - timestamp_ = 0D; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:context.Timestamp) - } + public Builder mergeFrom(context.ContextOuterClass.Empty other) { + if (other == context.ContextOuterClass.Empty.getDefaultInstance()) + return this; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } - // @@protoc_insertion_point(class_scope:context.Timestamp) - private static final context.ContextOuterClass.Timestamp DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new context.ContextOuterClass.Timestamp(); - } + @java.lang.Override + public final boolean isInitialized() { + return true; + } - public static context.ContextOuterClass.Timestamp getDefaultInstance() { - return DEFAULT_INSTANCE; - } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public Timestamp parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new Timestamp(input, extensionRegistry); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.Empty) + } - @java.lang.Override - public context.ContextOuterClass.Timestamp getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } + // @@protoc_insertion_point(class_scope:context.Empty) + private static final context.ContextOuterClass.Empty DEFAULT_INSTANCE; - } + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.Empty(); + } - public interface EventOrBuilder extends - // @@protoc_insertion_point(interface_extends:context.Event) - com.google.protobuf.MessageOrBuilder { + public static context.ContextOuterClass.Empty getDefaultInstance() { + return DEFAULT_INSTANCE; + } - /** - * .context.Timestamp timestamp = 1; - * @return Whether the timestamp field is set. - */ - boolean hasTimestamp(); - /** - * .context.Timestamp timestamp = 1; - * @return The timestamp. - */ - context.ContextOuterClass.Timestamp getTimestamp(); - /** - * .context.Timestamp timestamp = 1; - */ - context.ContextOuterClass.TimestampOrBuilder getTimestampOrBuilder(); + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { - /** - * .context.EventTypeEnum event_type = 2; - * @return The enum numeric value on the wire for eventType. - */ - int getEventTypeValue(); - /** - * .context.EventTypeEnum event_type = 2; - * @return The eventType. - */ - context.ContextOuterClass.EventTypeEnum getEventType(); - } - /** - * Protobuf type {@code context.Event} - */ - public static final class Event extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:context.Event) - EventOrBuilder { - private static final long serialVersionUID = 0L; - // Use Event.newBuilder() to construct. - private Event(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private Event() { - eventType_ = 0; - } + @java.lang.Override + public Empty parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new Event(); - } + public static com.google.protobuf.Parser parser() { + return PARSER; + } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private Event( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = - com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - context.ContextOuterClass.Timestamp.Builder subBuilder = null; - if (timestamp_ != null) { - subBuilder = timestamp_.toBuilder(); - } - timestamp_ = input.readMessage(context.ContextOuterClass.Timestamp.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(timestamp_); - timestamp_ = subBuilder.buildPartial(); - } - - break; - } - case 16: { - int rawValue = input.readEnum(); - - eventType_ = rawValue; - break; - } - default: { - if (!parseUnknownField( - input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException( - e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return context.ContextOuterClass.internal_static_context_Event_descriptor; - } + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_Event_fieldAccessorTable - .ensureFieldAccessorsInitialized( - context.ContextOuterClass.Event.class, context.ContextOuterClass.Event.Builder.class); + @java.lang.Override + public context.ContextOuterClass.Empty getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } } - public static final int TIMESTAMP_FIELD_NUMBER = 1; - private context.ContextOuterClass.Timestamp timestamp_; - /** - * .context.Timestamp timestamp = 1; - * @return Whether the timestamp field is set. - */ - @java.lang.Override - public boolean hasTimestamp() { - return timestamp_ != null; - } - /** - * .context.Timestamp timestamp = 1; - * @return The timestamp. - */ - @java.lang.Override - public context.ContextOuterClass.Timestamp getTimestamp() { - return timestamp_ == null ? context.ContextOuterClass.Timestamp.getDefaultInstance() : timestamp_; - } - /** - * .context.Timestamp timestamp = 1; - */ - @java.lang.Override - public context.ContextOuterClass.TimestampOrBuilder getTimestampOrBuilder() { - return getTimestamp(); - } + public interface UuidOrBuilder extends // @@protoc_insertion_point(interface_extends:context.Uuid) + com.google.protobuf.MessageOrBuilder { - public static final int EVENT_TYPE_FIELD_NUMBER = 2; - private int eventType_; - /** - * .context.EventTypeEnum event_type = 2; - * @return The enum numeric value on the wire for eventType. - */ - @java.lang.Override public int getEventTypeValue() { - return eventType_; + /** + * string uuid = 1; + * @return The uuid. + */ + java.lang.String getUuid(); + + /** + * string uuid = 1; + * @return The bytes for uuid. + */ + com.google.protobuf.ByteString getUuidBytes(); } + /** - * .context.EventTypeEnum event_type = 2; - * @return The eventType. + * Protobuf type {@code context.Uuid} */ - @java.lang.Override public context.ContextOuterClass.EventTypeEnum getEventType() { - @SuppressWarnings("deprecation") - context.ContextOuterClass.EventTypeEnum result = context.ContextOuterClass.EventTypeEnum.valueOf(eventType_); - return result == null ? context.ContextOuterClass.EventTypeEnum.UNRECOGNIZED : result; - } + public static final class Uuid extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.Uuid) + UuidOrBuilder { - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; + private static final long serialVersionUID = 0L; - memoizedIsInitialized = 1; - return true; - } + // Use Uuid.newBuilder() to construct. + private Uuid(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (timestamp_ != null) { - output.writeMessage(1, getTimestamp()); - } - if (eventType_ != context.ContextOuterClass.EventTypeEnum.EVENTTYPE_UNDEFINED.getNumber()) { - output.writeEnum(2, eventType_); - } - unknownFields.writeTo(output); - } + private Uuid() { + uuid_ = ""; + } - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (timestamp_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(1, getTimestamp()); - } - if (eventType_ != context.ContextOuterClass.EventTypeEnum.EVENTTYPE_UNDEFINED.getNumber()) { - size += com.google.protobuf.CodedOutputStream - .computeEnumSize(2, eventType_); - } - size += unknownFields.getSerializedSize(); - memoizedSize = size; - return size; - } + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new Uuid(); + } - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof context.ContextOuterClass.Event)) { - return super.equals(obj); - } - context.ContextOuterClass.Event other = (context.ContextOuterClass.Event) obj; - - if (hasTimestamp() != other.hasTimestamp()) return false; - if (hasTimestamp()) { - if (!getTimestamp() - .equals(other.getTimestamp())) return false; - } - if (eventType_ != other.eventType_) return false; - if (!unknownFields.equals(other.unknownFields)) return false; - return true; - } + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_Uuid_descriptor; + } - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - if (hasTimestamp()) { - hash = (37 * hash) + TIMESTAMP_FIELD_NUMBER; - hash = (53 * hash) + getTimestamp().hashCode(); - } - hash = (37 * hash) + EVENT_TYPE_FIELD_NUMBER; - hash = (53 * hash) + eventType_; - hash = (29 * hash) + unknownFields.hashCode(); - memoizedHashCode = hash; - return hash; - } + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_Uuid_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.Uuid.class, context.ContextOuterClass.Uuid.Builder.class); + } - public static context.ContextOuterClass.Event parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static context.ContextOuterClass.Event parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static context.ContextOuterClass.Event parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static context.ContextOuterClass.Event parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static context.ContextOuterClass.Event parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static context.ContextOuterClass.Event parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static context.ContextOuterClass.Event parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static context.ContextOuterClass.Event parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - public static context.ContextOuterClass.Event parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - public static context.ContextOuterClass.Event parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static context.ContextOuterClass.Event parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static context.ContextOuterClass.Event parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } + public static final int UUID_FIELD_NUMBER = 1; - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(context.ContextOuterClass.Event prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } + @SuppressWarnings("serial") + private volatile java.lang.Object uuid_ = ""; - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code context.Event} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:context.Event) - context.ContextOuterClass.EventOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return context.ContextOuterClass.internal_static_context_Event_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_Event_fieldAccessorTable - .ensureFieldAccessorsInitialized( - context.ContextOuterClass.Event.class, context.ContextOuterClass.Event.Builder.class); - } - - // Construct using context.ContextOuterClass.Event.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3 - .alwaysUseFieldBuilders) { - } - } - @java.lang.Override - public Builder clear() { - super.clear(); - if (timestampBuilder_ == null) { - timestamp_ = null; - } else { - timestamp_ = null; - timestampBuilder_ = null; - } - eventType_ = 0; - - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return context.ContextOuterClass.internal_static_context_Event_descriptor; - } - - @java.lang.Override - public context.ContextOuterClass.Event getDefaultInstanceForType() { - return context.ContextOuterClass.Event.getDefaultInstance(); - } - - @java.lang.Override - public context.ContextOuterClass.Event build() { - context.ContextOuterClass.Event result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public context.ContextOuterClass.Event buildPartial() { - context.ContextOuterClass.Event result = new context.ContextOuterClass.Event(this); - if (timestampBuilder_ == null) { - result.timestamp_ = timestamp_; - } else { - result.timestamp_ = timestampBuilder_.build(); - } - result.eventType_ = eventType_; - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof context.ContextOuterClass.Event) { - return mergeFrom((context.ContextOuterClass.Event)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(context.ContextOuterClass.Event other) { - if (other == context.ContextOuterClass.Event.getDefaultInstance()) return this; - if (other.hasTimestamp()) { - mergeTimestamp(other.getTimestamp()); - } - if (other.eventType_ != 0) { - setEventTypeValue(other.getEventTypeValue()); - } - this.mergeUnknownFields(other.unknownFields); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - context.ContextOuterClass.Event parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.Event) e.getUnfinishedMessage(); - throw e.unwrapIOException(); - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - - private context.ContextOuterClass.Timestamp timestamp_; - private com.google.protobuf.SingleFieldBuilderV3< - context.ContextOuterClass.Timestamp, context.ContextOuterClass.Timestamp.Builder, context.ContextOuterClass.TimestampOrBuilder> timestampBuilder_; - /** - * .context.Timestamp timestamp = 1; - * @return Whether the timestamp field is set. - */ - public boolean hasTimestamp() { - return timestampBuilder_ != null || timestamp_ != null; - } - /** - * .context.Timestamp timestamp = 1; - * @return The timestamp. - */ - public context.ContextOuterClass.Timestamp getTimestamp() { - if (timestampBuilder_ == null) { - return timestamp_ == null ? context.ContextOuterClass.Timestamp.getDefaultInstance() : timestamp_; - } else { - return timestampBuilder_.getMessage(); - } - } - /** - * .context.Timestamp timestamp = 1; - */ - public Builder setTimestamp(context.ContextOuterClass.Timestamp value) { - if (timestampBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - timestamp_ = value; - onChanged(); - } else { - timestampBuilder_.setMessage(value); - } - - return this; - } - /** - * .context.Timestamp timestamp = 1; - */ - public Builder setTimestamp( - context.ContextOuterClass.Timestamp.Builder builderForValue) { - if (timestampBuilder_ == null) { - timestamp_ = builderForValue.build(); - onChanged(); - } else { - timestampBuilder_.setMessage(builderForValue.build()); - } - - return this; - } - /** - * .context.Timestamp timestamp = 1; - */ - public Builder mergeTimestamp(context.ContextOuterClass.Timestamp value) { - if (timestampBuilder_ == null) { - if (timestamp_ != null) { - timestamp_ = - context.ContextOuterClass.Timestamp.newBuilder(timestamp_).mergeFrom(value).buildPartial(); - } else { - timestamp_ = value; - } - onChanged(); - } else { - timestampBuilder_.mergeFrom(value); - } - - return this; - } - /** - * .context.Timestamp timestamp = 1; - */ - public Builder clearTimestamp() { - if (timestampBuilder_ == null) { - timestamp_ = null; - onChanged(); - } else { - timestamp_ = null; - timestampBuilder_ = null; - } - - return this; - } - /** - * .context.Timestamp timestamp = 1; - */ - public context.ContextOuterClass.Timestamp.Builder getTimestampBuilder() { - - onChanged(); - return getTimestampFieldBuilder().getBuilder(); - } - /** - * .context.Timestamp timestamp = 1; - */ - public context.ContextOuterClass.TimestampOrBuilder getTimestampOrBuilder() { - if (timestampBuilder_ != null) { - return timestampBuilder_.getMessageOrBuilder(); - } else { - return timestamp_ == null ? - context.ContextOuterClass.Timestamp.getDefaultInstance() : timestamp_; - } - } - /** - * .context.Timestamp timestamp = 1; - */ - private com.google.protobuf.SingleFieldBuilderV3< - context.ContextOuterClass.Timestamp, context.ContextOuterClass.Timestamp.Builder, context.ContextOuterClass.TimestampOrBuilder> - getTimestampFieldBuilder() { - if (timestampBuilder_ == null) { - timestampBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - context.ContextOuterClass.Timestamp, context.ContextOuterClass.Timestamp.Builder, context.ContextOuterClass.TimestampOrBuilder>( - getTimestamp(), - getParentForChildren(), - isClean()); - timestamp_ = null; - } - return timestampBuilder_; - } - - private int eventType_ = 0; - /** - * .context.EventTypeEnum event_type = 2; - * @return The enum numeric value on the wire for eventType. - */ - @java.lang.Override public int getEventTypeValue() { - return eventType_; - } - /** - * .context.EventTypeEnum event_type = 2; - * @param value The enum numeric value on the wire for eventType to set. - * @return This builder for chaining. - */ - public Builder setEventTypeValue(int value) { - - eventType_ = value; - onChanged(); - return this; - } - /** - * .context.EventTypeEnum event_type = 2; - * @return The eventType. - */ - @java.lang.Override - public context.ContextOuterClass.EventTypeEnum getEventType() { - @SuppressWarnings("deprecation") - context.ContextOuterClass.EventTypeEnum result = context.ContextOuterClass.EventTypeEnum.valueOf(eventType_); - return result == null ? context.ContextOuterClass.EventTypeEnum.UNRECOGNIZED : result; - } - /** - * .context.EventTypeEnum event_type = 2; - * @param value The eventType to set. - * @return This builder for chaining. - */ - public Builder setEventType(context.ContextOuterClass.EventTypeEnum value) { - if (value == null) { - throw new NullPointerException(); - } - - eventType_ = value.getNumber(); - onChanged(); - return this; - } - /** - * .context.EventTypeEnum event_type = 2; - * @return This builder for chaining. - */ - public Builder clearEventType() { - - eventType_ = 0; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:context.Event) - } + /** + * string uuid = 1; + * @return The uuid. + */ + @java.lang.Override + public java.lang.String getUuid() { + java.lang.Object ref = uuid_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + uuid_ = s; + return s; + } + } - // @@protoc_insertion_point(class_scope:context.Event) - private static final context.ContextOuterClass.Event DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new context.ContextOuterClass.Event(); - } + /** + * string uuid = 1; + * @return The bytes for uuid. + */ + @java.lang.Override + public com.google.protobuf.ByteString getUuidBytes() { + java.lang.Object ref = uuid_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + uuid_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } - public static context.ContextOuterClass.Event getDefaultInstance() { - return DEFAULT_INSTANCE; - } + private byte memoizedIsInitialized = -1; - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public Event parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new Event(input, extensionRegistry); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(uuid_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, uuid_); + } + getUnknownFields().writeTo(output); + } - @java.lang.Override - public context.ContextOuterClass.Event getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(uuid_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, uuid_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } - } + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.Uuid)) { + return super.equals(obj); + } + context.ContextOuterClass.Uuid other = (context.ContextOuterClass.Uuid) obj; + if (!getUuid().equals(other.getUuid())) + return false; + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + UUID_FIELD_NUMBER; + hash = (53 * hash) + getUuid().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } - public interface ContextIdOrBuilder extends - // @@protoc_insertion_point(interface_extends:context.ContextId) - com.google.protobuf.MessageOrBuilder { + public static context.ContextOuterClass.Uuid parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } - /** - * .context.Uuid context_uuid = 1; - * @return Whether the contextUuid field is set. - */ - boolean hasContextUuid(); - /** - * .context.Uuid context_uuid = 1; - * @return The contextUuid. - */ - context.ContextOuterClass.Uuid getContextUuid(); - /** - * .context.Uuid context_uuid = 1; - */ - context.ContextOuterClass.UuidOrBuilder getContextUuidOrBuilder(); - } - /** - *
-   * ----- Context -------------------------------------------------------------------------------------------------------
-   * 
- * - * Protobuf type {@code context.ContextId} - */ - public static final class ContextId extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:context.ContextId) - ContextIdOrBuilder { - private static final long serialVersionUID = 0L; - // Use ContextId.newBuilder() to construct. - private ContextId(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private ContextId() { - } + public static context.ContextOuterClass.Uuid parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new ContextId(); - } + public static context.ContextOuterClass.Uuid parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private ContextId( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = - com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - context.ContextOuterClass.Uuid.Builder subBuilder = null; - if (contextUuid_ != null) { - subBuilder = contextUuid_.toBuilder(); - } - contextUuid_ = input.readMessage(context.ContextOuterClass.Uuid.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(contextUuid_); - contextUuid_ = subBuilder.buildPartial(); - } - - break; - } - default: { - if (!parseUnknownField( - input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException( - e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return context.ContextOuterClass.internal_static_context_ContextId_descriptor; - } + public static context.ContextOuterClass.Uuid parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_ContextId_fieldAccessorTable - .ensureFieldAccessorsInitialized( - context.ContextOuterClass.ContextId.class, context.ContextOuterClass.ContextId.Builder.class); - } + public static context.ContextOuterClass.Uuid parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } - public static final int CONTEXT_UUID_FIELD_NUMBER = 1; - private context.ContextOuterClass.Uuid contextUuid_; - /** - * .context.Uuid context_uuid = 1; - * @return Whether the contextUuid field is set. - */ - @java.lang.Override - public boolean hasContextUuid() { - return contextUuid_ != null; - } - /** - * .context.Uuid context_uuid = 1; - * @return The contextUuid. - */ - @java.lang.Override - public context.ContextOuterClass.Uuid getContextUuid() { - return contextUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : contextUuid_; - } - /** - * .context.Uuid context_uuid = 1; - */ - @java.lang.Override - public context.ContextOuterClass.UuidOrBuilder getContextUuidOrBuilder() { - return getContextUuid(); - } + public static context.ContextOuterClass.Uuid parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; + public static context.ContextOuterClass.Uuid parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } - memoizedIsInitialized = 1; - return true; - } + public static context.ContextOuterClass.Uuid parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (contextUuid_ != null) { - output.writeMessage(1, getContextUuid()); - } - unknownFields.writeTo(output); - } + public static context.ContextOuterClass.Uuid parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (contextUuid_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(1, getContextUuid()); - } - size += unknownFields.getSerializedSize(); - memoizedSize = size; - return size; - } + public static context.ContextOuterClass.Uuid parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof context.ContextOuterClass.ContextId)) { - return super.equals(obj); - } - context.ContextOuterClass.ContextId other = (context.ContextOuterClass.ContextId) obj; - - if (hasContextUuid() != other.hasContextUuid()) return false; - if (hasContextUuid()) { - if (!getContextUuid() - .equals(other.getContextUuid())) return false; - } - if (!unknownFields.equals(other.unknownFields)) return false; - return true; - } + public static context.ContextOuterClass.Uuid parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - if (hasContextUuid()) { - hash = (37 * hash) + CONTEXT_UUID_FIELD_NUMBER; - hash = (53 * hash) + getContextUuid().hashCode(); - } - hash = (29 * hash) + unknownFields.hashCode(); - memoizedHashCode = hash; - return hash; - } + public static context.ContextOuterClass.Uuid parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } - public static context.ContextOuterClass.ContextId parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static context.ContextOuterClass.ContextId parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static context.ContextOuterClass.ContextId parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static context.ContextOuterClass.ContextId parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static context.ContextOuterClass.ContextId parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static context.ContextOuterClass.ContextId parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static context.ContextOuterClass.ContextId parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static context.ContextOuterClass.ContextId parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - public static context.ContextOuterClass.ContextId parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - public static context.ContextOuterClass.ContextId parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static context.ContextOuterClass.ContextId parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static context.ContextOuterClass.ContextId parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(context.ContextOuterClass.ContextId prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - *
-     * ----- Context -------------------------------------------------------------------------------------------------------
-     * 
- * - * Protobuf type {@code context.ContextId} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:context.ContextId) - context.ContextOuterClass.ContextIdOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return context.ContextOuterClass.internal_static_context_ContextId_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_ContextId_fieldAccessorTable - .ensureFieldAccessorsInitialized( - context.ContextOuterClass.ContextId.class, context.ContextOuterClass.ContextId.Builder.class); - } - - // Construct using context.ContextOuterClass.ContextId.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3 - .alwaysUseFieldBuilders) { - } - } - @java.lang.Override - public Builder clear() { - super.clear(); - if (contextUuidBuilder_ == null) { - contextUuid_ = null; - } else { - contextUuid_ = null; - contextUuidBuilder_ = null; - } - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return context.ContextOuterClass.internal_static_context_ContextId_descriptor; - } - - @java.lang.Override - public context.ContextOuterClass.ContextId getDefaultInstanceForType() { - return context.ContextOuterClass.ContextId.getDefaultInstance(); - } - - @java.lang.Override - public context.ContextOuterClass.ContextId build() { - context.ContextOuterClass.ContextId result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public context.ContextOuterClass.ContextId buildPartial() { - context.ContextOuterClass.ContextId result = new context.ContextOuterClass.ContextId(this); - if (contextUuidBuilder_ == null) { - result.contextUuid_ = contextUuid_; - } else { - result.contextUuid_ = contextUuidBuilder_.build(); - } - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof context.ContextOuterClass.ContextId) { - return mergeFrom((context.ContextOuterClass.ContextId)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(context.ContextOuterClass.ContextId other) { - if (other == context.ContextOuterClass.ContextId.getDefaultInstance()) return this; - if (other.hasContextUuid()) { - mergeContextUuid(other.getContextUuid()); - } - this.mergeUnknownFields(other.unknownFields); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - context.ContextOuterClass.ContextId parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.ContextId) e.getUnfinishedMessage(); - throw e.unwrapIOException(); - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - - private context.ContextOuterClass.Uuid contextUuid_; - private com.google.protobuf.SingleFieldBuilderV3< - context.ContextOuterClass.Uuid, context.ContextOuterClass.Uuid.Builder, context.ContextOuterClass.UuidOrBuilder> contextUuidBuilder_; - /** - * .context.Uuid context_uuid = 1; - * @return Whether the contextUuid field is set. - */ - public boolean hasContextUuid() { - return contextUuidBuilder_ != null || contextUuid_ != null; - } - /** - * .context.Uuid context_uuid = 1; - * @return The contextUuid. - */ - public context.ContextOuterClass.Uuid getContextUuid() { - if (contextUuidBuilder_ == null) { - return contextUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : contextUuid_; - } else { - return contextUuidBuilder_.getMessage(); - } - } - /** - * .context.Uuid context_uuid = 1; - */ - public Builder setContextUuid(context.ContextOuterClass.Uuid value) { - if (contextUuidBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - contextUuid_ = value; - onChanged(); - } else { - contextUuidBuilder_.setMessage(value); - } - - return this; - } - /** - * .context.Uuid context_uuid = 1; - */ - public Builder setContextUuid( - context.ContextOuterClass.Uuid.Builder builderForValue) { - if (contextUuidBuilder_ == null) { - contextUuid_ = builderForValue.build(); - onChanged(); - } else { - contextUuidBuilder_.setMessage(builderForValue.build()); - } - - return this; - } - /** - * .context.Uuid context_uuid = 1; - */ - public Builder mergeContextUuid(context.ContextOuterClass.Uuid value) { - if (contextUuidBuilder_ == null) { - if (contextUuid_ != null) { - contextUuid_ = - context.ContextOuterClass.Uuid.newBuilder(contextUuid_).mergeFrom(value).buildPartial(); - } else { - contextUuid_ = value; - } - onChanged(); - } else { - contextUuidBuilder_.mergeFrom(value); - } - - return this; - } - /** - * .context.Uuid context_uuid = 1; - */ - public Builder clearContextUuid() { - if (contextUuidBuilder_ == null) { - contextUuid_ = null; - onChanged(); - } else { - contextUuid_ = null; - contextUuidBuilder_ = null; - } - - return this; - } - /** - * .context.Uuid context_uuid = 1; - */ - public context.ContextOuterClass.Uuid.Builder getContextUuidBuilder() { - - onChanged(); - return getContextUuidFieldBuilder().getBuilder(); - } - /** - * .context.Uuid context_uuid = 1; - */ - public context.ContextOuterClass.UuidOrBuilder getContextUuidOrBuilder() { - if (contextUuidBuilder_ != null) { - return contextUuidBuilder_.getMessageOrBuilder(); - } else { - return contextUuid_ == null ? - context.ContextOuterClass.Uuid.getDefaultInstance() : contextUuid_; - } - } - /** - * .context.Uuid context_uuid = 1; - */ - private com.google.protobuf.SingleFieldBuilderV3< - context.ContextOuterClass.Uuid, context.ContextOuterClass.Uuid.Builder, context.ContextOuterClass.UuidOrBuilder> - getContextUuidFieldBuilder() { - if (contextUuidBuilder_ == null) { - contextUuidBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - context.ContextOuterClass.Uuid, context.ContextOuterClass.Uuid.Builder, context.ContextOuterClass.UuidOrBuilder>( - getContextUuid(), - getParentForChildren(), - isClean()); - contextUuid_ = null; - } - return contextUuidBuilder_; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:context.ContextId) - } + public static Builder newBuilder(context.ContextOuterClass.Uuid prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } - // @@protoc_insertion_point(class_scope:context.ContextId) - private static final context.ContextOuterClass.ContextId DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new context.ContextOuterClass.ContextId(); - } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } - public static context.ContextOuterClass.ContextId getDefaultInstance() { - return DEFAULT_INSTANCE; - } + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public ContextId parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new ContextId(input, extensionRegistry); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } + /** + * Protobuf type {@code context.Uuid} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.Uuid) + context.ContextOuterClass.UuidOrBuilder { - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_Uuid_descriptor; + } - @java.lang.Override - public context.ContextOuterClass.ContextId getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_Uuid_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.Uuid.class, context.ContextOuterClass.Uuid.Builder.class); + } - } + // Construct using context.ContextOuterClass.Uuid.newBuilder() + private Builder() { + } - public interface ContextOrBuilder extends - // @@protoc_insertion_point(interface_extends:context.Context) - com.google.protobuf.MessageOrBuilder { + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } - /** - * .context.ContextId context_id = 1; - * @return Whether the contextId field is set. - */ - boolean hasContextId(); - /** - * .context.ContextId context_id = 1; - * @return The contextId. - */ - context.ContextOuterClass.ContextId getContextId(); - /** - * .context.ContextId context_id = 1; - */ - context.ContextOuterClass.ContextIdOrBuilder getContextIdOrBuilder(); + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + uuid_ = ""; + return this; + } - /** - * string name = 2; - * @return The name. - */ - java.lang.String getName(); - /** - * string name = 2; - * @return The bytes for name. - */ - com.google.protobuf.ByteString - getNameBytes(); + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_Uuid_descriptor; + } - /** - * repeated .context.TopologyId topology_ids = 3; - */ - java.util.List - getTopologyIdsList(); - /** - * repeated .context.TopologyId topology_ids = 3; - */ - context.ContextOuterClass.TopologyId getTopologyIds(int index); - /** - * repeated .context.TopologyId topology_ids = 3; - */ - int getTopologyIdsCount(); - /** - * repeated .context.TopologyId topology_ids = 3; - */ - java.util.List - getTopologyIdsOrBuilderList(); - /** - * repeated .context.TopologyId topology_ids = 3; - */ - context.ContextOuterClass.TopologyIdOrBuilder getTopologyIdsOrBuilder( - int index); + @java.lang.Override + public context.ContextOuterClass.Uuid getDefaultInstanceForType() { + return context.ContextOuterClass.Uuid.getDefaultInstance(); + } - /** - * repeated .context.ServiceId service_ids = 4; - */ - java.util.List - getServiceIdsList(); - /** - * repeated .context.ServiceId service_ids = 4; - */ - context.ContextOuterClass.ServiceId getServiceIds(int index); - /** - * repeated .context.ServiceId service_ids = 4; - */ - int getServiceIdsCount(); - /** - * repeated .context.ServiceId service_ids = 4; - */ - java.util.List - getServiceIdsOrBuilderList(); - /** - * repeated .context.ServiceId service_ids = 4; - */ - context.ContextOuterClass.ServiceIdOrBuilder getServiceIdsOrBuilder( - int index); + @java.lang.Override + public context.ContextOuterClass.Uuid build() { + context.ContextOuterClass.Uuid result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } - /** - * repeated .context.SliceId slice_ids = 5; - */ - java.util.List - getSliceIdsList(); - /** - * repeated .context.SliceId slice_ids = 5; - */ - context.ContextOuterClass.SliceId getSliceIds(int index); - /** - * repeated .context.SliceId slice_ids = 5; - */ - int getSliceIdsCount(); - /** - * repeated .context.SliceId slice_ids = 5; - */ - java.util.List - getSliceIdsOrBuilderList(); - /** - * repeated .context.SliceId slice_ids = 5; - */ - context.ContextOuterClass.SliceIdOrBuilder getSliceIdsOrBuilder( - int index); + @java.lang.Override + public context.ContextOuterClass.Uuid buildPartial() { + context.ContextOuterClass.Uuid result = new context.ContextOuterClass.Uuid(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } - /** - * .context.TeraFlowController controller = 6; - * @return Whether the controller field is set. - */ - boolean hasController(); - /** - * .context.TeraFlowController controller = 6; - * @return The controller. - */ - context.ContextOuterClass.TeraFlowController getController(); - /** - * .context.TeraFlowController controller = 6; - */ - context.ContextOuterClass.TeraFlowControllerOrBuilder getControllerOrBuilder(); - } - /** - * Protobuf type {@code context.Context} - */ - public static final class Context extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:context.Context) - ContextOrBuilder { - private static final long serialVersionUID = 0L; - // Use Context.newBuilder() to construct. - private Context(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private Context() { - name_ = ""; - topologyIds_ = java.util.Collections.emptyList(); - serviceIds_ = java.util.Collections.emptyList(); - sliceIds_ = java.util.Collections.emptyList(); - } + private void buildPartial0(context.ContextOuterClass.Uuid result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.uuid_ = uuid_; + } + } - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new Context(); - } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.Uuid) { + return mergeFrom((context.ContextOuterClass.Uuid) other); + } else { + super.mergeFrom(other); + return this; + } + } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private Context( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - int mutable_bitField0_ = 0; - com.google.protobuf.UnknownFieldSet.Builder unknownFields = - com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - context.ContextOuterClass.ContextId.Builder subBuilder = null; - if (contextId_ != null) { - subBuilder = contextId_.toBuilder(); - } - contextId_ = input.readMessage(context.ContextOuterClass.ContextId.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(contextId_); - contextId_ = subBuilder.buildPartial(); - } - - break; - } - case 18: { - java.lang.String s = input.readStringRequireUtf8(); - - name_ = s; - break; - } - case 26: { - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - topologyIds_ = new java.util.ArrayList(); - mutable_bitField0_ |= 0x00000001; - } - topologyIds_.add( - input.readMessage(context.ContextOuterClass.TopologyId.parser(), extensionRegistry)); - break; - } - case 34: { - if (!((mutable_bitField0_ & 0x00000002) != 0)) { - serviceIds_ = new java.util.ArrayList(); - mutable_bitField0_ |= 0x00000002; - } - serviceIds_.add( - input.readMessage(context.ContextOuterClass.ServiceId.parser(), extensionRegistry)); - break; - } - case 42: { - if (!((mutable_bitField0_ & 0x00000004) != 0)) { - sliceIds_ = new java.util.ArrayList(); - mutable_bitField0_ |= 0x00000004; - } - sliceIds_.add( - input.readMessage(context.ContextOuterClass.SliceId.parser(), extensionRegistry)); - break; - } - case 50: { - context.ContextOuterClass.TeraFlowController.Builder subBuilder = null; - if (controller_ != null) { - subBuilder = controller_.toBuilder(); - } - controller_ = input.readMessage(context.ContextOuterClass.TeraFlowController.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(controller_); - controller_ = subBuilder.buildPartial(); - } - - break; - } - default: { - if (!parseUnknownField( - input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException( - e).setUnfinishedMessage(this); - } finally { - if (((mutable_bitField0_ & 0x00000001) != 0)) { - topologyIds_ = java.util.Collections.unmodifiableList(topologyIds_); - } - if (((mutable_bitField0_ & 0x00000002) != 0)) { - serviceIds_ = java.util.Collections.unmodifiableList(serviceIds_); - } - if (((mutable_bitField0_ & 0x00000004) != 0)) { - sliceIds_ = java.util.Collections.unmodifiableList(sliceIds_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return context.ContextOuterClass.internal_static_context_Context_descriptor; - } + public Builder mergeFrom(context.ContextOuterClass.Uuid other) { + if (other == context.ContextOuterClass.Uuid.getDefaultInstance()) + return this; + if (!other.getUuid().isEmpty()) { + uuid_ = other.uuid_; + bitField0_ |= 0x00000001; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_Context_fieldAccessorTable - .ensureFieldAccessorsInitialized( - context.ContextOuterClass.Context.class, context.ContextOuterClass.Context.Builder.class); - } + @java.lang.Override + public final boolean isInitialized() { + return true; + } - public static final int CONTEXT_ID_FIELD_NUMBER = 1; - private context.ContextOuterClass.ContextId contextId_; - /** - * .context.ContextId context_id = 1; - * @return Whether the contextId field is set. - */ - @java.lang.Override - public boolean hasContextId() { - return contextId_ != null; - } - /** - * .context.ContextId context_id = 1; - * @return The contextId. - */ - @java.lang.Override - public context.ContextOuterClass.ContextId getContextId() { - return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_; - } - /** - * .context.ContextId context_id = 1; - */ - @java.lang.Override - public context.ContextOuterClass.ContextIdOrBuilder getContextIdOrBuilder() { - return getContextId(); - } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + uuid_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } + // case 10 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } - public static final int NAME_FIELD_NUMBER = 2; - private volatile java.lang.Object name_; - /** - * string name = 2; - * @return The name. - */ - @java.lang.Override - public java.lang.String getName() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - name_ = s; - return s; - } - } - /** - * string name = 2; - * @return The bytes for name. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - name_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } + private int bitField0_; + + private java.lang.Object uuid_ = ""; + + /** + * string uuid = 1; + * @return The uuid. + */ + public java.lang.String getUuid() { + java.lang.Object ref = uuid_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + uuid_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } - public static final int TOPOLOGY_IDS_FIELD_NUMBER = 3; - private java.util.List topologyIds_; - /** - * repeated .context.TopologyId topology_ids = 3; - */ - @java.lang.Override - public java.util.List getTopologyIdsList() { - return topologyIds_; - } - /** - * repeated .context.TopologyId topology_ids = 3; - */ - @java.lang.Override - public java.util.List - getTopologyIdsOrBuilderList() { - return topologyIds_; - } - /** - * repeated .context.TopologyId topology_ids = 3; - */ - @java.lang.Override - public int getTopologyIdsCount() { - return topologyIds_.size(); - } - /** - * repeated .context.TopologyId topology_ids = 3; - */ - @java.lang.Override - public context.ContextOuterClass.TopologyId getTopologyIds(int index) { - return topologyIds_.get(index); - } - /** - * repeated .context.TopologyId topology_ids = 3; - */ - @java.lang.Override - public context.ContextOuterClass.TopologyIdOrBuilder getTopologyIdsOrBuilder( - int index) { - return topologyIds_.get(index); - } + /** + * string uuid = 1; + * @return The bytes for uuid. + */ + public com.google.protobuf.ByteString getUuidBytes() { + java.lang.Object ref = uuid_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + uuid_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } - public static final int SERVICE_IDS_FIELD_NUMBER = 4; - private java.util.List serviceIds_; - /** - * repeated .context.ServiceId service_ids = 4; - */ - @java.lang.Override - public java.util.List getServiceIdsList() { - return serviceIds_; - } - /** - * repeated .context.ServiceId service_ids = 4; - */ - @java.lang.Override - public java.util.List - getServiceIdsOrBuilderList() { - return serviceIds_; - } - /** - * repeated .context.ServiceId service_ids = 4; - */ - @java.lang.Override - public int getServiceIdsCount() { - return serviceIds_.size(); - } - /** - * repeated .context.ServiceId service_ids = 4; - */ - @java.lang.Override - public context.ContextOuterClass.ServiceId getServiceIds(int index) { - return serviceIds_.get(index); - } - /** - * repeated .context.ServiceId service_ids = 4; - */ - @java.lang.Override - public context.ContextOuterClass.ServiceIdOrBuilder getServiceIdsOrBuilder( - int index) { - return serviceIds_.get(index); - } + /** + * string uuid = 1; + * @param value The uuid to set. + * @return This builder for chaining. + */ + public Builder setUuid(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + uuid_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } - public static final int SLICE_IDS_FIELD_NUMBER = 5; - private java.util.List sliceIds_; - /** - * repeated .context.SliceId slice_ids = 5; - */ - @java.lang.Override - public java.util.List getSliceIdsList() { - return sliceIds_; - } - /** - * repeated .context.SliceId slice_ids = 5; - */ - @java.lang.Override - public java.util.List - getSliceIdsOrBuilderList() { - return sliceIds_; - } - /** - * repeated .context.SliceId slice_ids = 5; - */ - @java.lang.Override - public int getSliceIdsCount() { - return sliceIds_.size(); - } - /** - * repeated .context.SliceId slice_ids = 5; - */ - @java.lang.Override - public context.ContextOuterClass.SliceId getSliceIds(int index) { - return sliceIds_.get(index); - } - /** - * repeated .context.SliceId slice_ids = 5; - */ - @java.lang.Override - public context.ContextOuterClass.SliceIdOrBuilder getSliceIdsOrBuilder( - int index) { - return sliceIds_.get(index); - } + /** + * string uuid = 1; + * @return This builder for chaining. + */ + public Builder clearUuid() { + uuid_ = getDefaultInstance().getUuid(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } - public static final int CONTROLLER_FIELD_NUMBER = 6; - private context.ContextOuterClass.TeraFlowController controller_; - /** - * .context.TeraFlowController controller = 6; - * @return Whether the controller field is set. - */ - @java.lang.Override - public boolean hasController() { - return controller_ != null; - } - /** - * .context.TeraFlowController controller = 6; - * @return The controller. - */ - @java.lang.Override - public context.ContextOuterClass.TeraFlowController getController() { - return controller_ == null ? context.ContextOuterClass.TeraFlowController.getDefaultInstance() : controller_; - } - /** - * .context.TeraFlowController controller = 6; - */ - @java.lang.Override - public context.ContextOuterClass.TeraFlowControllerOrBuilder getControllerOrBuilder() { - return getController(); - } + /** + * string uuid = 1; + * @param value The bytes for uuid to set. + * @return This builder for chaining. + */ + public Builder setUuidBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + uuid_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } - memoizedIsInitialized = 1; - return true; - } + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.Uuid) + } - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (contextId_ != null) { - output.writeMessage(1, getContextId()); - } - if (!getNameBytes().isEmpty()) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 2, name_); - } - for (int i = 0; i < topologyIds_.size(); i++) { - output.writeMessage(3, topologyIds_.get(i)); - } - for (int i = 0; i < serviceIds_.size(); i++) { - output.writeMessage(4, serviceIds_.get(i)); - } - for (int i = 0; i < sliceIds_.size(); i++) { - output.writeMessage(5, sliceIds_.get(i)); - } - if (controller_ != null) { - output.writeMessage(6, getController()); - } - unknownFields.writeTo(output); - } + // @@protoc_insertion_point(class_scope:context.Uuid) + private static final context.ContextOuterClass.Uuid DEFAULT_INSTANCE; - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (contextId_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(1, getContextId()); - } - if (!getNameBytes().isEmpty()) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, name_); - } - for (int i = 0; i < topologyIds_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(3, topologyIds_.get(i)); - } - for (int i = 0; i < serviceIds_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(4, serviceIds_.get(i)); - } - for (int i = 0; i < sliceIds_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(5, sliceIds_.get(i)); - } - if (controller_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(6, getController()); - } - size += unknownFields.getSerializedSize(); - memoizedSize = size; - return size; - } + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.Uuid(); + } - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof context.ContextOuterClass.Context)) { - return super.equals(obj); - } - context.ContextOuterClass.Context other = (context.ContextOuterClass.Context) obj; - - if (hasContextId() != other.hasContextId()) return false; - if (hasContextId()) { - if (!getContextId() - .equals(other.getContextId())) return false; - } - if (!getName() - .equals(other.getName())) return false; - if (!getTopologyIdsList() - .equals(other.getTopologyIdsList())) return false; - if (!getServiceIdsList() - .equals(other.getServiceIdsList())) return false; - if (!getSliceIdsList() - .equals(other.getSliceIdsList())) return false; - if (hasController() != other.hasController()) return false; - if (hasController()) { - if (!getController() - .equals(other.getController())) return false; - } - if (!unknownFields.equals(other.unknownFields)) return false; - return true; - } + public static context.ContextOuterClass.Uuid getDefaultInstance() { + return DEFAULT_INSTANCE; + } - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - if (hasContextId()) { - hash = (37 * hash) + CONTEXT_ID_FIELD_NUMBER; - hash = (53 * hash) + getContextId().hashCode(); - } - hash = (37 * hash) + NAME_FIELD_NUMBER; - hash = (53 * hash) + getName().hashCode(); - if (getTopologyIdsCount() > 0) { - hash = (37 * hash) + TOPOLOGY_IDS_FIELD_NUMBER; - hash = (53 * hash) + getTopologyIdsList().hashCode(); - } - if (getServiceIdsCount() > 0) { - hash = (37 * hash) + SERVICE_IDS_FIELD_NUMBER; - hash = (53 * hash) + getServiceIdsList().hashCode(); - } - if (getSliceIdsCount() > 0) { - hash = (37 * hash) + SLICE_IDS_FIELD_NUMBER; - hash = (53 * hash) + getSliceIdsList().hashCode(); - } - if (hasController()) { - hash = (37 * hash) + CONTROLLER_FIELD_NUMBER; - hash = (53 * hash) + getController().hashCode(); - } - hash = (29 * hash) + unknownFields.hashCode(); - memoizedHashCode = hash; - return hash; - } + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { - public static context.ContextOuterClass.Context parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static context.ContextOuterClass.Context parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static context.ContextOuterClass.Context parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static context.ContextOuterClass.Context parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static context.ContextOuterClass.Context parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static context.ContextOuterClass.Context parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static context.ContextOuterClass.Context parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static context.ContextOuterClass.Context parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - public static context.ContextOuterClass.Context parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - public static context.ContextOuterClass.Context parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static context.ContextOuterClass.Context parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static context.ContextOuterClass.Context parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } + @java.lang.Override + public Uuid parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(context.ContextOuterClass.Context prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } + public static com.google.protobuf.Parser parser() { + return PARSER; + } - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code context.Context} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:context.Context) - context.ContextOuterClass.ContextOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return context.ContextOuterClass.internal_static_context_Context_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_Context_fieldAccessorTable - .ensureFieldAccessorsInitialized( - context.ContextOuterClass.Context.class, context.ContextOuterClass.Context.Builder.class); - } - - // Construct using context.ContextOuterClass.Context.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3 - .alwaysUseFieldBuilders) { - getTopologyIdsFieldBuilder(); - getServiceIdsFieldBuilder(); - getSliceIdsFieldBuilder(); - } - } - @java.lang.Override - public Builder clear() { - super.clear(); - if (contextIdBuilder_ == null) { - contextId_ = null; - } else { - contextId_ = null; - contextIdBuilder_ = null; - } - name_ = ""; - - if (topologyIdsBuilder_ == null) { - topologyIds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); - } else { - topologyIdsBuilder_.clear(); - } - if (serviceIdsBuilder_ == null) { - serviceIds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000002); - } else { - serviceIdsBuilder_.clear(); - } - if (sliceIdsBuilder_ == null) { - sliceIds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000004); - } else { - sliceIdsBuilder_.clear(); - } - if (controllerBuilder_ == null) { - controller_ = null; - } else { - controller_ = null; - controllerBuilder_ = null; - } - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return context.ContextOuterClass.internal_static_context_Context_descriptor; - } - - @java.lang.Override - public context.ContextOuterClass.Context getDefaultInstanceForType() { - return context.ContextOuterClass.Context.getDefaultInstance(); - } - - @java.lang.Override - public context.ContextOuterClass.Context build() { - context.ContextOuterClass.Context result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public context.ContextOuterClass.Context buildPartial() { - context.ContextOuterClass.Context result = new context.ContextOuterClass.Context(this); - int from_bitField0_ = bitField0_; - if (contextIdBuilder_ == null) { - result.contextId_ = contextId_; - } else { - result.contextId_ = contextIdBuilder_.build(); - } - result.name_ = name_; - if (topologyIdsBuilder_ == null) { - if (((bitField0_ & 0x00000001) != 0)) { - topologyIds_ = java.util.Collections.unmodifiableList(topologyIds_); - bitField0_ = (bitField0_ & ~0x00000001); - } - result.topologyIds_ = topologyIds_; - } else { - result.topologyIds_ = topologyIdsBuilder_.build(); - } - if (serviceIdsBuilder_ == null) { - if (((bitField0_ & 0x00000002) != 0)) { - serviceIds_ = java.util.Collections.unmodifiableList(serviceIds_); - bitField0_ = (bitField0_ & ~0x00000002); - } - result.serviceIds_ = serviceIds_; - } else { - result.serviceIds_ = serviceIdsBuilder_.build(); - } - if (sliceIdsBuilder_ == null) { - if (((bitField0_ & 0x00000004) != 0)) { - sliceIds_ = java.util.Collections.unmodifiableList(sliceIds_); - bitField0_ = (bitField0_ & ~0x00000004); - } - result.sliceIds_ = sliceIds_; - } else { - result.sliceIds_ = sliceIdsBuilder_.build(); - } - if (controllerBuilder_ == null) { - result.controller_ = controller_; - } else { - result.controller_ = controllerBuilder_.build(); - } - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof context.ContextOuterClass.Context) { - return mergeFrom((context.ContextOuterClass.Context)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(context.ContextOuterClass.Context other) { - if (other == context.ContextOuterClass.Context.getDefaultInstance()) return this; - if (other.hasContextId()) { - mergeContextId(other.getContextId()); - } - if (!other.getName().isEmpty()) { - name_ = other.name_; - onChanged(); - } - if (topologyIdsBuilder_ == null) { - if (!other.topologyIds_.isEmpty()) { - if (topologyIds_.isEmpty()) { - topologyIds_ = other.topologyIds_; - bitField0_ = (bitField0_ & ~0x00000001); - } else { - ensureTopologyIdsIsMutable(); - topologyIds_.addAll(other.topologyIds_); - } - onChanged(); - } - } else { - if (!other.topologyIds_.isEmpty()) { - if (topologyIdsBuilder_.isEmpty()) { - topologyIdsBuilder_.dispose(); - topologyIdsBuilder_ = null; - topologyIds_ = other.topologyIds_; - bitField0_ = (bitField0_ & ~0x00000001); - topologyIdsBuilder_ = - com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? - getTopologyIdsFieldBuilder() : null; - } else { - topologyIdsBuilder_.addAllMessages(other.topologyIds_); - } - } + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; } - if (serviceIdsBuilder_ == null) { - if (!other.serviceIds_.isEmpty()) { - if (serviceIds_.isEmpty()) { - serviceIds_ = other.serviceIds_; - bitField0_ = (bitField0_ & ~0x00000002); - } else { - ensureServiceIdsIsMutable(); - serviceIds_.addAll(other.serviceIds_); - } - onChanged(); - } - } else { - if (!other.serviceIds_.isEmpty()) { - if (serviceIdsBuilder_.isEmpty()) { - serviceIdsBuilder_.dispose(); - serviceIdsBuilder_ = null; - serviceIds_ = other.serviceIds_; - bitField0_ = (bitField0_ & ~0x00000002); - serviceIdsBuilder_ = - com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? - getServiceIdsFieldBuilder() : null; - } else { - serviceIdsBuilder_.addAllMessages(other.serviceIds_); - } - } + + @java.lang.Override + public context.ContextOuterClass.Uuid getDefaultInstanceForType() { + return DEFAULT_INSTANCE; } - if (sliceIdsBuilder_ == null) { - if (!other.sliceIds_.isEmpty()) { - if (sliceIds_.isEmpty()) { - sliceIds_ = other.sliceIds_; - bitField0_ = (bitField0_ & ~0x00000004); - } else { - ensureSliceIdsIsMutable(); - sliceIds_.addAll(other.sliceIds_); - } - onChanged(); - } - } else { - if (!other.sliceIds_.isEmpty()) { - if (sliceIdsBuilder_.isEmpty()) { - sliceIdsBuilder_.dispose(); - sliceIdsBuilder_ = null; - sliceIds_ = other.sliceIds_; - bitField0_ = (bitField0_ & ~0x00000004); - sliceIdsBuilder_ = - com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? - getSliceIdsFieldBuilder() : null; - } else { - sliceIdsBuilder_.addAllMessages(other.sliceIds_); - } - } - } - if (other.hasController()) { - mergeController(other.getController()); - } - this.mergeUnknownFields(other.unknownFields); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - context.ContextOuterClass.Context parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.Context) e.getUnfinishedMessage(); - throw e.unwrapIOException(); - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - private context.ContextOuterClass.ContextId contextId_; - private com.google.protobuf.SingleFieldBuilderV3< - context.ContextOuterClass.ContextId, context.ContextOuterClass.ContextId.Builder, context.ContextOuterClass.ContextIdOrBuilder> contextIdBuilder_; - /** - * .context.ContextId context_id = 1; - * @return Whether the contextId field is set. - */ - public boolean hasContextId() { - return contextIdBuilder_ != null || contextId_ != null; - } - /** - * .context.ContextId context_id = 1; - * @return The contextId. - */ - public context.ContextOuterClass.ContextId getContextId() { - if (contextIdBuilder_ == null) { - return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_; - } else { - return contextIdBuilder_.getMessage(); - } - } - /** - * .context.ContextId context_id = 1; - */ - public Builder setContextId(context.ContextOuterClass.ContextId value) { - if (contextIdBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - contextId_ = value; - onChanged(); - } else { - contextIdBuilder_.setMessage(value); - } - - return this; - } - /** - * .context.ContextId context_id = 1; - */ - public Builder setContextId( - context.ContextOuterClass.ContextId.Builder builderForValue) { - if (contextIdBuilder_ == null) { - contextId_ = builderForValue.build(); - onChanged(); - } else { - contextIdBuilder_.setMessage(builderForValue.build()); - } - - return this; - } - /** - * .context.ContextId context_id = 1; - */ - public Builder mergeContextId(context.ContextOuterClass.ContextId value) { - if (contextIdBuilder_ == null) { - if (contextId_ != null) { - contextId_ = - context.ContextOuterClass.ContextId.newBuilder(contextId_).mergeFrom(value).buildPartial(); - } else { - contextId_ = value; - } - onChanged(); - } else { - contextIdBuilder_.mergeFrom(value); - } - - return this; - } - /** - * .context.ContextId context_id = 1; - */ - public Builder clearContextId() { - if (contextIdBuilder_ == null) { - contextId_ = null; - onChanged(); - } else { - contextId_ = null; - contextIdBuilder_ = null; - } - - return this; - } - /** - * .context.ContextId context_id = 1; - */ - public context.ContextOuterClass.ContextId.Builder getContextIdBuilder() { - - onChanged(); - return getContextIdFieldBuilder().getBuilder(); - } - /** - * .context.ContextId context_id = 1; - */ - public context.ContextOuterClass.ContextIdOrBuilder getContextIdOrBuilder() { - if (contextIdBuilder_ != null) { - return contextIdBuilder_.getMessageOrBuilder(); - } else { - return contextId_ == null ? - context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_; - } - } - /** - * .context.ContextId context_id = 1; - */ - private com.google.protobuf.SingleFieldBuilderV3< - context.ContextOuterClass.ContextId, context.ContextOuterClass.ContextId.Builder, context.ContextOuterClass.ContextIdOrBuilder> - getContextIdFieldBuilder() { - if (contextIdBuilder_ == null) { - contextIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - context.ContextOuterClass.ContextId, context.ContextOuterClass.ContextId.Builder, context.ContextOuterClass.ContextIdOrBuilder>( - getContextId(), - getParentForChildren(), - isClean()); - contextId_ = null; - } - return contextIdBuilder_; - } - - private java.lang.Object name_ = ""; - /** - * string name = 2; - * @return The name. - */ - public java.lang.String getName() { - java.lang.Object ref = name_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - name_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string name = 2; - * @return The bytes for name. - */ - public com.google.protobuf.ByteString - getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - name_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string name = 2; - * @param value The name to set. - * @return This builder for chaining. - */ - public Builder setName( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - - name_ = value; - onChanged(); - return this; - } - /** - * string name = 2; - * @return This builder for chaining. - */ - public Builder clearName() { - - name_ = getDefaultInstance().getName(); - onChanged(); - return this; - } - /** - * string name = 2; - * @param value The bytes for name to set. - * @return This builder for chaining. - */ - public Builder setNameBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - - name_ = value; - onChanged(); - return this; - } - - private java.util.List topologyIds_ = - java.util.Collections.emptyList(); - private void ensureTopologyIdsIsMutable() { - if (!((bitField0_ & 0x00000001) != 0)) { - topologyIds_ = new java.util.ArrayList(topologyIds_); - bitField0_ |= 0x00000001; - } - } - - private com.google.protobuf.RepeatedFieldBuilderV3< - context.ContextOuterClass.TopologyId, context.ContextOuterClass.TopologyId.Builder, context.ContextOuterClass.TopologyIdOrBuilder> topologyIdsBuilder_; - - /** - * repeated .context.TopologyId topology_ids = 3; - */ - public java.util.List getTopologyIdsList() { - if (topologyIdsBuilder_ == null) { - return java.util.Collections.unmodifiableList(topologyIds_); - } else { - return topologyIdsBuilder_.getMessageList(); - } - } - /** - * repeated .context.TopologyId topology_ids = 3; - */ - public int getTopologyIdsCount() { - if (topologyIdsBuilder_ == null) { - return topologyIds_.size(); - } else { - return topologyIdsBuilder_.getCount(); - } - } - /** - * repeated .context.TopologyId topology_ids = 3; - */ - public context.ContextOuterClass.TopologyId getTopologyIds(int index) { - if (topologyIdsBuilder_ == null) { - return topologyIds_.get(index); - } else { - return topologyIdsBuilder_.getMessage(index); - } - } - /** - * repeated .context.TopologyId topology_ids = 3; - */ - public Builder setTopologyIds( - int index, context.ContextOuterClass.TopologyId value) { - if (topologyIdsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureTopologyIdsIsMutable(); - topologyIds_.set(index, value); - onChanged(); - } else { - topologyIdsBuilder_.setMessage(index, value); - } - return this; - } - /** - * repeated .context.TopologyId topology_ids = 3; - */ - public Builder setTopologyIds( - int index, context.ContextOuterClass.TopologyId.Builder builderForValue) { - if (topologyIdsBuilder_ == null) { - ensureTopologyIdsIsMutable(); - topologyIds_.set(index, builderForValue.build()); - onChanged(); - } else { - topologyIdsBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .context.TopologyId topology_ids = 3; - */ - public Builder addTopologyIds(context.ContextOuterClass.TopologyId value) { - if (topologyIdsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureTopologyIdsIsMutable(); - topologyIds_.add(value); - onChanged(); - } else { - topologyIdsBuilder_.addMessage(value); - } - return this; - } - /** - * repeated .context.TopologyId topology_ids = 3; - */ - public Builder addTopologyIds( - int index, context.ContextOuterClass.TopologyId value) { - if (topologyIdsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureTopologyIdsIsMutable(); - topologyIds_.add(index, value); - onChanged(); - } else { - topologyIdsBuilder_.addMessage(index, value); - } - return this; - } - /** - * repeated .context.TopologyId topology_ids = 3; - */ - public Builder addTopologyIds( - context.ContextOuterClass.TopologyId.Builder builderForValue) { - if (topologyIdsBuilder_ == null) { - ensureTopologyIdsIsMutable(); - topologyIds_.add(builderForValue.build()); - onChanged(); - } else { - topologyIdsBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * repeated .context.TopologyId topology_ids = 3; - */ - public Builder addTopologyIds( - int index, context.ContextOuterClass.TopologyId.Builder builderForValue) { - if (topologyIdsBuilder_ == null) { - ensureTopologyIdsIsMutable(); - topologyIds_.add(index, builderForValue.build()); - onChanged(); - } else { - topologyIdsBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .context.TopologyId topology_ids = 3; - */ - public Builder addAllTopologyIds( - java.lang.Iterable values) { - if (topologyIdsBuilder_ == null) { - ensureTopologyIdsIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, topologyIds_); - onChanged(); - } else { - topologyIdsBuilder_.addAllMessages(values); - } - return this; - } - /** - * repeated .context.TopologyId topology_ids = 3; - */ - public Builder clearTopologyIds() { - if (topologyIdsBuilder_ == null) { - topologyIds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - } else { - topologyIdsBuilder_.clear(); - } - return this; - } - /** - * repeated .context.TopologyId topology_ids = 3; - */ - public Builder removeTopologyIds(int index) { - if (topologyIdsBuilder_ == null) { - ensureTopologyIdsIsMutable(); - topologyIds_.remove(index); - onChanged(); - } else { - topologyIdsBuilder_.remove(index); - } - return this; - } - /** - * repeated .context.TopologyId topology_ids = 3; - */ - public context.ContextOuterClass.TopologyId.Builder getTopologyIdsBuilder( - int index) { - return getTopologyIdsFieldBuilder().getBuilder(index); - } - /** - * repeated .context.TopologyId topology_ids = 3; - */ - public context.ContextOuterClass.TopologyIdOrBuilder getTopologyIdsOrBuilder( - int index) { - if (topologyIdsBuilder_ == null) { - return topologyIds_.get(index); } else { - return topologyIdsBuilder_.getMessageOrBuilder(index); - } - } - /** - * repeated .context.TopologyId topology_ids = 3; - */ - public java.util.List - getTopologyIdsOrBuilderList() { - if (topologyIdsBuilder_ != null) { - return topologyIdsBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(topologyIds_); - } - } - /** - * repeated .context.TopologyId topology_ids = 3; - */ - public context.ContextOuterClass.TopologyId.Builder addTopologyIdsBuilder() { - return getTopologyIdsFieldBuilder().addBuilder( - context.ContextOuterClass.TopologyId.getDefaultInstance()); - } - /** - * repeated .context.TopologyId topology_ids = 3; - */ - public context.ContextOuterClass.TopologyId.Builder addTopologyIdsBuilder( - int index) { - return getTopologyIdsFieldBuilder().addBuilder( - index, context.ContextOuterClass.TopologyId.getDefaultInstance()); - } - /** - * repeated .context.TopologyId topology_ids = 3; - */ - public java.util.List - getTopologyIdsBuilderList() { - return getTopologyIdsFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilderV3< - context.ContextOuterClass.TopologyId, context.ContextOuterClass.TopologyId.Builder, context.ContextOuterClass.TopologyIdOrBuilder> - getTopologyIdsFieldBuilder() { - if (topologyIdsBuilder_ == null) { - topologyIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< - context.ContextOuterClass.TopologyId, context.ContextOuterClass.TopologyId.Builder, context.ContextOuterClass.TopologyIdOrBuilder>( - topologyIds_, - ((bitField0_ & 0x00000001) != 0), - getParentForChildren(), - isClean()); - topologyIds_ = null; - } - return topologyIdsBuilder_; - } - - private java.util.List serviceIds_ = - java.util.Collections.emptyList(); - private void ensureServiceIdsIsMutable() { - if (!((bitField0_ & 0x00000002) != 0)) { - serviceIds_ = new java.util.ArrayList(serviceIds_); - bitField0_ |= 0x00000002; - } - } - - private com.google.protobuf.RepeatedFieldBuilderV3< - context.ContextOuterClass.ServiceId, context.ContextOuterClass.ServiceId.Builder, context.ContextOuterClass.ServiceIdOrBuilder> serviceIdsBuilder_; - - /** - * repeated .context.ServiceId service_ids = 4; - */ - public java.util.List getServiceIdsList() { - if (serviceIdsBuilder_ == null) { - return java.util.Collections.unmodifiableList(serviceIds_); - } else { - return serviceIdsBuilder_.getMessageList(); - } - } - /** - * repeated .context.ServiceId service_ids = 4; - */ - public int getServiceIdsCount() { - if (serviceIdsBuilder_ == null) { - return serviceIds_.size(); - } else { - return serviceIdsBuilder_.getCount(); - } - } - /** - * repeated .context.ServiceId service_ids = 4; - */ - public context.ContextOuterClass.ServiceId getServiceIds(int index) { - if (serviceIdsBuilder_ == null) { - return serviceIds_.get(index); - } else { - return serviceIdsBuilder_.getMessage(index); - } - } - /** - * repeated .context.ServiceId service_ids = 4; - */ - public Builder setServiceIds( - int index, context.ContextOuterClass.ServiceId value) { - if (serviceIdsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureServiceIdsIsMutable(); - serviceIds_.set(index, value); - onChanged(); - } else { - serviceIdsBuilder_.setMessage(index, value); - } - return this; - } - /** - * repeated .context.ServiceId service_ids = 4; - */ - public Builder setServiceIds( - int index, context.ContextOuterClass.ServiceId.Builder builderForValue) { - if (serviceIdsBuilder_ == null) { - ensureServiceIdsIsMutable(); - serviceIds_.set(index, builderForValue.build()); - onChanged(); - } else { - serviceIdsBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .context.ServiceId service_ids = 4; - */ - public Builder addServiceIds(context.ContextOuterClass.ServiceId value) { - if (serviceIdsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureServiceIdsIsMutable(); - serviceIds_.add(value); - onChanged(); - } else { - serviceIdsBuilder_.addMessage(value); - } - return this; - } - /** - * repeated .context.ServiceId service_ids = 4; - */ - public Builder addServiceIds( - int index, context.ContextOuterClass.ServiceId value) { - if (serviceIdsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureServiceIdsIsMutable(); - serviceIds_.add(index, value); - onChanged(); - } else { - serviceIdsBuilder_.addMessage(index, value); - } - return this; - } - /** - * repeated .context.ServiceId service_ids = 4; - */ - public Builder addServiceIds( - context.ContextOuterClass.ServiceId.Builder builderForValue) { - if (serviceIdsBuilder_ == null) { - ensureServiceIdsIsMutable(); - serviceIds_.add(builderForValue.build()); - onChanged(); - } else { - serviceIdsBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * repeated .context.ServiceId service_ids = 4; - */ - public Builder addServiceIds( - int index, context.ContextOuterClass.ServiceId.Builder builderForValue) { - if (serviceIdsBuilder_ == null) { - ensureServiceIdsIsMutable(); - serviceIds_.add(index, builderForValue.build()); - onChanged(); - } else { - serviceIdsBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .context.ServiceId service_ids = 4; - */ - public Builder addAllServiceIds( - java.lang.Iterable values) { - if (serviceIdsBuilder_ == null) { - ensureServiceIdsIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, serviceIds_); - onChanged(); - } else { - serviceIdsBuilder_.addAllMessages(values); - } - return this; - } - /** - * repeated .context.ServiceId service_ids = 4; - */ - public Builder clearServiceIds() { - if (serviceIdsBuilder_ == null) { - serviceIds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000002); - onChanged(); - } else { - serviceIdsBuilder_.clear(); - } - return this; - } - /** - * repeated .context.ServiceId service_ids = 4; - */ - public Builder removeServiceIds(int index) { - if (serviceIdsBuilder_ == null) { - ensureServiceIdsIsMutable(); - serviceIds_.remove(index); - onChanged(); - } else { - serviceIdsBuilder_.remove(index); - } - return this; - } - /** - * repeated .context.ServiceId service_ids = 4; - */ - public context.ContextOuterClass.ServiceId.Builder getServiceIdsBuilder( - int index) { - return getServiceIdsFieldBuilder().getBuilder(index); - } - /** - * repeated .context.ServiceId service_ids = 4; - */ - public context.ContextOuterClass.ServiceIdOrBuilder getServiceIdsOrBuilder( - int index) { - if (serviceIdsBuilder_ == null) { - return serviceIds_.get(index); } else { - return serviceIdsBuilder_.getMessageOrBuilder(index); - } - } - /** - * repeated .context.ServiceId service_ids = 4; - */ - public java.util.List - getServiceIdsOrBuilderList() { - if (serviceIdsBuilder_ != null) { - return serviceIdsBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(serviceIds_); - } - } - /** - * repeated .context.ServiceId service_ids = 4; - */ - public context.ContextOuterClass.ServiceId.Builder addServiceIdsBuilder() { - return getServiceIdsFieldBuilder().addBuilder( - context.ContextOuterClass.ServiceId.getDefaultInstance()); - } - /** - * repeated .context.ServiceId service_ids = 4; - */ - public context.ContextOuterClass.ServiceId.Builder addServiceIdsBuilder( - int index) { - return getServiceIdsFieldBuilder().addBuilder( - index, context.ContextOuterClass.ServiceId.getDefaultInstance()); - } - /** - * repeated .context.ServiceId service_ids = 4; - */ - public java.util.List - getServiceIdsBuilderList() { - return getServiceIdsFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilderV3< - context.ContextOuterClass.ServiceId, context.ContextOuterClass.ServiceId.Builder, context.ContextOuterClass.ServiceIdOrBuilder> - getServiceIdsFieldBuilder() { - if (serviceIdsBuilder_ == null) { - serviceIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< - context.ContextOuterClass.ServiceId, context.ContextOuterClass.ServiceId.Builder, context.ContextOuterClass.ServiceIdOrBuilder>( - serviceIds_, - ((bitField0_ & 0x00000002) != 0), - getParentForChildren(), - isClean()); - serviceIds_ = null; - } - return serviceIdsBuilder_; - } - - private java.util.List sliceIds_ = - java.util.Collections.emptyList(); - private void ensureSliceIdsIsMutable() { - if (!((bitField0_ & 0x00000004) != 0)) { - sliceIds_ = new java.util.ArrayList(sliceIds_); - bitField0_ |= 0x00000004; - } - } - - private com.google.protobuf.RepeatedFieldBuilderV3< - context.ContextOuterClass.SliceId, context.ContextOuterClass.SliceId.Builder, context.ContextOuterClass.SliceIdOrBuilder> sliceIdsBuilder_; - - /** - * repeated .context.SliceId slice_ids = 5; - */ - public java.util.List getSliceIdsList() { - if (sliceIdsBuilder_ == null) { - return java.util.Collections.unmodifiableList(sliceIds_); - } else { - return sliceIdsBuilder_.getMessageList(); - } - } - /** - * repeated .context.SliceId slice_ids = 5; - */ - public int getSliceIdsCount() { - if (sliceIdsBuilder_ == null) { - return sliceIds_.size(); - } else { - return sliceIdsBuilder_.getCount(); - } - } - /** - * repeated .context.SliceId slice_ids = 5; - */ - public context.ContextOuterClass.SliceId getSliceIds(int index) { - if (sliceIdsBuilder_ == null) { - return sliceIds_.get(index); - } else { - return sliceIdsBuilder_.getMessage(index); - } - } - /** - * repeated .context.SliceId slice_ids = 5; - */ - public Builder setSliceIds( - int index, context.ContextOuterClass.SliceId value) { - if (sliceIdsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureSliceIdsIsMutable(); - sliceIds_.set(index, value); - onChanged(); - } else { - sliceIdsBuilder_.setMessage(index, value); - } - return this; - } - /** - * repeated .context.SliceId slice_ids = 5; - */ - public Builder setSliceIds( - int index, context.ContextOuterClass.SliceId.Builder builderForValue) { - if (sliceIdsBuilder_ == null) { - ensureSliceIdsIsMutable(); - sliceIds_.set(index, builderForValue.build()); - onChanged(); - } else { - sliceIdsBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .context.SliceId slice_ids = 5; - */ - public Builder addSliceIds(context.ContextOuterClass.SliceId value) { - if (sliceIdsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureSliceIdsIsMutable(); - sliceIds_.add(value); - onChanged(); - } else { - sliceIdsBuilder_.addMessage(value); - } - return this; - } - /** - * repeated .context.SliceId slice_ids = 5; - */ - public Builder addSliceIds( - int index, context.ContextOuterClass.SliceId value) { - if (sliceIdsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureSliceIdsIsMutable(); - sliceIds_.add(index, value); - onChanged(); - } else { - sliceIdsBuilder_.addMessage(index, value); - } - return this; - } - /** - * repeated .context.SliceId slice_ids = 5; - */ - public Builder addSliceIds( - context.ContextOuterClass.SliceId.Builder builderForValue) { - if (sliceIdsBuilder_ == null) { - ensureSliceIdsIsMutable(); - sliceIds_.add(builderForValue.build()); - onChanged(); - } else { - sliceIdsBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * repeated .context.SliceId slice_ids = 5; - */ - public Builder addSliceIds( - int index, context.ContextOuterClass.SliceId.Builder builderForValue) { - if (sliceIdsBuilder_ == null) { - ensureSliceIdsIsMutable(); - sliceIds_.add(index, builderForValue.build()); - onChanged(); - } else { - sliceIdsBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .context.SliceId slice_ids = 5; - */ - public Builder addAllSliceIds( - java.lang.Iterable values) { - if (sliceIdsBuilder_ == null) { - ensureSliceIdsIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, sliceIds_); - onChanged(); - } else { - sliceIdsBuilder_.addAllMessages(values); - } - return this; - } - /** - * repeated .context.SliceId slice_ids = 5; - */ - public Builder clearSliceIds() { - if (sliceIdsBuilder_ == null) { - sliceIds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000004); - onChanged(); - } else { - sliceIdsBuilder_.clear(); - } - return this; - } - /** - * repeated .context.SliceId slice_ids = 5; - */ - public Builder removeSliceIds(int index) { - if (sliceIdsBuilder_ == null) { - ensureSliceIdsIsMutable(); - sliceIds_.remove(index); - onChanged(); - } else { - sliceIdsBuilder_.remove(index); - } - return this; - } - /** - * repeated .context.SliceId slice_ids = 5; - */ - public context.ContextOuterClass.SliceId.Builder getSliceIdsBuilder( - int index) { - return getSliceIdsFieldBuilder().getBuilder(index); - } - /** - * repeated .context.SliceId slice_ids = 5; - */ - public context.ContextOuterClass.SliceIdOrBuilder getSliceIdsOrBuilder( - int index) { - if (sliceIdsBuilder_ == null) { - return sliceIds_.get(index); } else { - return sliceIdsBuilder_.getMessageOrBuilder(index); - } - } - /** - * repeated .context.SliceId slice_ids = 5; - */ - public java.util.List - getSliceIdsOrBuilderList() { - if (sliceIdsBuilder_ != null) { - return sliceIdsBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(sliceIds_); - } - } - /** - * repeated .context.SliceId slice_ids = 5; - */ - public context.ContextOuterClass.SliceId.Builder addSliceIdsBuilder() { - return getSliceIdsFieldBuilder().addBuilder( - context.ContextOuterClass.SliceId.getDefaultInstance()); - } - /** - * repeated .context.SliceId slice_ids = 5; - */ - public context.ContextOuterClass.SliceId.Builder addSliceIdsBuilder( - int index) { - return getSliceIdsFieldBuilder().addBuilder( - index, context.ContextOuterClass.SliceId.getDefaultInstance()); - } - /** - * repeated .context.SliceId slice_ids = 5; - */ - public java.util.List - getSliceIdsBuilderList() { - return getSliceIdsFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilderV3< - context.ContextOuterClass.SliceId, context.ContextOuterClass.SliceId.Builder, context.ContextOuterClass.SliceIdOrBuilder> - getSliceIdsFieldBuilder() { - if (sliceIdsBuilder_ == null) { - sliceIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< - context.ContextOuterClass.SliceId, context.ContextOuterClass.SliceId.Builder, context.ContextOuterClass.SliceIdOrBuilder>( - sliceIds_, - ((bitField0_ & 0x00000004) != 0), - getParentForChildren(), - isClean()); - sliceIds_ = null; - } - return sliceIdsBuilder_; - } - - private context.ContextOuterClass.TeraFlowController controller_; - private com.google.protobuf.SingleFieldBuilderV3< - context.ContextOuterClass.TeraFlowController, context.ContextOuterClass.TeraFlowController.Builder, context.ContextOuterClass.TeraFlowControllerOrBuilder> controllerBuilder_; - /** - * .context.TeraFlowController controller = 6; - * @return Whether the controller field is set. - */ - public boolean hasController() { - return controllerBuilder_ != null || controller_ != null; - } - /** - * .context.TeraFlowController controller = 6; - * @return The controller. - */ - public context.ContextOuterClass.TeraFlowController getController() { - if (controllerBuilder_ == null) { - return controller_ == null ? context.ContextOuterClass.TeraFlowController.getDefaultInstance() : controller_; - } else { - return controllerBuilder_.getMessage(); - } - } - /** - * .context.TeraFlowController controller = 6; - */ - public Builder setController(context.ContextOuterClass.TeraFlowController value) { - if (controllerBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - controller_ = value; - onChanged(); - } else { - controllerBuilder_.setMessage(value); - } - - return this; - } - /** - * .context.TeraFlowController controller = 6; - */ - public Builder setController( - context.ContextOuterClass.TeraFlowController.Builder builderForValue) { - if (controllerBuilder_ == null) { - controller_ = builderForValue.build(); - onChanged(); - } else { - controllerBuilder_.setMessage(builderForValue.build()); - } - - return this; - } - /** - * .context.TeraFlowController controller = 6; - */ - public Builder mergeController(context.ContextOuterClass.TeraFlowController value) { - if (controllerBuilder_ == null) { - if (controller_ != null) { - controller_ = - context.ContextOuterClass.TeraFlowController.newBuilder(controller_).mergeFrom(value).buildPartial(); - } else { - controller_ = value; - } - onChanged(); - } else { - controllerBuilder_.mergeFrom(value); - } - - return this; - } - /** - * .context.TeraFlowController controller = 6; - */ - public Builder clearController() { - if (controllerBuilder_ == null) { - controller_ = null; - onChanged(); - } else { - controller_ = null; - controllerBuilder_ = null; - } - - return this; - } - /** - * .context.TeraFlowController controller = 6; - */ - public context.ContextOuterClass.TeraFlowController.Builder getControllerBuilder() { - - onChanged(); - return getControllerFieldBuilder().getBuilder(); - } - /** - * .context.TeraFlowController controller = 6; - */ - public context.ContextOuterClass.TeraFlowControllerOrBuilder getControllerOrBuilder() { - if (controllerBuilder_ != null) { - return controllerBuilder_.getMessageOrBuilder(); - } else { - return controller_ == null ? - context.ContextOuterClass.TeraFlowController.getDefaultInstance() : controller_; - } - } - /** - * .context.TeraFlowController controller = 6; - */ - private com.google.protobuf.SingleFieldBuilderV3< - context.ContextOuterClass.TeraFlowController, context.ContextOuterClass.TeraFlowController.Builder, context.ContextOuterClass.TeraFlowControllerOrBuilder> - getControllerFieldBuilder() { - if (controllerBuilder_ == null) { - controllerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - context.ContextOuterClass.TeraFlowController, context.ContextOuterClass.TeraFlowController.Builder, context.ContextOuterClass.TeraFlowControllerOrBuilder>( - getController(), - getParentForChildren(), - isClean()); - controller_ = null; - } - return controllerBuilder_; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:context.Context) } - // @@protoc_insertion_point(class_scope:context.Context) - private static final context.ContextOuterClass.Context DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new context.ContextOuterClass.Context(); - } + public interface TimestampOrBuilder extends // @@protoc_insertion_point(interface_extends:context.Timestamp) + com.google.protobuf.MessageOrBuilder { - public static context.ContextOuterClass.Context getDefaultInstance() { - return DEFAULT_INSTANCE; + /** + * double timestamp = 1; + * @return The timestamp. + */ + double getTimestamp(); } - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public Context parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new Context(input, extensionRegistry); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } + /** + * Protobuf type {@code context.Timestamp} + */ + public static final class Timestamp extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.Timestamp) + TimestampOrBuilder { - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } + private static final long serialVersionUID = 0L; - @java.lang.Override - public context.ContextOuterClass.Context getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } + // Use Timestamp.newBuilder() to construct. + private Timestamp(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } - } + private Timestamp() { + } - public interface ContextIdListOrBuilder extends - // @@protoc_insertion_point(interface_extends:context.ContextIdList) - com.google.protobuf.MessageOrBuilder { + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new Timestamp(); + } - /** - * repeated .context.ContextId context_ids = 1; - */ - java.util.List - getContextIdsList(); - /** - * repeated .context.ContextId context_ids = 1; - */ - context.ContextOuterClass.ContextId getContextIds(int index); - /** - * repeated .context.ContextId context_ids = 1; - */ - int getContextIdsCount(); - /** - * repeated .context.ContextId context_ids = 1; - */ - java.util.List - getContextIdsOrBuilderList(); - /** - * repeated .context.ContextId context_ids = 1; - */ - context.ContextOuterClass.ContextIdOrBuilder getContextIdsOrBuilder( - int index); - } - /** - * Protobuf type {@code context.ContextIdList} - */ - public static final class ContextIdList extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:context.ContextIdList) - ContextIdListOrBuilder { - private static final long serialVersionUID = 0L; - // Use ContextIdList.newBuilder() to construct. - private ContextIdList(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private ContextIdList() { - contextIds_ = java.util.Collections.emptyList(); - } + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_Timestamp_descriptor; + } - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new ContextIdList(); - } + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_Timestamp_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.Timestamp.class, context.ContextOuterClass.Timestamp.Builder.class); + } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private ContextIdList( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - int mutable_bitField0_ = 0; - com.google.protobuf.UnknownFieldSet.Builder unknownFields = - com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - contextIds_ = new java.util.ArrayList(); - mutable_bitField0_ |= 0x00000001; - } - contextIds_.add( - input.readMessage(context.ContextOuterClass.ContextId.parser(), extensionRegistry)); - break; - } - default: { - if (!parseUnknownField( - input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException( - e).setUnfinishedMessage(this); - } finally { - if (((mutable_bitField0_ & 0x00000001) != 0)) { - contextIds_ = java.util.Collections.unmodifiableList(contextIds_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return context.ContextOuterClass.internal_static_context_ContextIdList_descriptor; - } + public static final int TIMESTAMP_FIELD_NUMBER = 1; - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_ContextIdList_fieldAccessorTable - .ensureFieldAccessorsInitialized( - context.ContextOuterClass.ContextIdList.class, context.ContextOuterClass.ContextIdList.Builder.class); - } + private double timestamp_ = 0D; - public static final int CONTEXT_IDS_FIELD_NUMBER = 1; - private java.util.List contextIds_; - /** - * repeated .context.ContextId context_ids = 1; - */ - @java.lang.Override - public java.util.List getContextIdsList() { - return contextIds_; - } - /** - * repeated .context.ContextId context_ids = 1; - */ - @java.lang.Override - public java.util.List - getContextIdsOrBuilderList() { - return contextIds_; - } - /** - * repeated .context.ContextId context_ids = 1; - */ - @java.lang.Override - public int getContextIdsCount() { - return contextIds_.size(); - } - /** - * repeated .context.ContextId context_ids = 1; - */ - @java.lang.Override - public context.ContextOuterClass.ContextId getContextIds(int index) { - return contextIds_.get(index); - } - /** - * repeated .context.ContextId context_ids = 1; - */ - @java.lang.Override - public context.ContextOuterClass.ContextIdOrBuilder getContextIdsOrBuilder( - int index) { - return contextIds_.get(index); - } + /** + * double timestamp = 1; + * @return The timestamp. + */ + @java.lang.Override + public double getTimestamp() { + return timestamp_; + } - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; + private byte memoizedIsInitialized = -1; - memoizedIsInitialized = 1; - return true; - } + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - for (int i = 0; i < contextIds_.size(); i++) { - output.writeMessage(1, contextIds_.get(i)); - } - unknownFields.writeTo(output); - } + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (java.lang.Double.doubleToRawLongBits(timestamp_) != 0) { + output.writeDouble(1, timestamp_); + } + getUnknownFields().writeTo(output); + } - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - for (int i = 0; i < contextIds_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(1, contextIds_.get(i)); - } - size += unknownFields.getSerializedSize(); - memoizedSize = size; - return size; - } + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + if (java.lang.Double.doubleToRawLongBits(timestamp_) != 0) { + size += com.google.protobuf.CodedOutputStream.computeDoubleSize(1, timestamp_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof context.ContextOuterClass.ContextIdList)) { - return super.equals(obj); - } - context.ContextOuterClass.ContextIdList other = (context.ContextOuterClass.ContextIdList) obj; - - if (!getContextIdsList() - .equals(other.getContextIdsList())) return false; - if (!unknownFields.equals(other.unknownFields)) return false; - return true; - } + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.Timestamp)) { + return super.equals(obj); + } + context.ContextOuterClass.Timestamp other = (context.ContextOuterClass.Timestamp) obj; + if (java.lang.Double.doubleToLongBits(getTimestamp()) != java.lang.Double.doubleToLongBits(other.getTimestamp())) + return false; + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + TIMESTAMP_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong(java.lang.Double.doubleToLongBits(getTimestamp())); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - if (getContextIdsCount() > 0) { - hash = (37 * hash) + CONTEXT_IDS_FIELD_NUMBER; - hash = (53 * hash) + getContextIdsList().hashCode(); - } - hash = (29 * hash) + unknownFields.hashCode(); - memoizedHashCode = hash; - return hash; - } + public static context.ContextOuterClass.Timestamp parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } - public static context.ContextOuterClass.ContextIdList parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static context.ContextOuterClass.ContextIdList parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static context.ContextOuterClass.ContextIdList parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static context.ContextOuterClass.ContextIdList parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static context.ContextOuterClass.ContextIdList parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static context.ContextOuterClass.ContextIdList parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static context.ContextOuterClass.ContextIdList parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static context.ContextOuterClass.ContextIdList parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - public static context.ContextOuterClass.ContextIdList parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - public static context.ContextOuterClass.ContextIdList parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static context.ContextOuterClass.ContextIdList parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static context.ContextOuterClass.ContextIdList parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } + public static context.ContextOuterClass.Timestamp parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(context.ContextOuterClass.ContextIdList prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } + public static context.ContextOuterClass.Timestamp parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code context.ContextIdList} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:context.ContextIdList) - context.ContextOuterClass.ContextIdListOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return context.ContextOuterClass.internal_static_context_ContextIdList_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_ContextIdList_fieldAccessorTable - .ensureFieldAccessorsInitialized( - context.ContextOuterClass.ContextIdList.class, context.ContextOuterClass.ContextIdList.Builder.class); - } - - // Construct using context.ContextOuterClass.ContextIdList.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3 - .alwaysUseFieldBuilders) { - getContextIdsFieldBuilder(); - } - } - @java.lang.Override - public Builder clear() { - super.clear(); - if (contextIdsBuilder_ == null) { - contextIds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); - } else { - contextIdsBuilder_.clear(); - } - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return context.ContextOuterClass.internal_static_context_ContextIdList_descriptor; - } - - @java.lang.Override - public context.ContextOuterClass.ContextIdList getDefaultInstanceForType() { - return context.ContextOuterClass.ContextIdList.getDefaultInstance(); - } - - @java.lang.Override - public context.ContextOuterClass.ContextIdList build() { - context.ContextOuterClass.ContextIdList result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public context.ContextOuterClass.ContextIdList buildPartial() { - context.ContextOuterClass.ContextIdList result = new context.ContextOuterClass.ContextIdList(this); - int from_bitField0_ = bitField0_; - if (contextIdsBuilder_ == null) { - if (((bitField0_ & 0x00000001) != 0)) { - contextIds_ = java.util.Collections.unmodifiableList(contextIds_); - bitField0_ = (bitField0_ & ~0x00000001); - } - result.contextIds_ = contextIds_; - } else { - result.contextIds_ = contextIdsBuilder_.build(); - } - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof context.ContextOuterClass.ContextIdList) { - return mergeFrom((context.ContextOuterClass.ContextIdList)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(context.ContextOuterClass.ContextIdList other) { - if (other == context.ContextOuterClass.ContextIdList.getDefaultInstance()) return this; - if (contextIdsBuilder_ == null) { - if (!other.contextIds_.isEmpty()) { - if (contextIds_.isEmpty()) { - contextIds_ = other.contextIds_; - bitField0_ = (bitField0_ & ~0x00000001); - } else { - ensureContextIdsIsMutable(); - contextIds_.addAll(other.contextIds_); - } - onChanged(); - } - } else { - if (!other.contextIds_.isEmpty()) { - if (contextIdsBuilder_.isEmpty()) { - contextIdsBuilder_.dispose(); - contextIdsBuilder_ = null; - contextIds_ = other.contextIds_; - bitField0_ = (bitField0_ & ~0x00000001); - contextIdsBuilder_ = - com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? - getContextIdsFieldBuilder() : null; - } else { - contextIdsBuilder_.addAllMessages(other.contextIds_); - } - } - } - this.mergeUnknownFields(other.unknownFields); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - context.ContextOuterClass.ContextIdList parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.ContextIdList) e.getUnfinishedMessage(); - throw e.unwrapIOException(); - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - private java.util.List contextIds_ = - java.util.Collections.emptyList(); - private void ensureContextIdsIsMutable() { - if (!((bitField0_ & 0x00000001) != 0)) { - contextIds_ = new java.util.ArrayList(contextIds_); - bitField0_ |= 0x00000001; - } - } - - private com.google.protobuf.RepeatedFieldBuilderV3< - context.ContextOuterClass.ContextId, context.ContextOuterClass.ContextId.Builder, context.ContextOuterClass.ContextIdOrBuilder> contextIdsBuilder_; - - /** - * repeated .context.ContextId context_ids = 1; - */ - public java.util.List getContextIdsList() { - if (contextIdsBuilder_ == null) { - return java.util.Collections.unmodifiableList(contextIds_); - } else { - return contextIdsBuilder_.getMessageList(); - } - } - /** - * repeated .context.ContextId context_ids = 1; - */ - public int getContextIdsCount() { - if (contextIdsBuilder_ == null) { - return contextIds_.size(); - } else { - return contextIdsBuilder_.getCount(); - } - } - /** - * repeated .context.ContextId context_ids = 1; - */ - public context.ContextOuterClass.ContextId getContextIds(int index) { - if (contextIdsBuilder_ == null) { - return contextIds_.get(index); - } else { - return contextIdsBuilder_.getMessage(index); - } - } - /** - * repeated .context.ContextId context_ids = 1; - */ - public Builder setContextIds( - int index, context.ContextOuterClass.ContextId value) { - if (contextIdsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureContextIdsIsMutable(); - contextIds_.set(index, value); - onChanged(); - } else { - contextIdsBuilder_.setMessage(index, value); - } - return this; - } - /** - * repeated .context.ContextId context_ids = 1; - */ - public Builder setContextIds( - int index, context.ContextOuterClass.ContextId.Builder builderForValue) { - if (contextIdsBuilder_ == null) { - ensureContextIdsIsMutable(); - contextIds_.set(index, builderForValue.build()); - onChanged(); - } else { - contextIdsBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .context.ContextId context_ids = 1; - */ - public Builder addContextIds(context.ContextOuterClass.ContextId value) { - if (contextIdsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureContextIdsIsMutable(); - contextIds_.add(value); - onChanged(); - } else { - contextIdsBuilder_.addMessage(value); - } - return this; - } - /** - * repeated .context.ContextId context_ids = 1; - */ - public Builder addContextIds( - int index, context.ContextOuterClass.ContextId value) { - if (contextIdsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureContextIdsIsMutable(); - contextIds_.add(index, value); - onChanged(); - } else { - contextIdsBuilder_.addMessage(index, value); - } - return this; - } - /** - * repeated .context.ContextId context_ids = 1; - */ - public Builder addContextIds( - context.ContextOuterClass.ContextId.Builder builderForValue) { - if (contextIdsBuilder_ == null) { - ensureContextIdsIsMutable(); - contextIds_.add(builderForValue.build()); - onChanged(); - } else { - contextIdsBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * repeated .context.ContextId context_ids = 1; - */ - public Builder addContextIds( - int index, context.ContextOuterClass.ContextId.Builder builderForValue) { - if (contextIdsBuilder_ == null) { - ensureContextIdsIsMutable(); - contextIds_.add(index, builderForValue.build()); - onChanged(); - } else { - contextIdsBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .context.ContextId context_ids = 1; - */ - public Builder addAllContextIds( - java.lang.Iterable values) { - if (contextIdsBuilder_ == null) { - ensureContextIdsIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, contextIds_); - onChanged(); - } else { - contextIdsBuilder_.addAllMessages(values); - } - return this; - } - /** - * repeated .context.ContextId context_ids = 1; - */ - public Builder clearContextIds() { - if (contextIdsBuilder_ == null) { - contextIds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - } else { - contextIdsBuilder_.clear(); - } - return this; - } - /** - * repeated .context.ContextId context_ids = 1; - */ - public Builder removeContextIds(int index) { - if (contextIdsBuilder_ == null) { - ensureContextIdsIsMutable(); - contextIds_.remove(index); - onChanged(); - } else { - contextIdsBuilder_.remove(index); - } - return this; - } - /** - * repeated .context.ContextId context_ids = 1; - */ - public context.ContextOuterClass.ContextId.Builder getContextIdsBuilder( - int index) { - return getContextIdsFieldBuilder().getBuilder(index); - } - /** - * repeated .context.ContextId context_ids = 1; - */ - public context.ContextOuterClass.ContextIdOrBuilder getContextIdsOrBuilder( - int index) { - if (contextIdsBuilder_ == null) { - return contextIds_.get(index); } else { - return contextIdsBuilder_.getMessageOrBuilder(index); - } - } - /** - * repeated .context.ContextId context_ids = 1; - */ - public java.util.List - getContextIdsOrBuilderList() { - if (contextIdsBuilder_ != null) { - return contextIdsBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(contextIds_); - } - } - /** - * repeated .context.ContextId context_ids = 1; - */ - public context.ContextOuterClass.ContextId.Builder addContextIdsBuilder() { - return getContextIdsFieldBuilder().addBuilder( - context.ContextOuterClass.ContextId.getDefaultInstance()); - } - /** - * repeated .context.ContextId context_ids = 1; - */ - public context.ContextOuterClass.ContextId.Builder addContextIdsBuilder( - int index) { - return getContextIdsFieldBuilder().addBuilder( - index, context.ContextOuterClass.ContextId.getDefaultInstance()); - } - /** - * repeated .context.ContextId context_ids = 1; - */ - public java.util.List - getContextIdsBuilderList() { - return getContextIdsFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilderV3< - context.ContextOuterClass.ContextId, context.ContextOuterClass.ContextId.Builder, context.ContextOuterClass.ContextIdOrBuilder> - getContextIdsFieldBuilder() { - if (contextIdsBuilder_ == null) { - contextIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< - context.ContextOuterClass.ContextId, context.ContextOuterClass.ContextId.Builder, context.ContextOuterClass.ContextIdOrBuilder>( - contextIds_, - ((bitField0_ & 0x00000001) != 0), - getParentForChildren(), - isClean()); - contextIds_ = null; - } - return contextIdsBuilder_; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:context.ContextIdList) - } + public static context.ContextOuterClass.Timestamp parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } - // @@protoc_insertion_point(class_scope:context.ContextIdList) - private static final context.ContextOuterClass.ContextIdList DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new context.ContextOuterClass.ContextIdList(); - } + public static context.ContextOuterClass.Timestamp parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } - public static context.ContextOuterClass.ContextIdList getDefaultInstance() { - return DEFAULT_INSTANCE; - } + public static context.ContextOuterClass.Timestamp parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public ContextIdList parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new ContextIdList(input, extensionRegistry); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } + public static context.ContextOuterClass.Timestamp parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } + public static context.ContextOuterClass.Timestamp parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } - @java.lang.Override - public context.ContextOuterClass.ContextIdList getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } + public static context.ContextOuterClass.Timestamp parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } - } + public static context.ContextOuterClass.Timestamp parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } - public interface ContextListOrBuilder extends - // @@protoc_insertion_point(interface_extends:context.ContextList) - com.google.protobuf.MessageOrBuilder { + public static context.ContextOuterClass.Timestamp parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } - /** - * repeated .context.Context contexts = 1; - */ - java.util.List - getContextsList(); - /** - * repeated .context.Context contexts = 1; - */ - context.ContextOuterClass.Context getContexts(int index); - /** - * repeated .context.Context contexts = 1; - */ - int getContextsCount(); - /** - * repeated .context.Context contexts = 1; - */ - java.util.List - getContextsOrBuilderList(); - /** - * repeated .context.Context contexts = 1; - */ - context.ContextOuterClass.ContextOrBuilder getContextsOrBuilder( - int index); - } - /** - * Protobuf type {@code context.ContextList} - */ - public static final class ContextList extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:context.ContextList) - ContextListOrBuilder { - private static final long serialVersionUID = 0L; - // Use ContextList.newBuilder() to construct. - private ContextList(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private ContextList() { - contexts_ = java.util.Collections.emptyList(); - } + public static context.ContextOuterClass.Timestamp parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new ContextList(); - } + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private ContextList( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - int mutable_bitField0_ = 0; - com.google.protobuf.UnknownFieldSet.Builder unknownFields = - com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - contexts_ = new java.util.ArrayList(); - mutable_bitField0_ |= 0x00000001; - } - contexts_.add( - input.readMessage(context.ContextOuterClass.Context.parser(), extensionRegistry)); - break; - } - default: { - if (!parseUnknownField( - input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException( - e).setUnfinishedMessage(this); - } finally { - if (((mutable_bitField0_ & 0x00000001) != 0)) { - contexts_ = java.util.Collections.unmodifiableList(contexts_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return context.ContextOuterClass.internal_static_context_ContextList_descriptor; - } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_ContextList_fieldAccessorTable - .ensureFieldAccessorsInitialized( - context.ContextOuterClass.ContextList.class, context.ContextOuterClass.ContextList.Builder.class); - } + public static Builder newBuilder(context.ContextOuterClass.Timestamp prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } - public static final int CONTEXTS_FIELD_NUMBER = 1; - private java.util.List contexts_; - /** - * repeated .context.Context contexts = 1; - */ - @java.lang.Override - public java.util.List getContextsList() { - return contexts_; - } - /** - * repeated .context.Context contexts = 1; - */ - @java.lang.Override - public java.util.List - getContextsOrBuilderList() { - return contexts_; - } - /** - * repeated .context.Context contexts = 1; - */ - @java.lang.Override - public int getContextsCount() { - return contexts_.size(); - } - /** - * repeated .context.Context contexts = 1; - */ - @java.lang.Override - public context.ContextOuterClass.Context getContexts(int index) { - return contexts_.get(index); - } - /** - * repeated .context.Context contexts = 1; - */ - @java.lang.Override - public context.ContextOuterClass.ContextOrBuilder getContextsOrBuilder( - int index) { - return contexts_.get(index); - } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } - memoizedIsInitialized = 1; - return true; - } + /** + * Protobuf type {@code context.Timestamp} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.Timestamp) + context.ContextOuterClass.TimestampOrBuilder { - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - for (int i = 0; i < contexts_.size(); i++) { - output.writeMessage(1, contexts_.get(i)); - } - unknownFields.writeTo(output); - } + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_Timestamp_descriptor; + } - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - for (int i = 0; i < contexts_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(1, contexts_.get(i)); - } - size += unknownFields.getSerializedSize(); - memoizedSize = size; - return size; - } + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_Timestamp_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.Timestamp.class, context.ContextOuterClass.Timestamp.Builder.class); + } - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof context.ContextOuterClass.ContextList)) { - return super.equals(obj); - } - context.ContextOuterClass.ContextList other = (context.ContextOuterClass.ContextList) obj; - - if (!getContextsList() - .equals(other.getContextsList())) return false; - if (!unknownFields.equals(other.unknownFields)) return false; - return true; - } + // Construct using context.ContextOuterClass.Timestamp.newBuilder() + private Builder() { + } - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - if (getContextsCount() > 0) { - hash = (37 * hash) + CONTEXTS_FIELD_NUMBER; - hash = (53 * hash) + getContextsList().hashCode(); - } - hash = (29 * hash) + unknownFields.hashCode(); - memoizedHashCode = hash; - return hash; - } + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } - public static context.ContextOuterClass.ContextList parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static context.ContextOuterClass.ContextList parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static context.ContextOuterClass.ContextList parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static context.ContextOuterClass.ContextList parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static context.ContextOuterClass.ContextList parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static context.ContextOuterClass.ContextList parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static context.ContextOuterClass.ContextList parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static context.ContextOuterClass.ContextList parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - public static context.ContextOuterClass.ContextList parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - public static context.ContextOuterClass.ContextList parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static context.ContextOuterClass.ContextList parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static context.ContextOuterClass.ContextList parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + timestamp_ = 0D; + return this; + } - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(context.ContextOuterClass.ContextList prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_Timestamp_descriptor; + } - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code context.ContextList} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:context.ContextList) - context.ContextOuterClass.ContextListOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return context.ContextOuterClass.internal_static_context_ContextList_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_ContextList_fieldAccessorTable - .ensureFieldAccessorsInitialized( - context.ContextOuterClass.ContextList.class, context.ContextOuterClass.ContextList.Builder.class); - } - - // Construct using context.ContextOuterClass.ContextList.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3 - .alwaysUseFieldBuilders) { - getContextsFieldBuilder(); - } - } - @java.lang.Override - public Builder clear() { - super.clear(); - if (contextsBuilder_ == null) { - contexts_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); - } else { - contextsBuilder_.clear(); - } - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return context.ContextOuterClass.internal_static_context_ContextList_descriptor; - } - - @java.lang.Override - public context.ContextOuterClass.ContextList getDefaultInstanceForType() { - return context.ContextOuterClass.ContextList.getDefaultInstance(); - } - - @java.lang.Override - public context.ContextOuterClass.ContextList build() { - context.ContextOuterClass.ContextList result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public context.ContextOuterClass.ContextList buildPartial() { - context.ContextOuterClass.ContextList result = new context.ContextOuterClass.ContextList(this); - int from_bitField0_ = bitField0_; - if (contextsBuilder_ == null) { - if (((bitField0_ & 0x00000001) != 0)) { - contexts_ = java.util.Collections.unmodifiableList(contexts_); - bitField0_ = (bitField0_ & ~0x00000001); - } - result.contexts_ = contexts_; - } else { - result.contexts_ = contextsBuilder_.build(); - } - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof context.ContextOuterClass.ContextList) { - return mergeFrom((context.ContextOuterClass.ContextList)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(context.ContextOuterClass.ContextList other) { - if (other == context.ContextOuterClass.ContextList.getDefaultInstance()) return this; - if (contextsBuilder_ == null) { - if (!other.contexts_.isEmpty()) { - if (contexts_.isEmpty()) { - contexts_ = other.contexts_; - bitField0_ = (bitField0_ & ~0x00000001); - } else { - ensureContextsIsMutable(); - contexts_.addAll(other.contexts_); - } - onChanged(); - } - } else { - if (!other.contexts_.isEmpty()) { - if (contextsBuilder_.isEmpty()) { - contextsBuilder_.dispose(); - contextsBuilder_ = null; - contexts_ = other.contexts_; - bitField0_ = (bitField0_ & ~0x00000001); - contextsBuilder_ = - com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? - getContextsFieldBuilder() : null; - } else { - contextsBuilder_.addAllMessages(other.contexts_); - } - } - } - this.mergeUnknownFields(other.unknownFields); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - context.ContextOuterClass.ContextList parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.ContextList) e.getUnfinishedMessage(); - throw e.unwrapIOException(); - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - private java.util.List contexts_ = - java.util.Collections.emptyList(); - private void ensureContextsIsMutable() { - if (!((bitField0_ & 0x00000001) != 0)) { - contexts_ = new java.util.ArrayList(contexts_); - bitField0_ |= 0x00000001; - } - } - - private com.google.protobuf.RepeatedFieldBuilderV3< - context.ContextOuterClass.Context, context.ContextOuterClass.Context.Builder, context.ContextOuterClass.ContextOrBuilder> contextsBuilder_; - - /** - * repeated .context.Context contexts = 1; - */ - public java.util.List getContextsList() { - if (contextsBuilder_ == null) { - return java.util.Collections.unmodifiableList(contexts_); - } else { - return contextsBuilder_.getMessageList(); - } - } - /** - * repeated .context.Context contexts = 1; - */ - public int getContextsCount() { - if (contextsBuilder_ == null) { - return contexts_.size(); - } else { - return contextsBuilder_.getCount(); - } - } - /** - * repeated .context.Context contexts = 1; - */ - public context.ContextOuterClass.Context getContexts(int index) { - if (contextsBuilder_ == null) { - return contexts_.get(index); - } else { - return contextsBuilder_.getMessage(index); - } - } - /** - * repeated .context.Context contexts = 1; - */ - public Builder setContexts( - int index, context.ContextOuterClass.Context value) { - if (contextsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureContextsIsMutable(); - contexts_.set(index, value); - onChanged(); - } else { - contextsBuilder_.setMessage(index, value); - } - return this; - } - /** - * repeated .context.Context contexts = 1; - */ - public Builder setContexts( - int index, context.ContextOuterClass.Context.Builder builderForValue) { - if (contextsBuilder_ == null) { - ensureContextsIsMutable(); - contexts_.set(index, builderForValue.build()); - onChanged(); - } else { - contextsBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .context.Context contexts = 1; - */ - public Builder addContexts(context.ContextOuterClass.Context value) { - if (contextsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureContextsIsMutable(); - contexts_.add(value); - onChanged(); - } else { - contextsBuilder_.addMessage(value); - } - return this; - } - /** - * repeated .context.Context contexts = 1; - */ - public Builder addContexts( - int index, context.ContextOuterClass.Context value) { - if (contextsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureContextsIsMutable(); - contexts_.add(index, value); - onChanged(); - } else { - contextsBuilder_.addMessage(index, value); - } - return this; - } - /** - * repeated .context.Context contexts = 1; - */ - public Builder addContexts( - context.ContextOuterClass.Context.Builder builderForValue) { - if (contextsBuilder_ == null) { - ensureContextsIsMutable(); - contexts_.add(builderForValue.build()); - onChanged(); - } else { - contextsBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * repeated .context.Context contexts = 1; - */ - public Builder addContexts( - int index, context.ContextOuterClass.Context.Builder builderForValue) { - if (contextsBuilder_ == null) { - ensureContextsIsMutable(); - contexts_.add(index, builderForValue.build()); - onChanged(); - } else { - contextsBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .context.Context contexts = 1; - */ - public Builder addAllContexts( - java.lang.Iterable values) { - if (contextsBuilder_ == null) { - ensureContextsIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, contexts_); - onChanged(); - } else { - contextsBuilder_.addAllMessages(values); - } - return this; - } - /** - * repeated .context.Context contexts = 1; - */ - public Builder clearContexts() { - if (contextsBuilder_ == null) { - contexts_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - } else { - contextsBuilder_.clear(); - } - return this; - } - /** - * repeated .context.Context contexts = 1; - */ - public Builder removeContexts(int index) { - if (contextsBuilder_ == null) { - ensureContextsIsMutable(); - contexts_.remove(index); - onChanged(); - } else { - contextsBuilder_.remove(index); - } - return this; - } - /** - * repeated .context.Context contexts = 1; - */ - public context.ContextOuterClass.Context.Builder getContextsBuilder( - int index) { - return getContextsFieldBuilder().getBuilder(index); - } - /** - * repeated .context.Context contexts = 1; - */ - public context.ContextOuterClass.ContextOrBuilder getContextsOrBuilder( - int index) { - if (contextsBuilder_ == null) { - return contexts_.get(index); } else { - return contextsBuilder_.getMessageOrBuilder(index); - } - } - /** - * repeated .context.Context contexts = 1; - */ - public java.util.List - getContextsOrBuilderList() { - if (contextsBuilder_ != null) { - return contextsBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(contexts_); - } - } - /** - * repeated .context.Context contexts = 1; - */ - public context.ContextOuterClass.Context.Builder addContextsBuilder() { - return getContextsFieldBuilder().addBuilder( - context.ContextOuterClass.Context.getDefaultInstance()); - } - /** - * repeated .context.Context contexts = 1; - */ - public context.ContextOuterClass.Context.Builder addContextsBuilder( - int index) { - return getContextsFieldBuilder().addBuilder( - index, context.ContextOuterClass.Context.getDefaultInstance()); - } - /** - * repeated .context.Context contexts = 1; - */ - public java.util.List - getContextsBuilderList() { - return getContextsFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilderV3< - context.ContextOuterClass.Context, context.ContextOuterClass.Context.Builder, context.ContextOuterClass.ContextOrBuilder> - getContextsFieldBuilder() { - if (contextsBuilder_ == null) { - contextsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< - context.ContextOuterClass.Context, context.ContextOuterClass.Context.Builder, context.ContextOuterClass.ContextOrBuilder>( - contexts_, - ((bitField0_ & 0x00000001) != 0), - getParentForChildren(), - isClean()); - contexts_ = null; - } - return contextsBuilder_; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:context.ContextList) - } + @java.lang.Override + public context.ContextOuterClass.Timestamp getDefaultInstanceForType() { + return context.ContextOuterClass.Timestamp.getDefaultInstance(); + } - // @@protoc_insertion_point(class_scope:context.ContextList) - private static final context.ContextOuterClass.ContextList DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new context.ContextOuterClass.ContextList(); - } + @java.lang.Override + public context.ContextOuterClass.Timestamp build() { + context.ContextOuterClass.Timestamp result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } - public static context.ContextOuterClass.ContextList getDefaultInstance() { - return DEFAULT_INSTANCE; - } + @java.lang.Override + public context.ContextOuterClass.Timestamp buildPartial() { + context.ContextOuterClass.Timestamp result = new context.ContextOuterClass.Timestamp(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public ContextList parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new ContextList(input, extensionRegistry); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } + private void buildPartial0(context.ContextOuterClass.Timestamp result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.timestamp_ = timestamp_; + } + } - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.Timestamp) { + return mergeFrom((context.ContextOuterClass.Timestamp) other); + } else { + super.mergeFrom(other); + return this; + } + } - @java.lang.Override - public context.ContextOuterClass.ContextList getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } + public Builder mergeFrom(context.ContextOuterClass.Timestamp other) { + if (other == context.ContextOuterClass.Timestamp.getDefaultInstance()) + return this; + if (other.getTimestamp() != 0D) { + setTimestamp(other.getTimestamp()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } - } + @java.lang.Override + public final boolean isInitialized() { + return true; + } - public interface ContextEventOrBuilder extends - // @@protoc_insertion_point(interface_extends:context.ContextEvent) - com.google.protobuf.MessageOrBuilder { + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 9: + { + timestamp_ = input.readDouble(); + bitField0_ |= 0x00000001; + break; + } + // case 9 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } - /** - * .context.Event event = 1; - * @return Whether the event field is set. - */ - boolean hasEvent(); - /** - * .context.Event event = 1; - * @return The event. - */ - context.ContextOuterClass.Event getEvent(); - /** - * .context.Event event = 1; - */ - context.ContextOuterClass.EventOrBuilder getEventOrBuilder(); + private int bitField0_; - /** - * .context.ContextId context_id = 2; - * @return Whether the contextId field is set. - */ - boolean hasContextId(); - /** - * .context.ContextId context_id = 2; - * @return The contextId. - */ - context.ContextOuterClass.ContextId getContextId(); - /** - * .context.ContextId context_id = 2; - */ - context.ContextOuterClass.ContextIdOrBuilder getContextIdOrBuilder(); - } - /** - * Protobuf type {@code context.ContextEvent} - */ - public static final class ContextEvent extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:context.ContextEvent) - ContextEventOrBuilder { - private static final long serialVersionUID = 0L; - // Use ContextEvent.newBuilder() to construct. - private ContextEvent(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private ContextEvent() { - } + private double timestamp_; - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new ContextEvent(); - } + /** + * double timestamp = 1; + * @return The timestamp. + */ + @java.lang.Override + public double getTimestamp() { + return timestamp_; + } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private ContextEvent( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = - com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - context.ContextOuterClass.Event.Builder subBuilder = null; - if (event_ != null) { - subBuilder = event_.toBuilder(); - } - event_ = input.readMessage(context.ContextOuterClass.Event.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(event_); - event_ = subBuilder.buildPartial(); - } - - break; - } - case 18: { - context.ContextOuterClass.ContextId.Builder subBuilder = null; - if (contextId_ != null) { - subBuilder = contextId_.toBuilder(); - } - contextId_ = input.readMessage(context.ContextOuterClass.ContextId.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(contextId_); - contextId_ = subBuilder.buildPartial(); - } - - break; - } - default: { - if (!parseUnknownField( - input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException( - e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return context.ContextOuterClass.internal_static_context_ContextEvent_descriptor; - } + /** + * double timestamp = 1; + * @param value The timestamp to set. + * @return This builder for chaining. + */ + public Builder setTimestamp(double value) { + timestamp_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_ContextEvent_fieldAccessorTable - .ensureFieldAccessorsInitialized( - context.ContextOuterClass.ContextEvent.class, context.ContextOuterClass.ContextEvent.Builder.class); - } + /** + * double timestamp = 1; + * @return This builder for chaining. + */ + public Builder clearTimestamp() { + bitField0_ = (bitField0_ & ~0x00000001); + timestamp_ = 0D; + onChanged(); + return this; + } - public static final int EVENT_FIELD_NUMBER = 1; - private context.ContextOuterClass.Event event_; - /** - * .context.Event event = 1; - * @return Whether the event field is set. - */ - @java.lang.Override - public boolean hasEvent() { - return event_ != null; - } - /** - * .context.Event event = 1; - * @return The event. - */ - @java.lang.Override - public context.ContextOuterClass.Event getEvent() { - return event_ == null ? context.ContextOuterClass.Event.getDefaultInstance() : event_; - } - /** - * .context.Event event = 1; - */ - @java.lang.Override - public context.ContextOuterClass.EventOrBuilder getEventOrBuilder() { - return getEvent(); - } + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } - public static final int CONTEXT_ID_FIELD_NUMBER = 2; - private context.ContextOuterClass.ContextId contextId_; - /** - * .context.ContextId context_id = 2; - * @return Whether the contextId field is set. - */ - @java.lang.Override - public boolean hasContextId() { - return contextId_ != null; - } - /** - * .context.ContextId context_id = 2; - * @return The contextId. - */ - @java.lang.Override - public context.ContextOuterClass.ContextId getContextId() { - return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_; - } - /** - * .context.ContextId context_id = 2; - */ - @java.lang.Override - public context.ContextOuterClass.ContextIdOrBuilder getContextIdOrBuilder() { - return getContextId(); - } + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.Timestamp) + } - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; + // @@protoc_insertion_point(class_scope:context.Timestamp) + private static final context.ContextOuterClass.Timestamp DEFAULT_INSTANCE; - memoizedIsInitialized = 1; - return true; - } + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.Timestamp(); + } - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (event_ != null) { - output.writeMessage(1, getEvent()); - } - if (contextId_ != null) { - output.writeMessage(2, getContextId()); - } - unknownFields.writeTo(output); - } + public static context.ContextOuterClass.Timestamp getDefaultInstance() { + return DEFAULT_INSTANCE; + } - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (event_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(1, getEvent()); - } - if (contextId_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(2, getContextId()); - } - size += unknownFields.getSerializedSize(); - memoizedSize = size; - return size; - } + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof context.ContextOuterClass.ContextEvent)) { - return super.equals(obj); - } - context.ContextOuterClass.ContextEvent other = (context.ContextOuterClass.ContextEvent) obj; - - if (hasEvent() != other.hasEvent()) return false; - if (hasEvent()) { - if (!getEvent() - .equals(other.getEvent())) return false; - } - if (hasContextId() != other.hasContextId()) return false; - if (hasContextId()) { - if (!getContextId() - .equals(other.getContextId())) return false; - } - if (!unknownFields.equals(other.unknownFields)) return false; - return true; - } + @java.lang.Override + public Timestamp parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - if (hasEvent()) { - hash = (37 * hash) + EVENT_FIELD_NUMBER; - hash = (53 * hash) + getEvent().hashCode(); - } - if (hasContextId()) { - hash = (37 * hash) + CONTEXT_ID_FIELD_NUMBER; - hash = (53 * hash) + getContextId().hashCode(); - } - hash = (29 * hash) + unknownFields.hashCode(); - memoizedHashCode = hash; - return hash; - } + public static com.google.protobuf.Parser parser() { + return PARSER; + } - public static context.ContextOuterClass.ContextEvent parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static context.ContextOuterClass.ContextEvent parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static context.ContextOuterClass.ContextEvent parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static context.ContextOuterClass.ContextEvent parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static context.ContextOuterClass.ContextEvent parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static context.ContextOuterClass.ContextEvent parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static context.ContextOuterClass.ContextEvent parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static context.ContextOuterClass.ContextEvent parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - public static context.ContextOuterClass.ContextEvent parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - public static context.ContextOuterClass.ContextEvent parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static context.ContextOuterClass.ContextEvent parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static context.ContextOuterClass.ContextEvent parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(context.ContextOuterClass.ContextEvent prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); + @java.lang.Override + public context.ContextOuterClass.Timestamp getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } } - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code context.ContextEvent} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:context.ContextEvent) - context.ContextOuterClass.ContextEventOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return context.ContextOuterClass.internal_static_context_ContextEvent_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_ContextEvent_fieldAccessorTable - .ensureFieldAccessorsInitialized( - context.ContextOuterClass.ContextEvent.class, context.ContextOuterClass.ContextEvent.Builder.class); - } - - // Construct using context.ContextOuterClass.ContextEvent.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3 - .alwaysUseFieldBuilders) { - } - } - @java.lang.Override - public Builder clear() { - super.clear(); - if (eventBuilder_ == null) { - event_ = null; - } else { - event_ = null; - eventBuilder_ = null; - } - if (contextIdBuilder_ == null) { - contextId_ = null; - } else { - contextId_ = null; - contextIdBuilder_ = null; - } - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return context.ContextOuterClass.internal_static_context_ContextEvent_descriptor; - } - - @java.lang.Override - public context.ContextOuterClass.ContextEvent getDefaultInstanceForType() { - return context.ContextOuterClass.ContextEvent.getDefaultInstance(); - } - - @java.lang.Override - public context.ContextOuterClass.ContextEvent build() { - context.ContextOuterClass.ContextEvent result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public context.ContextOuterClass.ContextEvent buildPartial() { - context.ContextOuterClass.ContextEvent result = new context.ContextOuterClass.ContextEvent(this); - if (eventBuilder_ == null) { - result.event_ = event_; - } else { - result.event_ = eventBuilder_.build(); - } - if (contextIdBuilder_ == null) { - result.contextId_ = contextId_; - } else { - result.contextId_ = contextIdBuilder_.build(); - } - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof context.ContextOuterClass.ContextEvent) { - return mergeFrom((context.ContextOuterClass.ContextEvent)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(context.ContextOuterClass.ContextEvent other) { - if (other == context.ContextOuterClass.ContextEvent.getDefaultInstance()) return this; - if (other.hasEvent()) { - mergeEvent(other.getEvent()); - } - if (other.hasContextId()) { - mergeContextId(other.getContextId()); - } - this.mergeUnknownFields(other.unknownFields); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - context.ContextOuterClass.ContextEvent parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.ContextEvent) e.getUnfinishedMessage(); - throw e.unwrapIOException(); - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - - private context.ContextOuterClass.Event event_; - private com.google.protobuf.SingleFieldBuilderV3< - context.ContextOuterClass.Event, context.ContextOuterClass.Event.Builder, context.ContextOuterClass.EventOrBuilder> eventBuilder_; - /** - * .context.Event event = 1; - * @return Whether the event field is set. - */ - public boolean hasEvent() { - return eventBuilder_ != null || event_ != null; - } - /** - * .context.Event event = 1; - * @return The event. - */ - public context.ContextOuterClass.Event getEvent() { - if (eventBuilder_ == null) { - return event_ == null ? context.ContextOuterClass.Event.getDefaultInstance() : event_; - } else { - return eventBuilder_.getMessage(); - } - } - /** - * .context.Event event = 1; - */ - public Builder setEvent(context.ContextOuterClass.Event value) { - if (eventBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - event_ = value; - onChanged(); - } else { - eventBuilder_.setMessage(value); - } - - return this; - } - /** - * .context.Event event = 1; - */ - public Builder setEvent( - context.ContextOuterClass.Event.Builder builderForValue) { - if (eventBuilder_ == null) { - event_ = builderForValue.build(); - onChanged(); - } else { - eventBuilder_.setMessage(builderForValue.build()); - } - - return this; - } - /** - * .context.Event event = 1; - */ - public Builder mergeEvent(context.ContextOuterClass.Event value) { - if (eventBuilder_ == null) { - if (event_ != null) { - event_ = - context.ContextOuterClass.Event.newBuilder(event_).mergeFrom(value).buildPartial(); - } else { - event_ = value; - } - onChanged(); - } else { - eventBuilder_.mergeFrom(value); - } - - return this; - } - /** - * .context.Event event = 1; - */ - public Builder clearEvent() { - if (eventBuilder_ == null) { - event_ = null; - onChanged(); - } else { - event_ = null; - eventBuilder_ = null; - } - - return this; - } - /** - * .context.Event event = 1; - */ - public context.ContextOuterClass.Event.Builder getEventBuilder() { - - onChanged(); - return getEventFieldBuilder().getBuilder(); - } - /** - * .context.Event event = 1; - */ - public context.ContextOuterClass.EventOrBuilder getEventOrBuilder() { - if (eventBuilder_ != null) { - return eventBuilder_.getMessageOrBuilder(); - } else { - return event_ == null ? - context.ContextOuterClass.Event.getDefaultInstance() : event_; - } - } - /** - * .context.Event event = 1; - */ - private com.google.protobuf.SingleFieldBuilderV3< - context.ContextOuterClass.Event, context.ContextOuterClass.Event.Builder, context.ContextOuterClass.EventOrBuilder> - getEventFieldBuilder() { - if (eventBuilder_ == null) { - eventBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - context.ContextOuterClass.Event, context.ContextOuterClass.Event.Builder, context.ContextOuterClass.EventOrBuilder>( - getEvent(), - getParentForChildren(), - isClean()); - event_ = null; - } - return eventBuilder_; - } - - private context.ContextOuterClass.ContextId contextId_; - private com.google.protobuf.SingleFieldBuilderV3< - context.ContextOuterClass.ContextId, context.ContextOuterClass.ContextId.Builder, context.ContextOuterClass.ContextIdOrBuilder> contextIdBuilder_; - /** - * .context.ContextId context_id = 2; - * @return Whether the contextId field is set. - */ - public boolean hasContextId() { - return contextIdBuilder_ != null || contextId_ != null; - } - /** - * .context.ContextId context_id = 2; - * @return The contextId. - */ - public context.ContextOuterClass.ContextId getContextId() { - if (contextIdBuilder_ == null) { - return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_; - } else { - return contextIdBuilder_.getMessage(); - } - } - /** - * .context.ContextId context_id = 2; - */ - public Builder setContextId(context.ContextOuterClass.ContextId value) { - if (contextIdBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - contextId_ = value; - onChanged(); - } else { - contextIdBuilder_.setMessage(value); - } - - return this; - } - /** - * .context.ContextId context_id = 2; - */ - public Builder setContextId( - context.ContextOuterClass.ContextId.Builder builderForValue) { - if (contextIdBuilder_ == null) { - contextId_ = builderForValue.build(); - onChanged(); - } else { - contextIdBuilder_.setMessage(builderForValue.build()); - } - - return this; - } - /** - * .context.ContextId context_id = 2; - */ - public Builder mergeContextId(context.ContextOuterClass.ContextId value) { - if (contextIdBuilder_ == null) { - if (contextId_ != null) { - contextId_ = - context.ContextOuterClass.ContextId.newBuilder(contextId_).mergeFrom(value).buildPartial(); - } else { - contextId_ = value; - } - onChanged(); - } else { - contextIdBuilder_.mergeFrom(value); - } - - return this; - } - /** - * .context.ContextId context_id = 2; - */ - public Builder clearContextId() { - if (contextIdBuilder_ == null) { - contextId_ = null; - onChanged(); - } else { - contextId_ = null; - contextIdBuilder_ = null; - } - - return this; - } - /** - * .context.ContextId context_id = 2; - */ - public context.ContextOuterClass.ContextId.Builder getContextIdBuilder() { - - onChanged(); - return getContextIdFieldBuilder().getBuilder(); - } - /** - * .context.ContextId context_id = 2; - */ - public context.ContextOuterClass.ContextIdOrBuilder getContextIdOrBuilder() { - if (contextIdBuilder_ != null) { - return contextIdBuilder_.getMessageOrBuilder(); - } else { - return contextId_ == null ? - context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_; - } - } - /** - * .context.ContextId context_id = 2; - */ - private com.google.protobuf.SingleFieldBuilderV3< - context.ContextOuterClass.ContextId, context.ContextOuterClass.ContextId.Builder, context.ContextOuterClass.ContextIdOrBuilder> - getContextIdFieldBuilder() { - if (contextIdBuilder_ == null) { - contextIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - context.ContextOuterClass.ContextId, context.ContextOuterClass.ContextId.Builder, context.ContextOuterClass.ContextIdOrBuilder>( - getContextId(), - getParentForChildren(), - isClean()); - contextId_ = null; - } - return contextIdBuilder_; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:context.ContextEvent) - } + public interface EventOrBuilder extends // @@protoc_insertion_point(interface_extends:context.Event) + com.google.protobuf.MessageOrBuilder { - // @@protoc_insertion_point(class_scope:context.ContextEvent) - private static final context.ContextOuterClass.ContextEvent DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new context.ContextOuterClass.ContextEvent(); - } + /** + * .context.Timestamp timestamp = 1; + * @return Whether the timestamp field is set. + */ + boolean hasTimestamp(); - public static context.ContextOuterClass.ContextEvent getDefaultInstance() { - return DEFAULT_INSTANCE; - } + /** + * .context.Timestamp timestamp = 1; + * @return The timestamp. + */ + context.ContextOuterClass.Timestamp getTimestamp(); - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public ContextEvent parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new ContextEvent(input, extensionRegistry); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } + /** + * .context.Timestamp timestamp = 1; + */ + context.ContextOuterClass.TimestampOrBuilder getTimestampOrBuilder(); - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } + /** + * .context.EventTypeEnum event_type = 2; + * @return The enum numeric value on the wire for eventType. + */ + int getEventTypeValue(); - @java.lang.Override - public context.ContextOuterClass.ContextEvent getDefaultInstanceForType() { - return DEFAULT_INSTANCE; + /** + * .context.EventTypeEnum event_type = 2; + * @return The eventType. + */ + context.ContextOuterClass.EventTypeEnum getEventType(); } - } - - public interface TopologyIdOrBuilder extends - // @@protoc_insertion_point(interface_extends:context.TopologyId) - com.google.protobuf.MessageOrBuilder { - - /** - * .context.ContextId context_id = 1; - * @return Whether the contextId field is set. - */ - boolean hasContextId(); - /** - * .context.ContextId context_id = 1; - * @return The contextId. - */ - context.ContextOuterClass.ContextId getContextId(); /** - * .context.ContextId context_id = 1; + * Protobuf type {@code context.Event} */ - context.ContextOuterClass.ContextIdOrBuilder getContextIdOrBuilder(); + public static final class Event extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.Event) + EventOrBuilder { - /** - * .context.Uuid topology_uuid = 2; - * @return Whether the topologyUuid field is set. - */ - boolean hasTopologyUuid(); - /** - * .context.Uuid topology_uuid = 2; - * @return The topologyUuid. - */ - context.ContextOuterClass.Uuid getTopologyUuid(); - /** - * .context.Uuid topology_uuid = 2; - */ - context.ContextOuterClass.UuidOrBuilder getTopologyUuidOrBuilder(); - } - /** - *
-   * ----- Topology ------------------------------------------------------------------------------------------------------
-   * 
- * - * Protobuf type {@code context.TopologyId} - */ - public static final class TopologyId extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:context.TopologyId) - TopologyIdOrBuilder { - private static final long serialVersionUID = 0L; - // Use TopologyId.newBuilder() to construct. - private TopologyId(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private TopologyId() { - } + private static final long serialVersionUID = 0L; - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new TopologyId(); - } + // Use Event.newBuilder() to construct. + private Event(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private TopologyId( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = - com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - context.ContextOuterClass.ContextId.Builder subBuilder = null; - if (contextId_ != null) { - subBuilder = contextId_.toBuilder(); - } - contextId_ = input.readMessage(context.ContextOuterClass.ContextId.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(contextId_); - contextId_ = subBuilder.buildPartial(); - } - - break; - } - case 18: { - context.ContextOuterClass.Uuid.Builder subBuilder = null; - if (topologyUuid_ != null) { - subBuilder = topologyUuid_.toBuilder(); - } - topologyUuid_ = input.readMessage(context.ContextOuterClass.Uuid.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(topologyUuid_); - topologyUuid_ = subBuilder.buildPartial(); - } - - break; - } - default: { - if (!parseUnknownField( - input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException( - e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return context.ContextOuterClass.internal_static_context_TopologyId_descriptor; - } + private Event() { + eventType_ = 0; + } - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_TopologyId_fieldAccessorTable - .ensureFieldAccessorsInitialized( - context.ContextOuterClass.TopologyId.class, context.ContextOuterClass.TopologyId.Builder.class); - } + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new Event(); + } - public static final int CONTEXT_ID_FIELD_NUMBER = 1; - private context.ContextOuterClass.ContextId contextId_; - /** - * .context.ContextId context_id = 1; - * @return Whether the contextId field is set. - */ - @java.lang.Override - public boolean hasContextId() { - return contextId_ != null; - } - /** - * .context.ContextId context_id = 1; - * @return The contextId. - */ - @java.lang.Override - public context.ContextOuterClass.ContextId getContextId() { - return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_; - } - /** - * .context.ContextId context_id = 1; - */ - @java.lang.Override - public context.ContextOuterClass.ContextIdOrBuilder getContextIdOrBuilder() { - return getContextId(); - } + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_Event_descriptor; + } - public static final int TOPOLOGY_UUID_FIELD_NUMBER = 2; - private context.ContextOuterClass.Uuid topologyUuid_; - /** - * .context.Uuid topology_uuid = 2; - * @return Whether the topologyUuid field is set. - */ - @java.lang.Override - public boolean hasTopologyUuid() { - return topologyUuid_ != null; - } - /** - * .context.Uuid topology_uuid = 2; - * @return The topologyUuid. - */ - @java.lang.Override - public context.ContextOuterClass.Uuid getTopologyUuid() { - return topologyUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : topologyUuid_; - } - /** - * .context.Uuid topology_uuid = 2; - */ - @java.lang.Override - public context.ContextOuterClass.UuidOrBuilder getTopologyUuidOrBuilder() { - return getTopologyUuid(); - } + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_Event_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.Event.class, context.ContextOuterClass.Event.Builder.class); + } - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; + public static final int TIMESTAMP_FIELD_NUMBER = 1; - memoizedIsInitialized = 1; - return true; - } + private context.ContextOuterClass.Timestamp timestamp_; - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (contextId_ != null) { - output.writeMessage(1, getContextId()); - } - if (topologyUuid_ != null) { - output.writeMessage(2, getTopologyUuid()); - } - unknownFields.writeTo(output); - } + /** + * .context.Timestamp timestamp = 1; + * @return Whether the timestamp field is set. + */ + @java.lang.Override + public boolean hasTimestamp() { + return timestamp_ != null; + } - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (contextId_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(1, getContextId()); - } - if (topologyUuid_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(2, getTopologyUuid()); - } - size += unknownFields.getSerializedSize(); - memoizedSize = size; - return size; - } + /** + * .context.Timestamp timestamp = 1; + * @return The timestamp. + */ + @java.lang.Override + public context.ContextOuterClass.Timestamp getTimestamp() { + return timestamp_ == null ? context.ContextOuterClass.Timestamp.getDefaultInstance() : timestamp_; + } - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof context.ContextOuterClass.TopologyId)) { - return super.equals(obj); - } - context.ContextOuterClass.TopologyId other = (context.ContextOuterClass.TopologyId) obj; - - if (hasContextId() != other.hasContextId()) return false; - if (hasContextId()) { - if (!getContextId() - .equals(other.getContextId())) return false; - } - if (hasTopologyUuid() != other.hasTopologyUuid()) return false; - if (hasTopologyUuid()) { - if (!getTopologyUuid() - .equals(other.getTopologyUuid())) return false; - } - if (!unknownFields.equals(other.unknownFields)) return false; - return true; - } + /** + * .context.Timestamp timestamp = 1; + */ + @java.lang.Override + public context.ContextOuterClass.TimestampOrBuilder getTimestampOrBuilder() { + return timestamp_ == null ? context.ContextOuterClass.Timestamp.getDefaultInstance() : timestamp_; + } - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - if (hasContextId()) { - hash = (37 * hash) + CONTEXT_ID_FIELD_NUMBER; - hash = (53 * hash) + getContextId().hashCode(); - } - if (hasTopologyUuid()) { - hash = (37 * hash) + TOPOLOGY_UUID_FIELD_NUMBER; - hash = (53 * hash) + getTopologyUuid().hashCode(); - } - hash = (29 * hash) + unknownFields.hashCode(); - memoizedHashCode = hash; - return hash; - } + public static final int EVENT_TYPE_FIELD_NUMBER = 2; - public static context.ContextOuterClass.TopologyId parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static context.ContextOuterClass.TopologyId parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static context.ContextOuterClass.TopologyId parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static context.ContextOuterClass.TopologyId parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static context.ContextOuterClass.TopologyId parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static context.ContextOuterClass.TopologyId parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static context.ContextOuterClass.TopologyId parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static context.ContextOuterClass.TopologyId parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - public static context.ContextOuterClass.TopologyId parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - public static context.ContextOuterClass.TopologyId parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static context.ContextOuterClass.TopologyId parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static context.ContextOuterClass.TopologyId parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } + private int eventType_ = 0; - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(context.ContextOuterClass.TopologyId prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } + /** + * .context.EventTypeEnum event_type = 2; + * @return The enum numeric value on the wire for eventType. + */ + @java.lang.Override + public int getEventTypeValue() { + return eventType_; + } - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - *
-     * ----- Topology ------------------------------------------------------------------------------------------------------
-     * 
- * - * Protobuf type {@code context.TopologyId} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:context.TopologyId) - context.ContextOuterClass.TopologyIdOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return context.ContextOuterClass.internal_static_context_TopologyId_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_TopologyId_fieldAccessorTable - .ensureFieldAccessorsInitialized( - context.ContextOuterClass.TopologyId.class, context.ContextOuterClass.TopologyId.Builder.class); - } - - // Construct using context.ContextOuterClass.TopologyId.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3 - .alwaysUseFieldBuilders) { - } - } - @java.lang.Override - public Builder clear() { - super.clear(); - if (contextIdBuilder_ == null) { - contextId_ = null; - } else { - contextId_ = null; - contextIdBuilder_ = null; - } - if (topologyUuidBuilder_ == null) { - topologyUuid_ = null; - } else { - topologyUuid_ = null; - topologyUuidBuilder_ = null; - } - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return context.ContextOuterClass.internal_static_context_TopologyId_descriptor; - } - - @java.lang.Override - public context.ContextOuterClass.TopologyId getDefaultInstanceForType() { - return context.ContextOuterClass.TopologyId.getDefaultInstance(); - } - - @java.lang.Override - public context.ContextOuterClass.TopologyId build() { - context.ContextOuterClass.TopologyId result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public context.ContextOuterClass.TopologyId buildPartial() { - context.ContextOuterClass.TopologyId result = new context.ContextOuterClass.TopologyId(this); - if (contextIdBuilder_ == null) { - result.contextId_ = contextId_; - } else { - result.contextId_ = contextIdBuilder_.build(); - } - if (topologyUuidBuilder_ == null) { - result.topologyUuid_ = topologyUuid_; - } else { - result.topologyUuid_ = topologyUuidBuilder_.build(); - } - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof context.ContextOuterClass.TopologyId) { - return mergeFrom((context.ContextOuterClass.TopologyId)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(context.ContextOuterClass.TopologyId other) { - if (other == context.ContextOuterClass.TopologyId.getDefaultInstance()) return this; - if (other.hasContextId()) { - mergeContextId(other.getContextId()); - } - if (other.hasTopologyUuid()) { - mergeTopologyUuid(other.getTopologyUuid()); - } - this.mergeUnknownFields(other.unknownFields); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - context.ContextOuterClass.TopologyId parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.TopologyId) e.getUnfinishedMessage(); - throw e.unwrapIOException(); - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - - private context.ContextOuterClass.ContextId contextId_; - private com.google.protobuf.SingleFieldBuilderV3< - context.ContextOuterClass.ContextId, context.ContextOuterClass.ContextId.Builder, context.ContextOuterClass.ContextIdOrBuilder> contextIdBuilder_; - /** - * .context.ContextId context_id = 1; - * @return Whether the contextId field is set. - */ - public boolean hasContextId() { - return contextIdBuilder_ != null || contextId_ != null; - } - /** - * .context.ContextId context_id = 1; - * @return The contextId. - */ - public context.ContextOuterClass.ContextId getContextId() { - if (contextIdBuilder_ == null) { - return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_; - } else { - return contextIdBuilder_.getMessage(); - } - } - /** - * .context.ContextId context_id = 1; - */ - public Builder setContextId(context.ContextOuterClass.ContextId value) { - if (contextIdBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - contextId_ = value; - onChanged(); - } else { - contextIdBuilder_.setMessage(value); - } - - return this; - } - /** - * .context.ContextId context_id = 1; - */ - public Builder setContextId( - context.ContextOuterClass.ContextId.Builder builderForValue) { - if (contextIdBuilder_ == null) { - contextId_ = builderForValue.build(); - onChanged(); - } else { - contextIdBuilder_.setMessage(builderForValue.build()); - } - - return this; - } - /** - * .context.ContextId context_id = 1; - */ - public Builder mergeContextId(context.ContextOuterClass.ContextId value) { - if (contextIdBuilder_ == null) { - if (contextId_ != null) { - contextId_ = - context.ContextOuterClass.ContextId.newBuilder(contextId_).mergeFrom(value).buildPartial(); - } else { - contextId_ = value; - } - onChanged(); - } else { - contextIdBuilder_.mergeFrom(value); - } - - return this; - } - /** - * .context.ContextId context_id = 1; - */ - public Builder clearContextId() { - if (contextIdBuilder_ == null) { - contextId_ = null; - onChanged(); - } else { - contextId_ = null; - contextIdBuilder_ = null; - } - - return this; - } - /** - * .context.ContextId context_id = 1; - */ - public context.ContextOuterClass.ContextId.Builder getContextIdBuilder() { - - onChanged(); - return getContextIdFieldBuilder().getBuilder(); - } - /** - * .context.ContextId context_id = 1; - */ - public context.ContextOuterClass.ContextIdOrBuilder getContextIdOrBuilder() { - if (contextIdBuilder_ != null) { - return contextIdBuilder_.getMessageOrBuilder(); - } else { - return contextId_ == null ? - context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_; - } - } - /** - * .context.ContextId context_id = 1; - */ - private com.google.protobuf.SingleFieldBuilderV3< - context.ContextOuterClass.ContextId, context.ContextOuterClass.ContextId.Builder, context.ContextOuterClass.ContextIdOrBuilder> - getContextIdFieldBuilder() { - if (contextIdBuilder_ == null) { - contextIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - context.ContextOuterClass.ContextId, context.ContextOuterClass.ContextId.Builder, context.ContextOuterClass.ContextIdOrBuilder>( - getContextId(), - getParentForChildren(), - isClean()); - contextId_ = null; - } - return contextIdBuilder_; - } - - private context.ContextOuterClass.Uuid topologyUuid_; - private com.google.protobuf.SingleFieldBuilderV3< - context.ContextOuterClass.Uuid, context.ContextOuterClass.Uuid.Builder, context.ContextOuterClass.UuidOrBuilder> topologyUuidBuilder_; - /** - * .context.Uuid topology_uuid = 2; - * @return Whether the topologyUuid field is set. - */ - public boolean hasTopologyUuid() { - return topologyUuidBuilder_ != null || topologyUuid_ != null; - } - /** - * .context.Uuid topology_uuid = 2; - * @return The topologyUuid. - */ - public context.ContextOuterClass.Uuid getTopologyUuid() { - if (topologyUuidBuilder_ == null) { - return topologyUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : topologyUuid_; - } else { - return topologyUuidBuilder_.getMessage(); - } - } - /** - * .context.Uuid topology_uuid = 2; - */ - public Builder setTopologyUuid(context.ContextOuterClass.Uuid value) { - if (topologyUuidBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - topologyUuid_ = value; - onChanged(); - } else { - topologyUuidBuilder_.setMessage(value); - } - - return this; - } - /** - * .context.Uuid topology_uuid = 2; - */ - public Builder setTopologyUuid( - context.ContextOuterClass.Uuid.Builder builderForValue) { - if (topologyUuidBuilder_ == null) { - topologyUuid_ = builderForValue.build(); - onChanged(); - } else { - topologyUuidBuilder_.setMessage(builderForValue.build()); - } - - return this; - } - /** - * .context.Uuid topology_uuid = 2; - */ - public Builder mergeTopologyUuid(context.ContextOuterClass.Uuid value) { - if (topologyUuidBuilder_ == null) { - if (topologyUuid_ != null) { - topologyUuid_ = - context.ContextOuterClass.Uuid.newBuilder(topologyUuid_).mergeFrom(value).buildPartial(); - } else { - topologyUuid_ = value; - } - onChanged(); - } else { - topologyUuidBuilder_.mergeFrom(value); - } - - return this; - } - /** - * .context.Uuid topology_uuid = 2; - */ - public Builder clearTopologyUuid() { - if (topologyUuidBuilder_ == null) { - topologyUuid_ = null; - onChanged(); - } else { - topologyUuid_ = null; - topologyUuidBuilder_ = null; - } - - return this; - } - /** - * .context.Uuid topology_uuid = 2; - */ - public context.ContextOuterClass.Uuid.Builder getTopologyUuidBuilder() { - - onChanged(); - return getTopologyUuidFieldBuilder().getBuilder(); - } - /** - * .context.Uuid topology_uuid = 2; - */ - public context.ContextOuterClass.UuidOrBuilder getTopologyUuidOrBuilder() { - if (topologyUuidBuilder_ != null) { - return topologyUuidBuilder_.getMessageOrBuilder(); - } else { - return topologyUuid_ == null ? - context.ContextOuterClass.Uuid.getDefaultInstance() : topologyUuid_; - } - } - /** - * .context.Uuid topology_uuid = 2; - */ - private com.google.protobuf.SingleFieldBuilderV3< - context.ContextOuterClass.Uuid, context.ContextOuterClass.Uuid.Builder, context.ContextOuterClass.UuidOrBuilder> - getTopologyUuidFieldBuilder() { - if (topologyUuidBuilder_ == null) { - topologyUuidBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - context.ContextOuterClass.Uuid, context.ContextOuterClass.Uuid.Builder, context.ContextOuterClass.UuidOrBuilder>( - getTopologyUuid(), - getParentForChildren(), - isClean()); - topologyUuid_ = null; - } - return topologyUuidBuilder_; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:context.TopologyId) - } + /** + * .context.EventTypeEnum event_type = 2; + * @return The eventType. + */ + @java.lang.Override + public context.ContextOuterClass.EventTypeEnum getEventType() { + context.ContextOuterClass.EventTypeEnum result = context.ContextOuterClass.EventTypeEnum.forNumber(eventType_); + return result == null ? context.ContextOuterClass.EventTypeEnum.UNRECOGNIZED : result; + } - // @@protoc_insertion_point(class_scope:context.TopologyId) - private static final context.ContextOuterClass.TopologyId DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new context.ContextOuterClass.TopologyId(); - } + private byte memoizedIsInitialized = -1; - public static context.ContextOuterClass.TopologyId getDefaultInstance() { - return DEFAULT_INSTANCE; - } + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public TopologyId parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new TopologyId(input, extensionRegistry); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (timestamp_ != null) { + output.writeMessage(1, getTimestamp()); + } + if (eventType_ != context.ContextOuterClass.EventTypeEnum.EVENTTYPE_UNDEFINED.getNumber()) { + output.writeEnum(2, eventType_); + } + getUnknownFields().writeTo(output); + } - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + if (timestamp_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getTimestamp()); + } + if (eventType_ != context.ContextOuterClass.EventTypeEnum.EVENTTYPE_UNDEFINED.getNumber()) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(2, eventType_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } - @java.lang.Override - public context.ContextOuterClass.TopologyId getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.Event)) { + return super.equals(obj); + } + context.ContextOuterClass.Event other = (context.ContextOuterClass.Event) obj; + if (hasTimestamp() != other.hasTimestamp()) + return false; + if (hasTimestamp()) { + if (!getTimestamp().equals(other.getTimestamp())) + return false; + } + if (eventType_ != other.eventType_) + return false; + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } - } + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasTimestamp()) { + hash = (37 * hash) + TIMESTAMP_FIELD_NUMBER; + hash = (53 * hash) + getTimestamp().hashCode(); + } + hash = (37 * hash) + EVENT_TYPE_FIELD_NUMBER; + hash = (53 * hash) + eventType_; + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } - public interface TopologyOrBuilder extends - // @@protoc_insertion_point(interface_extends:context.Topology) - com.google.protobuf.MessageOrBuilder { + public static context.ContextOuterClass.Event parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } - /** - * .context.TopologyId topology_id = 1; - * @return Whether the topologyId field is set. - */ - boolean hasTopologyId(); - /** - * .context.TopologyId topology_id = 1; - * @return The topologyId. - */ - context.ContextOuterClass.TopologyId getTopologyId(); - /** - * .context.TopologyId topology_id = 1; - */ - context.ContextOuterClass.TopologyIdOrBuilder getTopologyIdOrBuilder(); + public static context.ContextOuterClass.Event parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } - /** - * string name = 2; - * @return The name. - */ - java.lang.String getName(); - /** - * string name = 2; - * @return The bytes for name. - */ - com.google.protobuf.ByteString - getNameBytes(); + public static context.ContextOuterClass.Event parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } - /** - * repeated .context.DeviceId device_ids = 3; - */ - java.util.List - getDeviceIdsList(); - /** - * repeated .context.DeviceId device_ids = 3; - */ - context.ContextOuterClass.DeviceId getDeviceIds(int index); - /** - * repeated .context.DeviceId device_ids = 3; - */ - int getDeviceIdsCount(); - /** - * repeated .context.DeviceId device_ids = 3; - */ - java.util.List - getDeviceIdsOrBuilderList(); - /** - * repeated .context.DeviceId device_ids = 3; - */ - context.ContextOuterClass.DeviceIdOrBuilder getDeviceIdsOrBuilder( - int index); + public static context.ContextOuterClass.Event parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } - /** - * repeated .context.LinkId link_ids = 4; - */ - java.util.List - getLinkIdsList(); - /** - * repeated .context.LinkId link_ids = 4; - */ - context.ContextOuterClass.LinkId getLinkIds(int index); - /** - * repeated .context.LinkId link_ids = 4; - */ - int getLinkIdsCount(); - /** - * repeated .context.LinkId link_ids = 4; - */ - java.util.List - getLinkIdsOrBuilderList(); - /** - * repeated .context.LinkId link_ids = 4; - */ - context.ContextOuterClass.LinkIdOrBuilder getLinkIdsOrBuilder( - int index); - } - /** - * Protobuf type {@code context.Topology} - */ - public static final class Topology extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:context.Topology) - TopologyOrBuilder { - private static final long serialVersionUID = 0L; - // Use Topology.newBuilder() to construct. - private Topology(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private Topology() { - name_ = ""; - deviceIds_ = java.util.Collections.emptyList(); - linkIds_ = java.util.Collections.emptyList(); - } + public static context.ContextOuterClass.Event parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new Topology(); - } + public static context.ContextOuterClass.Event parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private Topology( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - int mutable_bitField0_ = 0; - com.google.protobuf.UnknownFieldSet.Builder unknownFields = - com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - context.ContextOuterClass.TopologyId.Builder subBuilder = null; - if (topologyId_ != null) { - subBuilder = topologyId_.toBuilder(); - } - topologyId_ = input.readMessage(context.ContextOuterClass.TopologyId.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(topologyId_); - topologyId_ = subBuilder.buildPartial(); - } - - break; - } - case 18: { - java.lang.String s = input.readStringRequireUtf8(); - - name_ = s; - break; - } - case 26: { - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - deviceIds_ = new java.util.ArrayList(); - mutable_bitField0_ |= 0x00000001; - } - deviceIds_.add( - input.readMessage(context.ContextOuterClass.DeviceId.parser(), extensionRegistry)); - break; - } - case 34: { - if (!((mutable_bitField0_ & 0x00000002) != 0)) { - linkIds_ = new java.util.ArrayList(); - mutable_bitField0_ |= 0x00000002; - } - linkIds_.add( - input.readMessage(context.ContextOuterClass.LinkId.parser(), extensionRegistry)); - break; - } - default: { - if (!parseUnknownField( - input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException( - e).setUnfinishedMessage(this); - } finally { - if (((mutable_bitField0_ & 0x00000001) != 0)) { - deviceIds_ = java.util.Collections.unmodifiableList(deviceIds_); - } - if (((mutable_bitField0_ & 0x00000002) != 0)) { - linkIds_ = java.util.Collections.unmodifiableList(linkIds_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return context.ContextOuterClass.internal_static_context_Topology_descriptor; - } + public static context.ContextOuterClass.Event parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_Topology_fieldAccessorTable - .ensureFieldAccessorsInitialized( - context.ContextOuterClass.Topology.class, context.ContextOuterClass.Topology.Builder.class); - } + public static context.ContextOuterClass.Event parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } - public static final int TOPOLOGY_ID_FIELD_NUMBER = 1; - private context.ContextOuterClass.TopologyId topologyId_; - /** - * .context.TopologyId topology_id = 1; - * @return Whether the topologyId field is set. - */ - @java.lang.Override - public boolean hasTopologyId() { - return topologyId_ != null; - } - /** - * .context.TopologyId topology_id = 1; - * @return The topologyId. - */ - @java.lang.Override - public context.ContextOuterClass.TopologyId getTopologyId() { - return topologyId_ == null ? context.ContextOuterClass.TopologyId.getDefaultInstance() : topologyId_; - } - /** - * .context.TopologyId topology_id = 1; - */ - @java.lang.Override - public context.ContextOuterClass.TopologyIdOrBuilder getTopologyIdOrBuilder() { - return getTopologyId(); - } + public static context.ContextOuterClass.Event parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } - public static final int NAME_FIELD_NUMBER = 2; - private volatile java.lang.Object name_; - /** - * string name = 2; - * @return The name. - */ - @java.lang.Override - public java.lang.String getName() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - name_ = s; - return s; - } - } - /** - * string name = 2; - * @return The bytes for name. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - name_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } + public static context.ContextOuterClass.Event parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } - public static final int DEVICE_IDS_FIELD_NUMBER = 3; - private java.util.List deviceIds_; - /** - * repeated .context.DeviceId device_ids = 3; - */ - @java.lang.Override - public java.util.List getDeviceIdsList() { - return deviceIds_; - } - /** - * repeated .context.DeviceId device_ids = 3; - */ - @java.lang.Override - public java.util.List - getDeviceIdsOrBuilderList() { - return deviceIds_; - } - /** - * repeated .context.DeviceId device_ids = 3; - */ - @java.lang.Override - public int getDeviceIdsCount() { - return deviceIds_.size(); - } - /** - * repeated .context.DeviceId device_ids = 3; - */ - @java.lang.Override - public context.ContextOuterClass.DeviceId getDeviceIds(int index) { - return deviceIds_.get(index); - } - /** - * repeated .context.DeviceId device_ids = 3; - */ - @java.lang.Override - public context.ContextOuterClass.DeviceIdOrBuilder getDeviceIdsOrBuilder( - int index) { - return deviceIds_.get(index); - } + public static context.ContextOuterClass.Event parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } - public static final int LINK_IDS_FIELD_NUMBER = 4; - private java.util.List linkIds_; - /** - * repeated .context.LinkId link_ids = 4; - */ - @java.lang.Override - public java.util.List getLinkIdsList() { - return linkIds_; - } - /** - * repeated .context.LinkId link_ids = 4; - */ - @java.lang.Override - public java.util.List - getLinkIdsOrBuilderList() { - return linkIds_; - } - /** - * repeated .context.LinkId link_ids = 4; - */ - @java.lang.Override - public int getLinkIdsCount() { - return linkIds_.size(); - } - /** - * repeated .context.LinkId link_ids = 4; - */ - @java.lang.Override - public context.ContextOuterClass.LinkId getLinkIds(int index) { - return linkIds_.get(index); - } - /** - * repeated .context.LinkId link_ids = 4; - */ - @java.lang.Override - public context.ContextOuterClass.LinkIdOrBuilder getLinkIdsOrBuilder( - int index) { - return linkIds_.get(index); - } + public static context.ContextOuterClass.Event parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } - memoizedIsInitialized = 1; - return true; - } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (topologyId_ != null) { - output.writeMessage(1, getTopologyId()); - } - if (!getNameBytes().isEmpty()) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 2, name_); - } - for (int i = 0; i < deviceIds_.size(); i++) { - output.writeMessage(3, deviceIds_.get(i)); - } - for (int i = 0; i < linkIds_.size(); i++) { - output.writeMessage(4, linkIds_.get(i)); - } - unknownFields.writeTo(output); - } + public static Builder newBuilder(context.ContextOuterClass.Event prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (topologyId_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(1, getTopologyId()); - } - if (!getNameBytes().isEmpty()) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, name_); - } - for (int i = 0; i < deviceIds_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(3, deviceIds_.get(i)); - } - for (int i = 0; i < linkIds_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(4, linkIds_.get(i)); - } - size += unknownFields.getSerializedSize(); - memoizedSize = size; - return size; - } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof context.ContextOuterClass.Topology)) { - return super.equals(obj); - } - context.ContextOuterClass.Topology other = (context.ContextOuterClass.Topology) obj; - - if (hasTopologyId() != other.hasTopologyId()) return false; - if (hasTopologyId()) { - if (!getTopologyId() - .equals(other.getTopologyId())) return false; - } - if (!getName() - .equals(other.getName())) return false; - if (!getDeviceIdsList() - .equals(other.getDeviceIdsList())) return false; - if (!getLinkIdsList() - .equals(other.getLinkIdsList())) return false; - if (!unknownFields.equals(other.unknownFields)) return false; - return true; - } + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - if (hasTopologyId()) { - hash = (37 * hash) + TOPOLOGY_ID_FIELD_NUMBER; - hash = (53 * hash) + getTopologyId().hashCode(); - } - hash = (37 * hash) + NAME_FIELD_NUMBER; - hash = (53 * hash) + getName().hashCode(); - if (getDeviceIdsCount() > 0) { - hash = (37 * hash) + DEVICE_IDS_FIELD_NUMBER; - hash = (53 * hash) + getDeviceIdsList().hashCode(); - } - if (getLinkIdsCount() > 0) { - hash = (37 * hash) + LINK_IDS_FIELD_NUMBER; - hash = (53 * hash) + getLinkIdsList().hashCode(); - } - hash = (29 * hash) + unknownFields.hashCode(); - memoizedHashCode = hash; - return hash; - } + /** + * Protobuf type {@code context.Event} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.Event) + context.ContextOuterClass.EventOrBuilder { - public static context.ContextOuterClass.Topology parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static context.ContextOuterClass.Topology parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static context.ContextOuterClass.Topology parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static context.ContextOuterClass.Topology parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static context.ContextOuterClass.Topology parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static context.ContextOuterClass.Topology parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static context.ContextOuterClass.Topology parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static context.ContextOuterClass.Topology parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - public static context.ContextOuterClass.Topology parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - public static context.ContextOuterClass.Topology parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static context.ContextOuterClass.Topology parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static context.ContextOuterClass.Topology parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_Event_descriptor; + } - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(context.ContextOuterClass.Topology prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_Event_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.Event.class, context.ContextOuterClass.Event.Builder.class); + } - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code context.Topology} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:context.Topology) - context.ContextOuterClass.TopologyOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return context.ContextOuterClass.internal_static_context_Topology_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_Topology_fieldAccessorTable - .ensureFieldAccessorsInitialized( - context.ContextOuterClass.Topology.class, context.ContextOuterClass.Topology.Builder.class); - } - - // Construct using context.ContextOuterClass.Topology.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3 - .alwaysUseFieldBuilders) { - getDeviceIdsFieldBuilder(); - getLinkIdsFieldBuilder(); - } - } - @java.lang.Override - public Builder clear() { - super.clear(); - if (topologyIdBuilder_ == null) { - topologyId_ = null; - } else { - topologyId_ = null; - topologyIdBuilder_ = null; - } - name_ = ""; - - if (deviceIdsBuilder_ == null) { - deviceIds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); - } else { - deviceIdsBuilder_.clear(); - } - if (linkIdsBuilder_ == null) { - linkIds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000002); - } else { - linkIdsBuilder_.clear(); - } - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return context.ContextOuterClass.internal_static_context_Topology_descriptor; - } - - @java.lang.Override - public context.ContextOuterClass.Topology getDefaultInstanceForType() { - return context.ContextOuterClass.Topology.getDefaultInstance(); - } - - @java.lang.Override - public context.ContextOuterClass.Topology build() { - context.ContextOuterClass.Topology result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public context.ContextOuterClass.Topology buildPartial() { - context.ContextOuterClass.Topology result = new context.ContextOuterClass.Topology(this); - int from_bitField0_ = bitField0_; - if (topologyIdBuilder_ == null) { - result.topologyId_ = topologyId_; - } else { - result.topologyId_ = topologyIdBuilder_.build(); - } - result.name_ = name_; - if (deviceIdsBuilder_ == null) { - if (((bitField0_ & 0x00000001) != 0)) { - deviceIds_ = java.util.Collections.unmodifiableList(deviceIds_); - bitField0_ = (bitField0_ & ~0x00000001); - } - result.deviceIds_ = deviceIds_; - } else { - result.deviceIds_ = deviceIdsBuilder_.build(); - } - if (linkIdsBuilder_ == null) { - if (((bitField0_ & 0x00000002) != 0)) { - linkIds_ = java.util.Collections.unmodifiableList(linkIds_); - bitField0_ = (bitField0_ & ~0x00000002); - } - result.linkIds_ = linkIds_; - } else { - result.linkIds_ = linkIdsBuilder_.build(); - } - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof context.ContextOuterClass.Topology) { - return mergeFrom((context.ContextOuterClass.Topology)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(context.ContextOuterClass.Topology other) { - if (other == context.ContextOuterClass.Topology.getDefaultInstance()) return this; - if (other.hasTopologyId()) { - mergeTopologyId(other.getTopologyId()); - } - if (!other.getName().isEmpty()) { - name_ = other.name_; - onChanged(); - } - if (deviceIdsBuilder_ == null) { - if (!other.deviceIds_.isEmpty()) { - if (deviceIds_.isEmpty()) { - deviceIds_ = other.deviceIds_; - bitField0_ = (bitField0_ & ~0x00000001); - } else { - ensureDeviceIdsIsMutable(); - deviceIds_.addAll(other.deviceIds_); - } - onChanged(); - } - } else { - if (!other.deviceIds_.isEmpty()) { - if (deviceIdsBuilder_.isEmpty()) { - deviceIdsBuilder_.dispose(); - deviceIdsBuilder_ = null; - deviceIds_ = other.deviceIds_; - bitField0_ = (bitField0_ & ~0x00000001); - deviceIdsBuilder_ = - com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? - getDeviceIdsFieldBuilder() : null; - } else { - deviceIdsBuilder_.addAllMessages(other.deviceIds_); + // Construct using context.ContextOuterClass.Event.newBuilder() + private Builder() { } - } - } - if (linkIdsBuilder_ == null) { - if (!other.linkIds_.isEmpty()) { - if (linkIds_.isEmpty()) { - linkIds_ = other.linkIds_; - bitField0_ = (bitField0_ & ~0x00000002); - } else { - ensureLinkIdsIsMutable(); - linkIds_.addAll(other.linkIds_); - } - onChanged(); - } - } else { - if (!other.linkIds_.isEmpty()) { - if (linkIdsBuilder_.isEmpty()) { - linkIdsBuilder_.dispose(); - linkIdsBuilder_ = null; - linkIds_ = other.linkIds_; - bitField0_ = (bitField0_ & ~0x00000002); - linkIdsBuilder_ = - com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? - getLinkIdsFieldBuilder() : null; - } else { - linkIdsBuilder_.addAllMessages(other.linkIds_); - } - } - } - this.mergeUnknownFields(other.unknownFields); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - context.ContextOuterClass.Topology parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.Topology) e.getUnfinishedMessage(); - throw e.unwrapIOException(); - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - private context.ContextOuterClass.TopologyId topologyId_; - private com.google.protobuf.SingleFieldBuilderV3< - context.ContextOuterClass.TopologyId, context.ContextOuterClass.TopologyId.Builder, context.ContextOuterClass.TopologyIdOrBuilder> topologyIdBuilder_; - /** - * .context.TopologyId topology_id = 1; - * @return Whether the topologyId field is set. - */ - public boolean hasTopologyId() { - return topologyIdBuilder_ != null || topologyId_ != null; - } - /** - * .context.TopologyId topology_id = 1; - * @return The topologyId. - */ - public context.ContextOuterClass.TopologyId getTopologyId() { - if (topologyIdBuilder_ == null) { - return topologyId_ == null ? context.ContextOuterClass.TopologyId.getDefaultInstance() : topologyId_; - } else { - return topologyIdBuilder_.getMessage(); - } - } - /** - * .context.TopologyId topology_id = 1; - */ - public Builder setTopologyId(context.ContextOuterClass.TopologyId value) { - if (topologyIdBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - topologyId_ = value; - onChanged(); - } else { - topologyIdBuilder_.setMessage(value); - } - - return this; - } - /** - * .context.TopologyId topology_id = 1; - */ - public Builder setTopologyId( - context.ContextOuterClass.TopologyId.Builder builderForValue) { - if (topologyIdBuilder_ == null) { - topologyId_ = builderForValue.build(); - onChanged(); - } else { - topologyIdBuilder_.setMessage(builderForValue.build()); - } - - return this; - } - /** - * .context.TopologyId topology_id = 1; - */ - public Builder mergeTopologyId(context.ContextOuterClass.TopologyId value) { - if (topologyIdBuilder_ == null) { - if (topologyId_ != null) { - topologyId_ = - context.ContextOuterClass.TopologyId.newBuilder(topologyId_).mergeFrom(value).buildPartial(); - } else { - topologyId_ = value; - } - onChanged(); - } else { - topologyIdBuilder_.mergeFrom(value); - } - - return this; - } - /** - * .context.TopologyId topology_id = 1; - */ - public Builder clearTopologyId() { - if (topologyIdBuilder_ == null) { - topologyId_ = null; - onChanged(); - } else { - topologyId_ = null; - topologyIdBuilder_ = null; - } - - return this; - } - /** - * .context.TopologyId topology_id = 1; - */ - public context.ContextOuterClass.TopologyId.Builder getTopologyIdBuilder() { - - onChanged(); - return getTopologyIdFieldBuilder().getBuilder(); - } - /** - * .context.TopologyId topology_id = 1; - */ - public context.ContextOuterClass.TopologyIdOrBuilder getTopologyIdOrBuilder() { - if (topologyIdBuilder_ != null) { - return topologyIdBuilder_.getMessageOrBuilder(); - } else { - return topologyId_ == null ? - context.ContextOuterClass.TopologyId.getDefaultInstance() : topologyId_; - } - } - /** - * .context.TopologyId topology_id = 1; - */ - private com.google.protobuf.SingleFieldBuilderV3< - context.ContextOuterClass.TopologyId, context.ContextOuterClass.TopologyId.Builder, context.ContextOuterClass.TopologyIdOrBuilder> - getTopologyIdFieldBuilder() { - if (topologyIdBuilder_ == null) { - topologyIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - context.ContextOuterClass.TopologyId, context.ContextOuterClass.TopologyId.Builder, context.ContextOuterClass.TopologyIdOrBuilder>( - getTopologyId(), - getParentForChildren(), - isClean()); - topologyId_ = null; - } - return topologyIdBuilder_; - } - - private java.lang.Object name_ = ""; - /** - * string name = 2; - * @return The name. - */ - public java.lang.String getName() { - java.lang.Object ref = name_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - name_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string name = 2; - * @return The bytes for name. - */ - public com.google.protobuf.ByteString - getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - name_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string name = 2; - * @param value The name to set. - * @return This builder for chaining. - */ - public Builder setName( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - - name_ = value; - onChanged(); - return this; - } - /** - * string name = 2; - * @return This builder for chaining. - */ - public Builder clearName() { - - name_ = getDefaultInstance().getName(); - onChanged(); - return this; - } - /** - * string name = 2; - * @param value The bytes for name to set. - * @return This builder for chaining. - */ - public Builder setNameBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - - name_ = value; - onChanged(); - return this; - } - - private java.util.List deviceIds_ = - java.util.Collections.emptyList(); - private void ensureDeviceIdsIsMutable() { - if (!((bitField0_ & 0x00000001) != 0)) { - deviceIds_ = new java.util.ArrayList(deviceIds_); - bitField0_ |= 0x00000001; - } - } - - private com.google.protobuf.RepeatedFieldBuilderV3< - context.ContextOuterClass.DeviceId, context.ContextOuterClass.DeviceId.Builder, context.ContextOuterClass.DeviceIdOrBuilder> deviceIdsBuilder_; - - /** - * repeated .context.DeviceId device_ids = 3; - */ - public java.util.List getDeviceIdsList() { - if (deviceIdsBuilder_ == null) { - return java.util.Collections.unmodifiableList(deviceIds_); - } else { - return deviceIdsBuilder_.getMessageList(); - } - } - /** - * repeated .context.DeviceId device_ids = 3; - */ - public int getDeviceIdsCount() { - if (deviceIdsBuilder_ == null) { - return deviceIds_.size(); - } else { - return deviceIdsBuilder_.getCount(); - } - } - /** - * repeated .context.DeviceId device_ids = 3; - */ - public context.ContextOuterClass.DeviceId getDeviceIds(int index) { - if (deviceIdsBuilder_ == null) { - return deviceIds_.get(index); - } else { - return deviceIdsBuilder_.getMessage(index); - } - } - /** - * repeated .context.DeviceId device_ids = 3; - */ - public Builder setDeviceIds( - int index, context.ContextOuterClass.DeviceId value) { - if (deviceIdsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureDeviceIdsIsMutable(); - deviceIds_.set(index, value); - onChanged(); - } else { - deviceIdsBuilder_.setMessage(index, value); - } - return this; - } - /** - * repeated .context.DeviceId device_ids = 3; - */ - public Builder setDeviceIds( - int index, context.ContextOuterClass.DeviceId.Builder builderForValue) { - if (deviceIdsBuilder_ == null) { - ensureDeviceIdsIsMutable(); - deviceIds_.set(index, builderForValue.build()); - onChanged(); - } else { - deviceIdsBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .context.DeviceId device_ids = 3; - */ - public Builder addDeviceIds(context.ContextOuterClass.DeviceId value) { - if (deviceIdsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureDeviceIdsIsMutable(); - deviceIds_.add(value); - onChanged(); - } else { - deviceIdsBuilder_.addMessage(value); - } - return this; - } - /** - * repeated .context.DeviceId device_ids = 3; - */ - public Builder addDeviceIds( - int index, context.ContextOuterClass.DeviceId value) { - if (deviceIdsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureDeviceIdsIsMutable(); - deviceIds_.add(index, value); - onChanged(); - } else { - deviceIdsBuilder_.addMessage(index, value); - } - return this; - } - /** - * repeated .context.DeviceId device_ids = 3; - */ - public Builder addDeviceIds( - context.ContextOuterClass.DeviceId.Builder builderForValue) { - if (deviceIdsBuilder_ == null) { - ensureDeviceIdsIsMutable(); - deviceIds_.add(builderForValue.build()); - onChanged(); - } else { - deviceIdsBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * repeated .context.DeviceId device_ids = 3; - */ - public Builder addDeviceIds( - int index, context.ContextOuterClass.DeviceId.Builder builderForValue) { - if (deviceIdsBuilder_ == null) { - ensureDeviceIdsIsMutable(); - deviceIds_.add(index, builderForValue.build()); - onChanged(); - } else { - deviceIdsBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .context.DeviceId device_ids = 3; - */ - public Builder addAllDeviceIds( - java.lang.Iterable values) { - if (deviceIdsBuilder_ == null) { - ensureDeviceIdsIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, deviceIds_); - onChanged(); - } else { - deviceIdsBuilder_.addAllMessages(values); - } - return this; - } - /** - * repeated .context.DeviceId device_ids = 3; - */ - public Builder clearDeviceIds() { - if (deviceIdsBuilder_ == null) { - deviceIds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - } else { - deviceIdsBuilder_.clear(); - } - return this; - } - /** - * repeated .context.DeviceId device_ids = 3; - */ - public Builder removeDeviceIds(int index) { - if (deviceIdsBuilder_ == null) { - ensureDeviceIdsIsMutable(); - deviceIds_.remove(index); - onChanged(); - } else { - deviceIdsBuilder_.remove(index); - } - return this; - } - /** - * repeated .context.DeviceId device_ids = 3; - */ - public context.ContextOuterClass.DeviceId.Builder getDeviceIdsBuilder( - int index) { - return getDeviceIdsFieldBuilder().getBuilder(index); - } - /** - * repeated .context.DeviceId device_ids = 3; - */ - public context.ContextOuterClass.DeviceIdOrBuilder getDeviceIdsOrBuilder( - int index) { - if (deviceIdsBuilder_ == null) { - return deviceIds_.get(index); } else { - return deviceIdsBuilder_.getMessageOrBuilder(index); - } - } - /** - * repeated .context.DeviceId device_ids = 3; - */ - public java.util.List - getDeviceIdsOrBuilderList() { - if (deviceIdsBuilder_ != null) { - return deviceIdsBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(deviceIds_); - } - } - /** - * repeated .context.DeviceId device_ids = 3; - */ - public context.ContextOuterClass.DeviceId.Builder addDeviceIdsBuilder() { - return getDeviceIdsFieldBuilder().addBuilder( - context.ContextOuterClass.DeviceId.getDefaultInstance()); - } - /** - * repeated .context.DeviceId device_ids = 3; - */ - public context.ContextOuterClass.DeviceId.Builder addDeviceIdsBuilder( - int index) { - return getDeviceIdsFieldBuilder().addBuilder( - index, context.ContextOuterClass.DeviceId.getDefaultInstance()); - } - /** - * repeated .context.DeviceId device_ids = 3; - */ - public java.util.List - getDeviceIdsBuilderList() { - return getDeviceIdsFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilderV3< - context.ContextOuterClass.DeviceId, context.ContextOuterClass.DeviceId.Builder, context.ContextOuterClass.DeviceIdOrBuilder> - getDeviceIdsFieldBuilder() { - if (deviceIdsBuilder_ == null) { - deviceIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< - context.ContextOuterClass.DeviceId, context.ContextOuterClass.DeviceId.Builder, context.ContextOuterClass.DeviceIdOrBuilder>( - deviceIds_, - ((bitField0_ & 0x00000001) != 0), - getParentForChildren(), - isClean()); - deviceIds_ = null; - } - return deviceIdsBuilder_; - } - - private java.util.List linkIds_ = - java.util.Collections.emptyList(); - private void ensureLinkIdsIsMutable() { - if (!((bitField0_ & 0x00000002) != 0)) { - linkIds_ = new java.util.ArrayList(linkIds_); - bitField0_ |= 0x00000002; - } - } - - private com.google.protobuf.RepeatedFieldBuilderV3< - context.ContextOuterClass.LinkId, context.ContextOuterClass.LinkId.Builder, context.ContextOuterClass.LinkIdOrBuilder> linkIdsBuilder_; - - /** - * repeated .context.LinkId link_ids = 4; - */ - public java.util.List getLinkIdsList() { - if (linkIdsBuilder_ == null) { - return java.util.Collections.unmodifiableList(linkIds_); - } else { - return linkIdsBuilder_.getMessageList(); - } - } - /** - * repeated .context.LinkId link_ids = 4; - */ - public int getLinkIdsCount() { - if (linkIdsBuilder_ == null) { - return linkIds_.size(); - } else { - return linkIdsBuilder_.getCount(); - } - } - /** - * repeated .context.LinkId link_ids = 4; - */ - public context.ContextOuterClass.LinkId getLinkIds(int index) { - if (linkIdsBuilder_ == null) { - return linkIds_.get(index); - } else { - return linkIdsBuilder_.getMessage(index); - } - } - /** - * repeated .context.LinkId link_ids = 4; - */ - public Builder setLinkIds( - int index, context.ContextOuterClass.LinkId value) { - if (linkIdsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureLinkIdsIsMutable(); - linkIds_.set(index, value); - onChanged(); - } else { - linkIdsBuilder_.setMessage(index, value); - } - return this; - } - /** - * repeated .context.LinkId link_ids = 4; - */ - public Builder setLinkIds( - int index, context.ContextOuterClass.LinkId.Builder builderForValue) { - if (linkIdsBuilder_ == null) { - ensureLinkIdsIsMutable(); - linkIds_.set(index, builderForValue.build()); - onChanged(); - } else { - linkIdsBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .context.LinkId link_ids = 4; - */ - public Builder addLinkIds(context.ContextOuterClass.LinkId value) { - if (linkIdsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureLinkIdsIsMutable(); - linkIds_.add(value); - onChanged(); - } else { - linkIdsBuilder_.addMessage(value); - } - return this; - } - /** - * repeated .context.LinkId link_ids = 4; - */ - public Builder addLinkIds( - int index, context.ContextOuterClass.LinkId value) { - if (linkIdsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureLinkIdsIsMutable(); - linkIds_.add(index, value); - onChanged(); - } else { - linkIdsBuilder_.addMessage(index, value); - } - return this; - } - /** - * repeated .context.LinkId link_ids = 4; - */ - public Builder addLinkIds( - context.ContextOuterClass.LinkId.Builder builderForValue) { - if (linkIdsBuilder_ == null) { - ensureLinkIdsIsMutable(); - linkIds_.add(builderForValue.build()); - onChanged(); - } else { - linkIdsBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * repeated .context.LinkId link_ids = 4; - */ - public Builder addLinkIds( - int index, context.ContextOuterClass.LinkId.Builder builderForValue) { - if (linkIdsBuilder_ == null) { - ensureLinkIdsIsMutable(); - linkIds_.add(index, builderForValue.build()); - onChanged(); - } else { - linkIdsBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .context.LinkId link_ids = 4; - */ - public Builder addAllLinkIds( - java.lang.Iterable values) { - if (linkIdsBuilder_ == null) { - ensureLinkIdsIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, linkIds_); - onChanged(); - } else { - linkIdsBuilder_.addAllMessages(values); - } - return this; - } - /** - * repeated .context.LinkId link_ids = 4; - */ - public Builder clearLinkIds() { - if (linkIdsBuilder_ == null) { - linkIds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000002); - onChanged(); - } else { - linkIdsBuilder_.clear(); - } - return this; - } - /** - * repeated .context.LinkId link_ids = 4; - */ - public Builder removeLinkIds(int index) { - if (linkIdsBuilder_ == null) { - ensureLinkIdsIsMutable(); - linkIds_.remove(index); - onChanged(); - } else { - linkIdsBuilder_.remove(index); - } - return this; - } - /** - * repeated .context.LinkId link_ids = 4; - */ - public context.ContextOuterClass.LinkId.Builder getLinkIdsBuilder( - int index) { - return getLinkIdsFieldBuilder().getBuilder(index); - } - /** - * repeated .context.LinkId link_ids = 4; - */ - public context.ContextOuterClass.LinkIdOrBuilder getLinkIdsOrBuilder( - int index) { - if (linkIdsBuilder_ == null) { - return linkIds_.get(index); } else { - return linkIdsBuilder_.getMessageOrBuilder(index); - } - } - /** - * repeated .context.LinkId link_ids = 4; - */ - public java.util.List - getLinkIdsOrBuilderList() { - if (linkIdsBuilder_ != null) { - return linkIdsBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(linkIds_); - } - } - /** - * repeated .context.LinkId link_ids = 4; - */ - public context.ContextOuterClass.LinkId.Builder addLinkIdsBuilder() { - return getLinkIdsFieldBuilder().addBuilder( - context.ContextOuterClass.LinkId.getDefaultInstance()); - } - /** - * repeated .context.LinkId link_ids = 4; - */ - public context.ContextOuterClass.LinkId.Builder addLinkIdsBuilder( - int index) { - return getLinkIdsFieldBuilder().addBuilder( - index, context.ContextOuterClass.LinkId.getDefaultInstance()); - } - /** - * repeated .context.LinkId link_ids = 4; - */ - public java.util.List - getLinkIdsBuilderList() { - return getLinkIdsFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilderV3< - context.ContextOuterClass.LinkId, context.ContextOuterClass.LinkId.Builder, context.ContextOuterClass.LinkIdOrBuilder> - getLinkIdsFieldBuilder() { - if (linkIdsBuilder_ == null) { - linkIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< - context.ContextOuterClass.LinkId, context.ContextOuterClass.LinkId.Builder, context.ContextOuterClass.LinkIdOrBuilder>( - linkIds_, - ((bitField0_ & 0x00000002) != 0), - getParentForChildren(), - isClean()); - linkIds_ = null; - } - return linkIdsBuilder_; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:context.Topology) - } - // @@protoc_insertion_point(class_scope:context.Topology) - private static final context.ContextOuterClass.Topology DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new context.ContextOuterClass.Topology(); - } + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } - public static context.ContextOuterClass.Topology getDefaultInstance() { - return DEFAULT_INSTANCE; - } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + timestamp_ = null; + if (timestampBuilder_ != null) { + timestampBuilder_.dispose(); + timestampBuilder_ = null; + } + eventType_ = 0; + return this; + } - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public Topology parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new Topology(input, extensionRegistry); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_Event_descriptor; + } - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } + @java.lang.Override + public context.ContextOuterClass.Event getDefaultInstanceForType() { + return context.ContextOuterClass.Event.getDefaultInstance(); + } - @java.lang.Override - public context.ContextOuterClass.Topology getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } + @java.lang.Override + public context.ContextOuterClass.Event build() { + context.ContextOuterClass.Event result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } - } + @java.lang.Override + public context.ContextOuterClass.Event buildPartial() { + context.ContextOuterClass.Event result = new context.ContextOuterClass.Event(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } - public interface TopologyDetailsOrBuilder extends - // @@protoc_insertion_point(interface_extends:context.TopologyDetails) - com.google.protobuf.MessageOrBuilder { + private void buildPartial0(context.ContextOuterClass.Event result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.timestamp_ = timestampBuilder_ == null ? timestamp_ : timestampBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.eventType_ = eventType_; + } + } - /** - * .context.TopologyId topology_id = 1; - * @return Whether the topologyId field is set. - */ - boolean hasTopologyId(); - /** - * .context.TopologyId topology_id = 1; - * @return The topologyId. - */ - context.ContextOuterClass.TopologyId getTopologyId(); - /** - * .context.TopologyId topology_id = 1; - */ - context.ContextOuterClass.TopologyIdOrBuilder getTopologyIdOrBuilder(); + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.Event) { + return mergeFrom((context.ContextOuterClass.Event) other); + } else { + super.mergeFrom(other); + return this; + } + } - /** - * string name = 2; - * @return The name. - */ - java.lang.String getName(); - /** - * string name = 2; - * @return The bytes for name. - */ - com.google.protobuf.ByteString - getNameBytes(); + public Builder mergeFrom(context.ContextOuterClass.Event other) { + if (other == context.ContextOuterClass.Event.getDefaultInstance()) + return this; + if (other.hasTimestamp()) { + mergeTimestamp(other.getTimestamp()); + } + if (other.eventType_ != 0) { + setEventTypeValue(other.getEventTypeValue()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } - /** - * repeated .context.Device devices = 3; - */ - java.util.List - getDevicesList(); - /** - * repeated .context.Device devices = 3; - */ - context.ContextOuterClass.Device getDevices(int index); - /** - * repeated .context.Device devices = 3; - */ - int getDevicesCount(); - /** - * repeated .context.Device devices = 3; - */ - java.util.List - getDevicesOrBuilderList(); - /** - * repeated .context.Device devices = 3; - */ - context.ContextOuterClass.DeviceOrBuilder getDevicesOrBuilder( - int index); + @java.lang.Override + public final boolean isInitialized() { + return true; + } - /** - * repeated .context.Link links = 4; - */ - java.util.List - getLinksList(); - /** - * repeated .context.Link links = 4; - */ - context.ContextOuterClass.Link getLinks(int index); - /** - * repeated .context.Link links = 4; - */ - int getLinksCount(); - /** - * repeated .context.Link links = 4; - */ - java.util.List - getLinksOrBuilderList(); - /** - * repeated .context.Link links = 4; - */ - context.ContextOuterClass.LinkOrBuilder getLinksOrBuilder( - int index); - } - /** - * Protobuf type {@code context.TopologyDetails} - */ - public static final class TopologyDetails extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:context.TopologyDetails) - TopologyDetailsOrBuilder { - private static final long serialVersionUID = 0L; - // Use TopologyDetails.newBuilder() to construct. - private TopologyDetails(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private TopologyDetails() { - name_ = ""; - devices_ = java.util.Collections.emptyList(); - links_ = java.util.Collections.emptyList(); - } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getTimestampFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 16: + { + eventType_ = input.readEnum(); + bitField0_ |= 0x00000002; + break; + } + // case 16 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new TopologyDetails(); - } + private int bitField0_; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private TopologyDetails( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - int mutable_bitField0_ = 0; - com.google.protobuf.UnknownFieldSet.Builder unknownFields = - com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - context.ContextOuterClass.TopologyId.Builder subBuilder = null; - if (topologyId_ != null) { - subBuilder = topologyId_.toBuilder(); - } - topologyId_ = input.readMessage(context.ContextOuterClass.TopologyId.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(topologyId_); - topologyId_ = subBuilder.buildPartial(); - } - - break; - } - case 18: { - java.lang.String s = input.readStringRequireUtf8(); - - name_ = s; - break; - } - case 26: { - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - devices_ = new java.util.ArrayList(); - mutable_bitField0_ |= 0x00000001; - } - devices_.add( - input.readMessage(context.ContextOuterClass.Device.parser(), extensionRegistry)); - break; - } - case 34: { - if (!((mutable_bitField0_ & 0x00000002) != 0)) { - links_ = new java.util.ArrayList(); - mutable_bitField0_ |= 0x00000002; - } - links_.add( - input.readMessage(context.ContextOuterClass.Link.parser(), extensionRegistry)); - break; - } - default: { - if (!parseUnknownField( - input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException( - e).setUnfinishedMessage(this); - } finally { - if (((mutable_bitField0_ & 0x00000001) != 0)) { - devices_ = java.util.Collections.unmodifiableList(devices_); - } - if (((mutable_bitField0_ & 0x00000002) != 0)) { - links_ = java.util.Collections.unmodifiableList(links_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return context.ContextOuterClass.internal_static_context_TopologyDetails_descriptor; - } + private context.ContextOuterClass.Timestamp timestamp_; - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_TopologyDetails_fieldAccessorTable - .ensureFieldAccessorsInitialized( - context.ContextOuterClass.TopologyDetails.class, context.ContextOuterClass.TopologyDetails.Builder.class); - } + private com.google.protobuf.SingleFieldBuilderV3 timestampBuilder_; - public static final int TOPOLOGY_ID_FIELD_NUMBER = 1; - private context.ContextOuterClass.TopologyId topologyId_; - /** - * .context.TopologyId topology_id = 1; - * @return Whether the topologyId field is set. - */ - @java.lang.Override - public boolean hasTopologyId() { - return topologyId_ != null; - } - /** - * .context.TopologyId topology_id = 1; - * @return The topologyId. - */ - @java.lang.Override - public context.ContextOuterClass.TopologyId getTopologyId() { - return topologyId_ == null ? context.ContextOuterClass.TopologyId.getDefaultInstance() : topologyId_; - } - /** - * .context.TopologyId topology_id = 1; - */ - @java.lang.Override - public context.ContextOuterClass.TopologyIdOrBuilder getTopologyIdOrBuilder() { - return getTopologyId(); - } + /** + * .context.Timestamp timestamp = 1; + * @return Whether the timestamp field is set. + */ + public boolean hasTimestamp() { + return ((bitField0_ & 0x00000001) != 0); + } - public static final int NAME_FIELD_NUMBER = 2; - private volatile java.lang.Object name_; - /** - * string name = 2; - * @return The name. - */ - @java.lang.Override - public java.lang.String getName() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - name_ = s; - return s; - } - } - /** - * string name = 2; - * @return The bytes for name. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - name_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } + /** + * .context.Timestamp timestamp = 1; + * @return The timestamp. + */ + public context.ContextOuterClass.Timestamp getTimestamp() { + if (timestampBuilder_ == null) { + return timestamp_ == null ? context.ContextOuterClass.Timestamp.getDefaultInstance() : timestamp_; + } else { + return timestampBuilder_.getMessage(); + } + } - public static final int DEVICES_FIELD_NUMBER = 3; - private java.util.List devices_; - /** - * repeated .context.Device devices = 3; - */ - @java.lang.Override - public java.util.List getDevicesList() { - return devices_; - } - /** - * repeated .context.Device devices = 3; - */ - @java.lang.Override - public java.util.List - getDevicesOrBuilderList() { - return devices_; - } - /** - * repeated .context.Device devices = 3; - */ - @java.lang.Override - public int getDevicesCount() { - return devices_.size(); - } - /** - * repeated .context.Device devices = 3; - */ - @java.lang.Override - public context.ContextOuterClass.Device getDevices(int index) { - return devices_.get(index); - } - /** - * repeated .context.Device devices = 3; - */ - @java.lang.Override - public context.ContextOuterClass.DeviceOrBuilder getDevicesOrBuilder( - int index) { - return devices_.get(index); - } + /** + * .context.Timestamp timestamp = 1; + */ + public Builder setTimestamp(context.ContextOuterClass.Timestamp value) { + if (timestampBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + timestamp_ = value; + } else { + timestampBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } - public static final int LINKS_FIELD_NUMBER = 4; - private java.util.List links_; - /** - * repeated .context.Link links = 4; - */ - @java.lang.Override - public java.util.List getLinksList() { - return links_; - } - /** - * repeated .context.Link links = 4; - */ - @java.lang.Override - public java.util.List - getLinksOrBuilderList() { - return links_; - } - /** - * repeated .context.Link links = 4; - */ - @java.lang.Override - public int getLinksCount() { - return links_.size(); - } - /** - * repeated .context.Link links = 4; - */ - @java.lang.Override - public context.ContextOuterClass.Link getLinks(int index) { - return links_.get(index); - } - /** - * repeated .context.Link links = 4; - */ - @java.lang.Override - public context.ContextOuterClass.LinkOrBuilder getLinksOrBuilder( - int index) { - return links_.get(index); - } + /** + * .context.Timestamp timestamp = 1; + */ + public Builder setTimestamp(context.ContextOuterClass.Timestamp.Builder builderForValue) { + if (timestampBuilder_ == null) { + timestamp_ = builderForValue.build(); + } else { + timestampBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; + /** + * .context.Timestamp timestamp = 1; + */ + public Builder mergeTimestamp(context.ContextOuterClass.Timestamp value) { + if (timestampBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && timestamp_ != null && timestamp_ != context.ContextOuterClass.Timestamp.getDefaultInstance()) { + getTimestampBuilder().mergeFrom(value); + } else { + timestamp_ = value; + } + } else { + timestampBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } - memoizedIsInitialized = 1; - return true; - } + /** + * .context.Timestamp timestamp = 1; + */ + public Builder clearTimestamp() { + bitField0_ = (bitField0_ & ~0x00000001); + timestamp_ = null; + if (timestampBuilder_ != null) { + timestampBuilder_.dispose(); + timestampBuilder_ = null; + } + onChanged(); + return this; + } - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (topologyId_ != null) { - output.writeMessage(1, getTopologyId()); - } - if (!getNameBytes().isEmpty()) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 2, name_); - } - for (int i = 0; i < devices_.size(); i++) { - output.writeMessage(3, devices_.get(i)); - } - for (int i = 0; i < links_.size(); i++) { - output.writeMessage(4, links_.get(i)); - } - unknownFields.writeTo(output); - } + /** + * .context.Timestamp timestamp = 1; + */ + public context.ContextOuterClass.Timestamp.Builder getTimestampBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getTimestampFieldBuilder().getBuilder(); + } - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (topologyId_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(1, getTopologyId()); - } - if (!getNameBytes().isEmpty()) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, name_); - } - for (int i = 0; i < devices_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(3, devices_.get(i)); - } - for (int i = 0; i < links_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(4, links_.get(i)); - } - size += unknownFields.getSerializedSize(); - memoizedSize = size; - return size; - } + /** + * .context.Timestamp timestamp = 1; + */ + public context.ContextOuterClass.TimestampOrBuilder getTimestampOrBuilder() { + if (timestampBuilder_ != null) { + return timestampBuilder_.getMessageOrBuilder(); + } else { + return timestamp_ == null ? context.ContextOuterClass.Timestamp.getDefaultInstance() : timestamp_; + } + } - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof context.ContextOuterClass.TopologyDetails)) { - return super.equals(obj); - } - context.ContextOuterClass.TopologyDetails other = (context.ContextOuterClass.TopologyDetails) obj; - - if (hasTopologyId() != other.hasTopologyId()) return false; - if (hasTopologyId()) { - if (!getTopologyId() - .equals(other.getTopologyId())) return false; - } - if (!getName() - .equals(other.getName())) return false; - if (!getDevicesList() - .equals(other.getDevicesList())) return false; - if (!getLinksList() - .equals(other.getLinksList())) return false; - if (!unknownFields.equals(other.unknownFields)) return false; - return true; - } + /** + * .context.Timestamp timestamp = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3 getTimestampFieldBuilder() { + if (timestampBuilder_ == null) { + timestampBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getTimestamp(), getParentForChildren(), isClean()); + timestamp_ = null; + } + return timestampBuilder_; + } - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - if (hasTopologyId()) { - hash = (37 * hash) + TOPOLOGY_ID_FIELD_NUMBER; - hash = (53 * hash) + getTopologyId().hashCode(); - } - hash = (37 * hash) + NAME_FIELD_NUMBER; - hash = (53 * hash) + getName().hashCode(); - if (getDevicesCount() > 0) { - hash = (37 * hash) + DEVICES_FIELD_NUMBER; - hash = (53 * hash) + getDevicesList().hashCode(); - } - if (getLinksCount() > 0) { - hash = (37 * hash) + LINKS_FIELD_NUMBER; - hash = (53 * hash) + getLinksList().hashCode(); - } - hash = (29 * hash) + unknownFields.hashCode(); - memoizedHashCode = hash; - return hash; - } + private int eventType_ = 0; - public static context.ContextOuterClass.TopologyDetails parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static context.ContextOuterClass.TopologyDetails parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static context.ContextOuterClass.TopologyDetails parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static context.ContextOuterClass.TopologyDetails parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static context.ContextOuterClass.TopologyDetails parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static context.ContextOuterClass.TopologyDetails parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static context.ContextOuterClass.TopologyDetails parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static context.ContextOuterClass.TopologyDetails parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - public static context.ContextOuterClass.TopologyDetails parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - public static context.ContextOuterClass.TopologyDetails parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static context.ContextOuterClass.TopologyDetails parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static context.ContextOuterClass.TopologyDetails parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } + /** + * .context.EventTypeEnum event_type = 2; + * @return The enum numeric value on the wire for eventType. + */ + @java.lang.Override + public int getEventTypeValue() { + return eventType_; + } - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(context.ContextOuterClass.TopologyDetails prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } + /** + * .context.EventTypeEnum event_type = 2; + * @param value The enum numeric value on the wire for eventType to set. + * @return This builder for chaining. + */ + public Builder setEventTypeValue(int value) { + eventType_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code context.TopologyDetails} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:context.TopologyDetails) - context.ContextOuterClass.TopologyDetailsOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return context.ContextOuterClass.internal_static_context_TopologyDetails_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_TopologyDetails_fieldAccessorTable - .ensureFieldAccessorsInitialized( - context.ContextOuterClass.TopologyDetails.class, context.ContextOuterClass.TopologyDetails.Builder.class); - } - - // Construct using context.ContextOuterClass.TopologyDetails.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3 - .alwaysUseFieldBuilders) { - getDevicesFieldBuilder(); - getLinksFieldBuilder(); - } - } - @java.lang.Override - public Builder clear() { - super.clear(); - if (topologyIdBuilder_ == null) { - topologyId_ = null; - } else { - topologyId_ = null; - topologyIdBuilder_ = null; - } - name_ = ""; - - if (devicesBuilder_ == null) { - devices_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); - } else { - devicesBuilder_.clear(); - } - if (linksBuilder_ == null) { - links_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000002); - } else { - linksBuilder_.clear(); - } - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return context.ContextOuterClass.internal_static_context_TopologyDetails_descriptor; - } - - @java.lang.Override - public context.ContextOuterClass.TopologyDetails getDefaultInstanceForType() { - return context.ContextOuterClass.TopologyDetails.getDefaultInstance(); - } - - @java.lang.Override - public context.ContextOuterClass.TopologyDetails build() { - context.ContextOuterClass.TopologyDetails result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public context.ContextOuterClass.TopologyDetails buildPartial() { - context.ContextOuterClass.TopologyDetails result = new context.ContextOuterClass.TopologyDetails(this); - int from_bitField0_ = bitField0_; - if (topologyIdBuilder_ == null) { - result.topologyId_ = topologyId_; - } else { - result.topologyId_ = topologyIdBuilder_.build(); - } - result.name_ = name_; - if (devicesBuilder_ == null) { - if (((bitField0_ & 0x00000001) != 0)) { - devices_ = java.util.Collections.unmodifiableList(devices_); - bitField0_ = (bitField0_ & ~0x00000001); - } - result.devices_ = devices_; - } else { - result.devices_ = devicesBuilder_.build(); - } - if (linksBuilder_ == null) { - if (((bitField0_ & 0x00000002) != 0)) { - links_ = java.util.Collections.unmodifiableList(links_); - bitField0_ = (bitField0_ & ~0x00000002); - } - result.links_ = links_; - } else { - result.links_ = linksBuilder_.build(); - } - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof context.ContextOuterClass.TopologyDetails) { - return mergeFrom((context.ContextOuterClass.TopologyDetails)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(context.ContextOuterClass.TopologyDetails other) { - if (other == context.ContextOuterClass.TopologyDetails.getDefaultInstance()) return this; - if (other.hasTopologyId()) { - mergeTopologyId(other.getTopologyId()); - } - if (!other.getName().isEmpty()) { - name_ = other.name_; - onChanged(); - } - if (devicesBuilder_ == null) { - if (!other.devices_.isEmpty()) { - if (devices_.isEmpty()) { - devices_ = other.devices_; - bitField0_ = (bitField0_ & ~0x00000001); - } else { - ensureDevicesIsMutable(); - devices_.addAll(other.devices_); - } - onChanged(); - } - } else { - if (!other.devices_.isEmpty()) { - if (devicesBuilder_.isEmpty()) { - devicesBuilder_.dispose(); - devicesBuilder_ = null; - devices_ = other.devices_; - bitField0_ = (bitField0_ & ~0x00000001); - devicesBuilder_ = - com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? - getDevicesFieldBuilder() : null; - } else { - devicesBuilder_.addAllMessages(other.devices_); + /** + * .context.EventTypeEnum event_type = 2; + * @return The eventType. + */ + @java.lang.Override + public context.ContextOuterClass.EventTypeEnum getEventType() { + context.ContextOuterClass.EventTypeEnum result = context.ContextOuterClass.EventTypeEnum.forNumber(eventType_); + return result == null ? context.ContextOuterClass.EventTypeEnum.UNRECOGNIZED : result; + } + + /** + * .context.EventTypeEnum event_type = 2; + * @param value The eventType to set. + * @return This builder for chaining. + */ + public Builder setEventType(context.ContextOuterClass.EventTypeEnum value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000002; + eventType_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * .context.EventTypeEnum event_type = 2; + * @return This builder for chaining. + */ + public Builder clearEventType() { + bitField0_ = (bitField0_ & ~0x00000002); + eventType_ = 0; + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); } - } + // @@protoc_insertion_point(builder_scope:context.Event) } - if (linksBuilder_ == null) { - if (!other.links_.isEmpty()) { - if (links_.isEmpty()) { - links_ = other.links_; - bitField0_ = (bitField0_ & ~0x00000002); - } else { - ensureLinksIsMutable(); - links_.addAll(other.links_); - } - onChanged(); - } - } else { - if (!other.links_.isEmpty()) { - if (linksBuilder_.isEmpty()) { - linksBuilder_.dispose(); - linksBuilder_ = null; - links_ = other.links_; - bitField0_ = (bitField0_ & ~0x00000002); - linksBuilder_ = - com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? - getLinksFieldBuilder() : null; - } else { - linksBuilder_.addAllMessages(other.links_); - } - } - } - this.mergeUnknownFields(other.unknownFields); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - context.ContextOuterClass.TopologyDetails parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.TopologyDetails) e.getUnfinishedMessage(); - throw e.unwrapIOException(); - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - private context.ContextOuterClass.TopologyId topologyId_; - private com.google.protobuf.SingleFieldBuilderV3< - context.ContextOuterClass.TopologyId, context.ContextOuterClass.TopologyId.Builder, context.ContextOuterClass.TopologyIdOrBuilder> topologyIdBuilder_; - /** - * .context.TopologyId topology_id = 1; - * @return Whether the topologyId field is set. - */ - public boolean hasTopologyId() { - return topologyIdBuilder_ != null || topologyId_ != null; - } - /** - * .context.TopologyId topology_id = 1; - * @return The topologyId. - */ - public context.ContextOuterClass.TopologyId getTopologyId() { - if (topologyIdBuilder_ == null) { - return topologyId_ == null ? context.ContextOuterClass.TopologyId.getDefaultInstance() : topologyId_; - } else { - return topologyIdBuilder_.getMessage(); - } - } - /** - * .context.TopologyId topology_id = 1; - */ - public Builder setTopologyId(context.ContextOuterClass.TopologyId value) { - if (topologyIdBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - topologyId_ = value; - onChanged(); - } else { - topologyIdBuilder_.setMessage(value); - } - - return this; - } - /** - * .context.TopologyId topology_id = 1; - */ - public Builder setTopologyId( - context.ContextOuterClass.TopologyId.Builder builderForValue) { - if (topologyIdBuilder_ == null) { - topologyId_ = builderForValue.build(); - onChanged(); - } else { - topologyIdBuilder_.setMessage(builderForValue.build()); - } - - return this; - } - /** - * .context.TopologyId topology_id = 1; - */ - public Builder mergeTopologyId(context.ContextOuterClass.TopologyId value) { - if (topologyIdBuilder_ == null) { - if (topologyId_ != null) { - topologyId_ = - context.ContextOuterClass.TopologyId.newBuilder(topologyId_).mergeFrom(value).buildPartial(); - } else { - topologyId_ = value; - } - onChanged(); - } else { - topologyIdBuilder_.mergeFrom(value); - } - - return this; - } - /** - * .context.TopologyId topology_id = 1; - */ - public Builder clearTopologyId() { - if (topologyIdBuilder_ == null) { - topologyId_ = null; - onChanged(); - } else { - topologyId_ = null; - topologyIdBuilder_ = null; - } - - return this; - } - /** - * .context.TopologyId topology_id = 1; - */ - public context.ContextOuterClass.TopologyId.Builder getTopologyIdBuilder() { - - onChanged(); - return getTopologyIdFieldBuilder().getBuilder(); - } - /** - * .context.TopologyId topology_id = 1; - */ - public context.ContextOuterClass.TopologyIdOrBuilder getTopologyIdOrBuilder() { - if (topologyIdBuilder_ != null) { - return topologyIdBuilder_.getMessageOrBuilder(); - } else { - return topologyId_ == null ? - context.ContextOuterClass.TopologyId.getDefaultInstance() : topologyId_; - } - } - /** - * .context.TopologyId topology_id = 1; - */ - private com.google.protobuf.SingleFieldBuilderV3< - context.ContextOuterClass.TopologyId, context.ContextOuterClass.TopologyId.Builder, context.ContextOuterClass.TopologyIdOrBuilder> - getTopologyIdFieldBuilder() { - if (topologyIdBuilder_ == null) { - topologyIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - context.ContextOuterClass.TopologyId, context.ContextOuterClass.TopologyId.Builder, context.ContextOuterClass.TopologyIdOrBuilder>( - getTopologyId(), - getParentForChildren(), - isClean()); - topologyId_ = null; - } - return topologyIdBuilder_; - } - - private java.lang.Object name_ = ""; - /** - * string name = 2; - * @return The name. - */ - public java.lang.String getName() { - java.lang.Object ref = name_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - name_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string name = 2; - * @return The bytes for name. - */ - public com.google.protobuf.ByteString - getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - name_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string name = 2; - * @param value The name to set. - * @return This builder for chaining. - */ - public Builder setName( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - - name_ = value; - onChanged(); - return this; - } - /** - * string name = 2; - * @return This builder for chaining. - */ - public Builder clearName() { - - name_ = getDefaultInstance().getName(); - onChanged(); - return this; - } - /** - * string name = 2; - * @param value The bytes for name to set. - * @return This builder for chaining. - */ - public Builder setNameBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - - name_ = value; - onChanged(); - return this; - } - - private java.util.List devices_ = - java.util.Collections.emptyList(); - private void ensureDevicesIsMutable() { - if (!((bitField0_ & 0x00000001) != 0)) { - devices_ = new java.util.ArrayList(devices_); - bitField0_ |= 0x00000001; - } - } - - private com.google.protobuf.RepeatedFieldBuilderV3< - context.ContextOuterClass.Device, context.ContextOuterClass.Device.Builder, context.ContextOuterClass.DeviceOrBuilder> devicesBuilder_; - - /** - * repeated .context.Device devices = 3; - */ - public java.util.List getDevicesList() { - if (devicesBuilder_ == null) { - return java.util.Collections.unmodifiableList(devices_); - } else { - return devicesBuilder_.getMessageList(); - } - } - /** - * repeated .context.Device devices = 3; - */ - public int getDevicesCount() { - if (devicesBuilder_ == null) { - return devices_.size(); - } else { - return devicesBuilder_.getCount(); - } - } - /** - * repeated .context.Device devices = 3; - */ - public context.ContextOuterClass.Device getDevices(int index) { - if (devicesBuilder_ == null) { - return devices_.get(index); - } else { - return devicesBuilder_.getMessage(index); - } - } - /** - * repeated .context.Device devices = 3; - */ - public Builder setDevices( - int index, context.ContextOuterClass.Device value) { - if (devicesBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureDevicesIsMutable(); - devices_.set(index, value); - onChanged(); - } else { - devicesBuilder_.setMessage(index, value); - } - return this; - } - /** - * repeated .context.Device devices = 3; - */ - public Builder setDevices( - int index, context.ContextOuterClass.Device.Builder builderForValue) { - if (devicesBuilder_ == null) { - ensureDevicesIsMutable(); - devices_.set(index, builderForValue.build()); - onChanged(); - } else { - devicesBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .context.Device devices = 3; - */ - public Builder addDevices(context.ContextOuterClass.Device value) { - if (devicesBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureDevicesIsMutable(); - devices_.add(value); - onChanged(); - } else { - devicesBuilder_.addMessage(value); - } - return this; - } - /** - * repeated .context.Device devices = 3; - */ - public Builder addDevices( - int index, context.ContextOuterClass.Device value) { - if (devicesBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureDevicesIsMutable(); - devices_.add(index, value); - onChanged(); - } else { - devicesBuilder_.addMessage(index, value); - } - return this; - } - /** - * repeated .context.Device devices = 3; - */ - public Builder addDevices( - context.ContextOuterClass.Device.Builder builderForValue) { - if (devicesBuilder_ == null) { - ensureDevicesIsMutable(); - devices_.add(builderForValue.build()); - onChanged(); - } else { - devicesBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * repeated .context.Device devices = 3; - */ - public Builder addDevices( - int index, context.ContextOuterClass.Device.Builder builderForValue) { - if (devicesBuilder_ == null) { - ensureDevicesIsMutable(); - devices_.add(index, builderForValue.build()); - onChanged(); - } else { - devicesBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .context.Device devices = 3; - */ - public Builder addAllDevices( - java.lang.Iterable values) { - if (devicesBuilder_ == null) { - ensureDevicesIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, devices_); - onChanged(); - } else { - devicesBuilder_.addAllMessages(values); - } - return this; - } - /** - * repeated .context.Device devices = 3; - */ - public Builder clearDevices() { - if (devicesBuilder_ == null) { - devices_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - } else { - devicesBuilder_.clear(); - } - return this; - } - /** - * repeated .context.Device devices = 3; - */ - public Builder removeDevices(int index) { - if (devicesBuilder_ == null) { - ensureDevicesIsMutable(); - devices_.remove(index); - onChanged(); - } else { - devicesBuilder_.remove(index); - } - return this; - } - /** - * repeated .context.Device devices = 3; - */ - public context.ContextOuterClass.Device.Builder getDevicesBuilder( - int index) { - return getDevicesFieldBuilder().getBuilder(index); - } - /** - * repeated .context.Device devices = 3; - */ - public context.ContextOuterClass.DeviceOrBuilder getDevicesOrBuilder( - int index) { - if (devicesBuilder_ == null) { - return devices_.get(index); } else { - return devicesBuilder_.getMessageOrBuilder(index); - } - } - /** - * repeated .context.Device devices = 3; - */ - public java.util.List - getDevicesOrBuilderList() { - if (devicesBuilder_ != null) { - return devicesBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(devices_); - } - } - /** - * repeated .context.Device devices = 3; - */ - public context.ContextOuterClass.Device.Builder addDevicesBuilder() { - return getDevicesFieldBuilder().addBuilder( - context.ContextOuterClass.Device.getDefaultInstance()); - } - /** - * repeated .context.Device devices = 3; - */ - public context.ContextOuterClass.Device.Builder addDevicesBuilder( - int index) { - return getDevicesFieldBuilder().addBuilder( - index, context.ContextOuterClass.Device.getDefaultInstance()); - } - /** - * repeated .context.Device devices = 3; - */ - public java.util.List - getDevicesBuilderList() { - return getDevicesFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilderV3< - context.ContextOuterClass.Device, context.ContextOuterClass.Device.Builder, context.ContextOuterClass.DeviceOrBuilder> - getDevicesFieldBuilder() { - if (devicesBuilder_ == null) { - devicesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< - context.ContextOuterClass.Device, context.ContextOuterClass.Device.Builder, context.ContextOuterClass.DeviceOrBuilder>( - devices_, - ((bitField0_ & 0x00000001) != 0), - getParentForChildren(), - isClean()); - devices_ = null; - } - return devicesBuilder_; - } - - private java.util.List links_ = - java.util.Collections.emptyList(); - private void ensureLinksIsMutable() { - if (!((bitField0_ & 0x00000002) != 0)) { - links_ = new java.util.ArrayList(links_); - bitField0_ |= 0x00000002; - } - } - - private com.google.protobuf.RepeatedFieldBuilderV3< - context.ContextOuterClass.Link, context.ContextOuterClass.Link.Builder, context.ContextOuterClass.LinkOrBuilder> linksBuilder_; - - /** - * repeated .context.Link links = 4; - */ - public java.util.List getLinksList() { - if (linksBuilder_ == null) { - return java.util.Collections.unmodifiableList(links_); - } else { - return linksBuilder_.getMessageList(); - } - } - /** - * repeated .context.Link links = 4; - */ - public int getLinksCount() { - if (linksBuilder_ == null) { - return links_.size(); - } else { - return linksBuilder_.getCount(); - } - } - /** - * repeated .context.Link links = 4; - */ - public context.ContextOuterClass.Link getLinks(int index) { - if (linksBuilder_ == null) { - return links_.get(index); - } else { - return linksBuilder_.getMessage(index); - } - } - /** - * repeated .context.Link links = 4; - */ - public Builder setLinks( - int index, context.ContextOuterClass.Link value) { - if (linksBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureLinksIsMutable(); - links_.set(index, value); - onChanged(); - } else { - linksBuilder_.setMessage(index, value); - } - return this; - } - /** - * repeated .context.Link links = 4; - */ - public Builder setLinks( - int index, context.ContextOuterClass.Link.Builder builderForValue) { - if (linksBuilder_ == null) { - ensureLinksIsMutable(); - links_.set(index, builderForValue.build()); - onChanged(); - } else { - linksBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .context.Link links = 4; - */ - public Builder addLinks(context.ContextOuterClass.Link value) { - if (linksBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureLinksIsMutable(); - links_.add(value); - onChanged(); - } else { - linksBuilder_.addMessage(value); - } - return this; - } - /** - * repeated .context.Link links = 4; - */ - public Builder addLinks( - int index, context.ContextOuterClass.Link value) { - if (linksBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureLinksIsMutable(); - links_.add(index, value); - onChanged(); - } else { - linksBuilder_.addMessage(index, value); - } - return this; - } - /** - * repeated .context.Link links = 4; - */ - public Builder addLinks( - context.ContextOuterClass.Link.Builder builderForValue) { - if (linksBuilder_ == null) { - ensureLinksIsMutable(); - links_.add(builderForValue.build()); - onChanged(); - } else { - linksBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * repeated .context.Link links = 4; - */ - public Builder addLinks( - int index, context.ContextOuterClass.Link.Builder builderForValue) { - if (linksBuilder_ == null) { - ensureLinksIsMutable(); - links_.add(index, builderForValue.build()); - onChanged(); - } else { - linksBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .context.Link links = 4; - */ - public Builder addAllLinks( - java.lang.Iterable values) { - if (linksBuilder_ == null) { - ensureLinksIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, links_); - onChanged(); - } else { - linksBuilder_.addAllMessages(values); - } - return this; - } - /** - * repeated .context.Link links = 4; - */ - public Builder clearLinks() { - if (linksBuilder_ == null) { - links_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000002); - onChanged(); - } else { - linksBuilder_.clear(); - } - return this; - } - /** - * repeated .context.Link links = 4; - */ - public Builder removeLinks(int index) { - if (linksBuilder_ == null) { - ensureLinksIsMutable(); - links_.remove(index); - onChanged(); - } else { - linksBuilder_.remove(index); - } - return this; - } - /** - * repeated .context.Link links = 4; - */ - public context.ContextOuterClass.Link.Builder getLinksBuilder( - int index) { - return getLinksFieldBuilder().getBuilder(index); - } - /** - * repeated .context.Link links = 4; - */ - public context.ContextOuterClass.LinkOrBuilder getLinksOrBuilder( - int index) { - if (linksBuilder_ == null) { - return links_.get(index); } else { - return linksBuilder_.getMessageOrBuilder(index); - } - } - /** - * repeated .context.Link links = 4; - */ - public java.util.List - getLinksOrBuilderList() { - if (linksBuilder_ != null) { - return linksBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(links_); - } - } - /** - * repeated .context.Link links = 4; - */ - public context.ContextOuterClass.Link.Builder addLinksBuilder() { - return getLinksFieldBuilder().addBuilder( - context.ContextOuterClass.Link.getDefaultInstance()); - } - /** - * repeated .context.Link links = 4; - */ - public context.ContextOuterClass.Link.Builder addLinksBuilder( - int index) { - return getLinksFieldBuilder().addBuilder( - index, context.ContextOuterClass.Link.getDefaultInstance()); - } - /** - * repeated .context.Link links = 4; - */ - public java.util.List - getLinksBuilderList() { - return getLinksFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilderV3< - context.ContextOuterClass.Link, context.ContextOuterClass.Link.Builder, context.ContextOuterClass.LinkOrBuilder> - getLinksFieldBuilder() { - if (linksBuilder_ == null) { - linksBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< - context.ContextOuterClass.Link, context.ContextOuterClass.Link.Builder, context.ContextOuterClass.LinkOrBuilder>( - links_, - ((bitField0_ & 0x00000002) != 0), - getParentForChildren(), - isClean()); - links_ = null; - } - return linksBuilder_; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:context.TopologyDetails) - } - // @@protoc_insertion_point(class_scope:context.TopologyDetails) - private static final context.ContextOuterClass.TopologyDetails DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new context.ContextOuterClass.TopologyDetails(); - } + // @@protoc_insertion_point(class_scope:context.Event) + private static final context.ContextOuterClass.Event DEFAULT_INSTANCE; - public static context.ContextOuterClass.TopologyDetails getDefaultInstance() { - return DEFAULT_INSTANCE; - } + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.Event(); + } - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public TopologyDetails parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new TopologyDetails(input, extensionRegistry); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } + public static context.ContextOuterClass.Event getDefaultInstance() { + return DEFAULT_INSTANCE; + } - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public context.ContextOuterClass.TopologyDetails getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } + @java.lang.Override + public Event parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; - } + public static com.google.protobuf.Parser parser() { + return PARSER; + } - public interface TopologyIdListOrBuilder extends - // @@protoc_insertion_point(interface_extends:context.TopologyIdList) - com.google.protobuf.MessageOrBuilder { + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } - /** - * repeated .context.TopologyId topology_ids = 1; - */ - java.util.List - getTopologyIdsList(); - /** - * repeated .context.TopologyId topology_ids = 1; - */ - context.ContextOuterClass.TopologyId getTopologyIds(int index); - /** - * repeated .context.TopologyId topology_ids = 1; - */ - int getTopologyIdsCount(); - /** - * repeated .context.TopologyId topology_ids = 1; - */ - java.util.List - getTopologyIdsOrBuilderList(); - /** - * repeated .context.TopologyId topology_ids = 1; - */ - context.ContextOuterClass.TopologyIdOrBuilder getTopologyIdsOrBuilder( - int index); - } - /** - * Protobuf type {@code context.TopologyIdList} - */ - public static final class TopologyIdList extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:context.TopologyIdList) - TopologyIdListOrBuilder { - private static final long serialVersionUID = 0L; - // Use TopologyIdList.newBuilder() to construct. - private TopologyIdList(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private TopologyIdList() { - topologyIds_ = java.util.Collections.emptyList(); + @java.lang.Override + public context.ContextOuterClass.Event getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } } - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new TopologyIdList(); - } + public interface ContextIdOrBuilder extends // @@protoc_insertion_point(interface_extends:context.ContextId) + com.google.protobuf.MessageOrBuilder { - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private TopologyIdList( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - int mutable_bitField0_ = 0; - com.google.protobuf.UnknownFieldSet.Builder unknownFields = - com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - topologyIds_ = new java.util.ArrayList(); - mutable_bitField0_ |= 0x00000001; - } - topologyIds_.add( - input.readMessage(context.ContextOuterClass.TopologyId.parser(), extensionRegistry)); - break; - } - default: { - if (!parseUnknownField( - input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException( - e).setUnfinishedMessage(this); - } finally { - if (((mutable_bitField0_ & 0x00000001) != 0)) { - topologyIds_ = java.util.Collections.unmodifiableList(topologyIds_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return context.ContextOuterClass.internal_static_context_TopologyIdList_descriptor; - } + /** + * .context.Uuid context_uuid = 1; + * @return Whether the contextUuid field is set. + */ + boolean hasContextUuid(); - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_TopologyIdList_fieldAccessorTable - .ensureFieldAccessorsInitialized( - context.ContextOuterClass.TopologyIdList.class, context.ContextOuterClass.TopologyIdList.Builder.class); - } + /** + * .context.Uuid context_uuid = 1; + * @return The contextUuid. + */ + context.ContextOuterClass.Uuid getContextUuid(); - public static final int TOPOLOGY_IDS_FIELD_NUMBER = 1; - private java.util.List topologyIds_; - /** - * repeated .context.TopologyId topology_ids = 1; - */ - @java.lang.Override - public java.util.List getTopologyIdsList() { - return topologyIds_; - } - /** - * repeated .context.TopologyId topology_ids = 1; - */ - @java.lang.Override - public java.util.List - getTopologyIdsOrBuilderList() { - return topologyIds_; - } - /** - * repeated .context.TopologyId topology_ids = 1; - */ - @java.lang.Override - public int getTopologyIdsCount() { - return topologyIds_.size(); - } - /** - * repeated .context.TopologyId topology_ids = 1; - */ - @java.lang.Override - public context.ContextOuterClass.TopologyId getTopologyIds(int index) { - return topologyIds_.get(index); + /** + * .context.Uuid context_uuid = 1; + */ + context.ContextOuterClass.UuidOrBuilder getContextUuidOrBuilder(); } + /** - * repeated .context.TopologyId topology_ids = 1; + *
+     * ----- Context -------------------------------------------------------------------------------------------------------
+     * 
+ * + * Protobuf type {@code context.ContextId} */ - @java.lang.Override - public context.ContextOuterClass.TopologyIdOrBuilder getTopologyIdsOrBuilder( - int index) { - return topologyIds_.get(index); - } + public static final class ContextId extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.ContextId) + ContextIdOrBuilder { - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; + private static final long serialVersionUID = 0L; - memoizedIsInitialized = 1; - return true; - } + // Use ContextId.newBuilder() to construct. + private ContextId(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - for (int i = 0; i < topologyIds_.size(); i++) { - output.writeMessage(1, topologyIds_.get(i)); - } - unknownFields.writeTo(output); - } + private ContextId() { + } - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - for (int i = 0; i < topologyIds_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(1, topologyIds_.get(i)); - } - size += unknownFields.getSerializedSize(); - memoizedSize = size; - return size; - } + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new ContextId(); + } - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof context.ContextOuterClass.TopologyIdList)) { - return super.equals(obj); - } - context.ContextOuterClass.TopologyIdList other = (context.ContextOuterClass.TopologyIdList) obj; - - if (!getTopologyIdsList() - .equals(other.getTopologyIdsList())) return false; - if (!unknownFields.equals(other.unknownFields)) return false; - return true; - } + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_ContextId_descriptor; + } - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - if (getTopologyIdsCount() > 0) { - hash = (37 * hash) + TOPOLOGY_IDS_FIELD_NUMBER; - hash = (53 * hash) + getTopologyIdsList().hashCode(); - } - hash = (29 * hash) + unknownFields.hashCode(); - memoizedHashCode = hash; - return hash; - } + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_ContextId_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.ContextId.class, context.ContextOuterClass.ContextId.Builder.class); + } - public static context.ContextOuterClass.TopologyIdList parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static context.ContextOuterClass.TopologyIdList parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static context.ContextOuterClass.TopologyIdList parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static context.ContextOuterClass.TopologyIdList parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static context.ContextOuterClass.TopologyIdList parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static context.ContextOuterClass.TopologyIdList parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static context.ContextOuterClass.TopologyIdList parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static context.ContextOuterClass.TopologyIdList parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - public static context.ContextOuterClass.TopologyIdList parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - public static context.ContextOuterClass.TopologyIdList parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static context.ContextOuterClass.TopologyIdList parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static context.ContextOuterClass.TopologyIdList parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } + public static final int CONTEXT_UUID_FIELD_NUMBER = 1; - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(context.ContextOuterClass.TopologyIdList prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } + private context.ContextOuterClass.Uuid contextUuid_; - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code context.TopologyIdList} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:context.TopologyIdList) - context.ContextOuterClass.TopologyIdListOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return context.ContextOuterClass.internal_static_context_TopologyIdList_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_TopologyIdList_fieldAccessorTable - .ensureFieldAccessorsInitialized( - context.ContextOuterClass.TopologyIdList.class, context.ContextOuterClass.TopologyIdList.Builder.class); - } - - // Construct using context.ContextOuterClass.TopologyIdList.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3 - .alwaysUseFieldBuilders) { - getTopologyIdsFieldBuilder(); - } - } - @java.lang.Override - public Builder clear() { - super.clear(); - if (topologyIdsBuilder_ == null) { - topologyIds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); - } else { - topologyIdsBuilder_.clear(); - } - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return context.ContextOuterClass.internal_static_context_TopologyIdList_descriptor; - } - - @java.lang.Override - public context.ContextOuterClass.TopologyIdList getDefaultInstanceForType() { - return context.ContextOuterClass.TopologyIdList.getDefaultInstance(); - } - - @java.lang.Override - public context.ContextOuterClass.TopologyIdList build() { - context.ContextOuterClass.TopologyIdList result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public context.ContextOuterClass.TopologyIdList buildPartial() { - context.ContextOuterClass.TopologyIdList result = new context.ContextOuterClass.TopologyIdList(this); - int from_bitField0_ = bitField0_; - if (topologyIdsBuilder_ == null) { - if (((bitField0_ & 0x00000001) != 0)) { - topologyIds_ = java.util.Collections.unmodifiableList(topologyIds_); - bitField0_ = (bitField0_ & ~0x00000001); - } - result.topologyIds_ = topologyIds_; - } else { - result.topologyIds_ = topologyIdsBuilder_.build(); - } - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof context.ContextOuterClass.TopologyIdList) { - return mergeFrom((context.ContextOuterClass.TopologyIdList)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(context.ContextOuterClass.TopologyIdList other) { - if (other == context.ContextOuterClass.TopologyIdList.getDefaultInstance()) return this; - if (topologyIdsBuilder_ == null) { - if (!other.topologyIds_.isEmpty()) { - if (topologyIds_.isEmpty()) { - topologyIds_ = other.topologyIds_; - bitField0_ = (bitField0_ & ~0x00000001); - } else { - ensureTopologyIdsIsMutable(); - topologyIds_.addAll(other.topologyIds_); - } - onChanged(); - } - } else { - if (!other.topologyIds_.isEmpty()) { - if (topologyIdsBuilder_.isEmpty()) { - topologyIdsBuilder_.dispose(); - topologyIdsBuilder_ = null; - topologyIds_ = other.topologyIds_; - bitField0_ = (bitField0_ & ~0x00000001); - topologyIdsBuilder_ = - com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? - getTopologyIdsFieldBuilder() : null; - } else { - topologyIdsBuilder_.addAllMessages(other.topologyIds_); - } - } - } - this.mergeUnknownFields(other.unknownFields); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - context.ContextOuterClass.TopologyIdList parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.TopologyIdList) e.getUnfinishedMessage(); - throw e.unwrapIOException(); - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - private java.util.List topologyIds_ = - java.util.Collections.emptyList(); - private void ensureTopologyIdsIsMutable() { - if (!((bitField0_ & 0x00000001) != 0)) { - topologyIds_ = new java.util.ArrayList(topologyIds_); - bitField0_ |= 0x00000001; - } - } - - private com.google.protobuf.RepeatedFieldBuilderV3< - context.ContextOuterClass.TopologyId, context.ContextOuterClass.TopologyId.Builder, context.ContextOuterClass.TopologyIdOrBuilder> topologyIdsBuilder_; - - /** - * repeated .context.TopologyId topology_ids = 1; - */ - public java.util.List getTopologyIdsList() { - if (topologyIdsBuilder_ == null) { - return java.util.Collections.unmodifiableList(topologyIds_); - } else { - return topologyIdsBuilder_.getMessageList(); - } - } - /** - * repeated .context.TopologyId topology_ids = 1; - */ - public int getTopologyIdsCount() { - if (topologyIdsBuilder_ == null) { - return topologyIds_.size(); - } else { - return topologyIdsBuilder_.getCount(); - } - } - /** - * repeated .context.TopologyId topology_ids = 1; - */ - public context.ContextOuterClass.TopologyId getTopologyIds(int index) { - if (topologyIdsBuilder_ == null) { - return topologyIds_.get(index); - } else { - return topologyIdsBuilder_.getMessage(index); - } - } - /** - * repeated .context.TopologyId topology_ids = 1; - */ - public Builder setTopologyIds( - int index, context.ContextOuterClass.TopologyId value) { - if (topologyIdsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureTopologyIdsIsMutable(); - topologyIds_.set(index, value); - onChanged(); - } else { - topologyIdsBuilder_.setMessage(index, value); - } - return this; - } - /** - * repeated .context.TopologyId topology_ids = 1; - */ - public Builder setTopologyIds( - int index, context.ContextOuterClass.TopologyId.Builder builderForValue) { - if (topologyIdsBuilder_ == null) { - ensureTopologyIdsIsMutable(); - topologyIds_.set(index, builderForValue.build()); - onChanged(); - } else { - topologyIdsBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .context.TopologyId topology_ids = 1; - */ - public Builder addTopologyIds(context.ContextOuterClass.TopologyId value) { - if (topologyIdsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureTopologyIdsIsMutable(); - topologyIds_.add(value); - onChanged(); - } else { - topologyIdsBuilder_.addMessage(value); - } - return this; - } - /** - * repeated .context.TopologyId topology_ids = 1; - */ - public Builder addTopologyIds( - int index, context.ContextOuterClass.TopologyId value) { - if (topologyIdsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureTopologyIdsIsMutable(); - topologyIds_.add(index, value); - onChanged(); - } else { - topologyIdsBuilder_.addMessage(index, value); - } - return this; - } - /** - * repeated .context.TopologyId topology_ids = 1; - */ - public Builder addTopologyIds( - context.ContextOuterClass.TopologyId.Builder builderForValue) { - if (topologyIdsBuilder_ == null) { - ensureTopologyIdsIsMutable(); - topologyIds_.add(builderForValue.build()); - onChanged(); - } else { - topologyIdsBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * repeated .context.TopologyId topology_ids = 1; - */ - public Builder addTopologyIds( - int index, context.ContextOuterClass.TopologyId.Builder builderForValue) { - if (topologyIdsBuilder_ == null) { - ensureTopologyIdsIsMutable(); - topologyIds_.add(index, builderForValue.build()); - onChanged(); - } else { - topologyIdsBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .context.TopologyId topology_ids = 1; - */ - public Builder addAllTopologyIds( - java.lang.Iterable values) { - if (topologyIdsBuilder_ == null) { - ensureTopologyIdsIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, topologyIds_); - onChanged(); - } else { - topologyIdsBuilder_.addAllMessages(values); - } - return this; - } - /** - * repeated .context.TopologyId topology_ids = 1; - */ - public Builder clearTopologyIds() { - if (topologyIdsBuilder_ == null) { - topologyIds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - } else { - topologyIdsBuilder_.clear(); - } - return this; - } - /** - * repeated .context.TopologyId topology_ids = 1; - */ - public Builder removeTopologyIds(int index) { - if (topologyIdsBuilder_ == null) { - ensureTopologyIdsIsMutable(); - topologyIds_.remove(index); - onChanged(); - } else { - topologyIdsBuilder_.remove(index); - } - return this; - } - /** - * repeated .context.TopologyId topology_ids = 1; - */ - public context.ContextOuterClass.TopologyId.Builder getTopologyIdsBuilder( - int index) { - return getTopologyIdsFieldBuilder().getBuilder(index); - } - /** - * repeated .context.TopologyId topology_ids = 1; - */ - public context.ContextOuterClass.TopologyIdOrBuilder getTopologyIdsOrBuilder( - int index) { - if (topologyIdsBuilder_ == null) { - return topologyIds_.get(index); } else { - return topologyIdsBuilder_.getMessageOrBuilder(index); - } - } - /** - * repeated .context.TopologyId topology_ids = 1; - */ - public java.util.List - getTopologyIdsOrBuilderList() { - if (topologyIdsBuilder_ != null) { - return topologyIdsBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(topologyIds_); - } - } - /** - * repeated .context.TopologyId topology_ids = 1; - */ - public context.ContextOuterClass.TopologyId.Builder addTopologyIdsBuilder() { - return getTopologyIdsFieldBuilder().addBuilder( - context.ContextOuterClass.TopologyId.getDefaultInstance()); - } - /** - * repeated .context.TopologyId topology_ids = 1; - */ - public context.ContextOuterClass.TopologyId.Builder addTopologyIdsBuilder( - int index) { - return getTopologyIdsFieldBuilder().addBuilder( - index, context.ContextOuterClass.TopologyId.getDefaultInstance()); - } - /** - * repeated .context.TopologyId topology_ids = 1; - */ - public java.util.List - getTopologyIdsBuilderList() { - return getTopologyIdsFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilderV3< - context.ContextOuterClass.TopologyId, context.ContextOuterClass.TopologyId.Builder, context.ContextOuterClass.TopologyIdOrBuilder> - getTopologyIdsFieldBuilder() { - if (topologyIdsBuilder_ == null) { - topologyIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< - context.ContextOuterClass.TopologyId, context.ContextOuterClass.TopologyId.Builder, context.ContextOuterClass.TopologyIdOrBuilder>( - topologyIds_, - ((bitField0_ & 0x00000001) != 0), - getParentForChildren(), - isClean()); - topologyIds_ = null; - } - return topologyIdsBuilder_; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:context.TopologyIdList) - } + /** + * .context.Uuid context_uuid = 1; + * @return Whether the contextUuid field is set. + */ + @java.lang.Override + public boolean hasContextUuid() { + return contextUuid_ != null; + } - // @@protoc_insertion_point(class_scope:context.TopologyIdList) - private static final context.ContextOuterClass.TopologyIdList DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new context.ContextOuterClass.TopologyIdList(); - } + /** + * .context.Uuid context_uuid = 1; + * @return The contextUuid. + */ + @java.lang.Override + public context.ContextOuterClass.Uuid getContextUuid() { + return contextUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : contextUuid_; + } - public static context.ContextOuterClass.TopologyIdList getDefaultInstance() { - return DEFAULT_INSTANCE; - } + /** + * .context.Uuid context_uuid = 1; + */ + @java.lang.Override + public context.ContextOuterClass.UuidOrBuilder getContextUuidOrBuilder() { + return contextUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : contextUuid_; + } - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public TopologyIdList parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new TopologyIdList(input, extensionRegistry); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } + private byte memoizedIsInitialized = -1; - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } - @java.lang.Override - public context.ContextOuterClass.TopologyIdList getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (contextUuid_ != null) { + output.writeMessage(1, getContextUuid()); + } + getUnknownFields().writeTo(output); + } - } + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + if (contextUuid_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getContextUuid()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } - public interface TopologyListOrBuilder extends - // @@protoc_insertion_point(interface_extends:context.TopologyList) - com.google.protobuf.MessageOrBuilder { + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.ContextId)) { + return super.equals(obj); + } + context.ContextOuterClass.ContextId other = (context.ContextOuterClass.ContextId) obj; + if (hasContextUuid() != other.hasContextUuid()) + return false; + if (hasContextUuid()) { + if (!getContextUuid().equals(other.getContextUuid())) + return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } - /** - * repeated .context.Topology topologies = 1; - */ - java.util.List - getTopologiesList(); - /** - * repeated .context.Topology topologies = 1; - */ - context.ContextOuterClass.Topology getTopologies(int index); - /** - * repeated .context.Topology topologies = 1; - */ - int getTopologiesCount(); - /** - * repeated .context.Topology topologies = 1; - */ - java.util.List - getTopologiesOrBuilderList(); - /** - * repeated .context.Topology topologies = 1; - */ - context.ContextOuterClass.TopologyOrBuilder getTopologiesOrBuilder( - int index); - } - /** - * Protobuf type {@code context.TopologyList} - */ - public static final class TopologyList extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:context.TopologyList) - TopologyListOrBuilder { - private static final long serialVersionUID = 0L; - // Use TopologyList.newBuilder() to construct. - private TopologyList(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private TopologyList() { - topologies_ = java.util.Collections.emptyList(); - } + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasContextUuid()) { + hash = (37 * hash) + CONTEXT_UUID_FIELD_NUMBER; + hash = (53 * hash) + getContextUuid().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new TopologyList(); - } + public static context.ContextOuterClass.ContextId parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private TopologyList( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - int mutable_bitField0_ = 0; - com.google.protobuf.UnknownFieldSet.Builder unknownFields = - com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - topologies_ = new java.util.ArrayList(); - mutable_bitField0_ |= 0x00000001; - } - topologies_.add( - input.readMessage(context.ContextOuterClass.Topology.parser(), extensionRegistry)); - break; - } - default: { - if (!parseUnknownField( - input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException( - e).setUnfinishedMessage(this); - } finally { - if (((mutable_bitField0_ & 0x00000001) != 0)) { - topologies_ = java.util.Collections.unmodifiableList(topologies_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return context.ContextOuterClass.internal_static_context_TopologyList_descriptor; - } + public static context.ContextOuterClass.ContextId parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_TopologyList_fieldAccessorTable - .ensureFieldAccessorsInitialized( - context.ContextOuterClass.TopologyList.class, context.ContextOuterClass.TopologyList.Builder.class); - } + public static context.ContextOuterClass.ContextId parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } - public static final int TOPOLOGIES_FIELD_NUMBER = 1; - private java.util.List topologies_; - /** - * repeated .context.Topology topologies = 1; - */ - @java.lang.Override - public java.util.List getTopologiesList() { - return topologies_; - } - /** - * repeated .context.Topology topologies = 1; - */ - @java.lang.Override - public java.util.List - getTopologiesOrBuilderList() { - return topologies_; - } - /** - * repeated .context.Topology topologies = 1; - */ - @java.lang.Override - public int getTopologiesCount() { - return topologies_.size(); - } - /** - * repeated .context.Topology topologies = 1; - */ - @java.lang.Override - public context.ContextOuterClass.Topology getTopologies(int index) { - return topologies_.get(index); - } - /** - * repeated .context.Topology topologies = 1; - */ - @java.lang.Override - public context.ContextOuterClass.TopologyOrBuilder getTopologiesOrBuilder( - int index) { - return topologies_.get(index); - } + public static context.ContextOuterClass.ContextId parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; + public static context.ContextOuterClass.ContextId parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } - memoizedIsInitialized = 1; - return true; - } + public static context.ContextOuterClass.ContextId parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - for (int i = 0; i < topologies_.size(); i++) { - output.writeMessage(1, topologies_.get(i)); - } - unknownFields.writeTo(output); - } + public static context.ContextOuterClass.ContextId parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - for (int i = 0; i < topologies_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(1, topologies_.get(i)); - } - size += unknownFields.getSerializedSize(); - memoizedSize = size; - return size; - } + public static context.ContextOuterClass.ContextId parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof context.ContextOuterClass.TopologyList)) { - return super.equals(obj); - } - context.ContextOuterClass.TopologyList other = (context.ContextOuterClass.TopologyList) obj; - - if (!getTopologiesList() - .equals(other.getTopologiesList())) return false; - if (!unknownFields.equals(other.unknownFields)) return false; - return true; - } + public static context.ContextOuterClass.ContextId parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - if (getTopologiesCount() > 0) { - hash = (37 * hash) + TOPOLOGIES_FIELD_NUMBER; - hash = (53 * hash) + getTopologiesList().hashCode(); - } - hash = (29 * hash) + unknownFields.hashCode(); - memoizedHashCode = hash; - return hash; - } + public static context.ContextOuterClass.ContextId parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } - public static context.ContextOuterClass.TopologyList parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static context.ContextOuterClass.TopologyList parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static context.ContextOuterClass.TopologyList parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static context.ContextOuterClass.TopologyList parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static context.ContextOuterClass.TopologyList parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static context.ContextOuterClass.TopologyList parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static context.ContextOuterClass.TopologyList parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static context.ContextOuterClass.TopologyList parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - public static context.ContextOuterClass.TopologyList parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - public static context.ContextOuterClass.TopologyList parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static context.ContextOuterClass.TopologyList parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static context.ContextOuterClass.TopologyList parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } + public static context.ContextOuterClass.ContextId parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(context.ContextOuterClass.TopologyList prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } + public static context.ContextOuterClass.ContextId parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code context.TopologyList} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:context.TopologyList) - context.ContextOuterClass.TopologyListOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return context.ContextOuterClass.internal_static_context_TopologyList_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_TopologyList_fieldAccessorTable - .ensureFieldAccessorsInitialized( - context.ContextOuterClass.TopologyList.class, context.ContextOuterClass.TopologyList.Builder.class); - } - - // Construct using context.ContextOuterClass.TopologyList.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3 - .alwaysUseFieldBuilders) { - getTopologiesFieldBuilder(); - } - } - @java.lang.Override - public Builder clear() { - super.clear(); - if (topologiesBuilder_ == null) { - topologies_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); - } else { - topologiesBuilder_.clear(); - } - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return context.ContextOuterClass.internal_static_context_TopologyList_descriptor; - } - - @java.lang.Override - public context.ContextOuterClass.TopologyList getDefaultInstanceForType() { - return context.ContextOuterClass.TopologyList.getDefaultInstance(); - } - - @java.lang.Override - public context.ContextOuterClass.TopologyList build() { - context.ContextOuterClass.TopologyList result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public context.ContextOuterClass.TopologyList buildPartial() { - context.ContextOuterClass.TopologyList result = new context.ContextOuterClass.TopologyList(this); - int from_bitField0_ = bitField0_; - if (topologiesBuilder_ == null) { - if (((bitField0_ & 0x00000001) != 0)) { - topologies_ = java.util.Collections.unmodifiableList(topologies_); - bitField0_ = (bitField0_ & ~0x00000001); - } - result.topologies_ = topologies_; - } else { - result.topologies_ = topologiesBuilder_.build(); - } - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof context.ContextOuterClass.TopologyList) { - return mergeFrom((context.ContextOuterClass.TopologyList)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(context.ContextOuterClass.TopologyList other) { - if (other == context.ContextOuterClass.TopologyList.getDefaultInstance()) return this; - if (topologiesBuilder_ == null) { - if (!other.topologies_.isEmpty()) { - if (topologies_.isEmpty()) { - topologies_ = other.topologies_; - bitField0_ = (bitField0_ & ~0x00000001); - } else { - ensureTopologiesIsMutable(); - topologies_.addAll(other.topologies_); - } - onChanged(); - } - } else { - if (!other.topologies_.isEmpty()) { - if (topologiesBuilder_.isEmpty()) { - topologiesBuilder_.dispose(); - topologiesBuilder_ = null; - topologies_ = other.topologies_; - bitField0_ = (bitField0_ & ~0x00000001); - topologiesBuilder_ = - com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? - getTopologiesFieldBuilder() : null; - } else { - topologiesBuilder_.addAllMessages(other.topologies_); - } - } - } - this.mergeUnknownFields(other.unknownFields); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - context.ContextOuterClass.TopologyList parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.TopologyList) e.getUnfinishedMessage(); - throw e.unwrapIOException(); - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - private java.util.List topologies_ = - java.util.Collections.emptyList(); - private void ensureTopologiesIsMutable() { - if (!((bitField0_ & 0x00000001) != 0)) { - topologies_ = new java.util.ArrayList(topologies_); - bitField0_ |= 0x00000001; - } - } - - private com.google.protobuf.RepeatedFieldBuilderV3< - context.ContextOuterClass.Topology, context.ContextOuterClass.Topology.Builder, context.ContextOuterClass.TopologyOrBuilder> topologiesBuilder_; - - /** - * repeated .context.Topology topologies = 1; - */ - public java.util.List getTopologiesList() { - if (topologiesBuilder_ == null) { - return java.util.Collections.unmodifiableList(topologies_); - } else { - return topologiesBuilder_.getMessageList(); - } - } - /** - * repeated .context.Topology topologies = 1; - */ - public int getTopologiesCount() { - if (topologiesBuilder_ == null) { - return topologies_.size(); - } else { - return topologiesBuilder_.getCount(); - } - } - /** - * repeated .context.Topology topologies = 1; - */ - public context.ContextOuterClass.Topology getTopologies(int index) { - if (topologiesBuilder_ == null) { - return topologies_.get(index); - } else { - return topologiesBuilder_.getMessage(index); - } - } - /** - * repeated .context.Topology topologies = 1; - */ - public Builder setTopologies( - int index, context.ContextOuterClass.Topology value) { - if (topologiesBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureTopologiesIsMutable(); - topologies_.set(index, value); - onChanged(); - } else { - topologiesBuilder_.setMessage(index, value); - } - return this; - } - /** - * repeated .context.Topology topologies = 1; - */ - public Builder setTopologies( - int index, context.ContextOuterClass.Topology.Builder builderForValue) { - if (topologiesBuilder_ == null) { - ensureTopologiesIsMutable(); - topologies_.set(index, builderForValue.build()); - onChanged(); - } else { - topologiesBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .context.Topology topologies = 1; - */ - public Builder addTopologies(context.ContextOuterClass.Topology value) { - if (topologiesBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureTopologiesIsMutable(); - topologies_.add(value); - onChanged(); - } else { - topologiesBuilder_.addMessage(value); - } - return this; - } - /** - * repeated .context.Topology topologies = 1; - */ - public Builder addTopologies( - int index, context.ContextOuterClass.Topology value) { - if (topologiesBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureTopologiesIsMutable(); - topologies_.add(index, value); - onChanged(); - } else { - topologiesBuilder_.addMessage(index, value); - } - return this; - } - /** - * repeated .context.Topology topologies = 1; - */ - public Builder addTopologies( - context.ContextOuterClass.Topology.Builder builderForValue) { - if (topologiesBuilder_ == null) { - ensureTopologiesIsMutable(); - topologies_.add(builderForValue.build()); - onChanged(); - } else { - topologiesBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * repeated .context.Topology topologies = 1; - */ - public Builder addTopologies( - int index, context.ContextOuterClass.Topology.Builder builderForValue) { - if (topologiesBuilder_ == null) { - ensureTopologiesIsMutable(); - topologies_.add(index, builderForValue.build()); - onChanged(); - } else { - topologiesBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .context.Topology topologies = 1; - */ - public Builder addAllTopologies( - java.lang.Iterable values) { - if (topologiesBuilder_ == null) { - ensureTopologiesIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, topologies_); - onChanged(); - } else { - topologiesBuilder_.addAllMessages(values); - } - return this; - } - /** - * repeated .context.Topology topologies = 1; - */ - public Builder clearTopologies() { - if (topologiesBuilder_ == null) { - topologies_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - } else { - topologiesBuilder_.clear(); - } - return this; - } - /** - * repeated .context.Topology topologies = 1; - */ - public Builder removeTopologies(int index) { - if (topologiesBuilder_ == null) { - ensureTopologiesIsMutable(); - topologies_.remove(index); - onChanged(); - } else { - topologiesBuilder_.remove(index); - } - return this; - } - /** - * repeated .context.Topology topologies = 1; - */ - public context.ContextOuterClass.Topology.Builder getTopologiesBuilder( - int index) { - return getTopologiesFieldBuilder().getBuilder(index); - } - /** - * repeated .context.Topology topologies = 1; - */ - public context.ContextOuterClass.TopologyOrBuilder getTopologiesOrBuilder( - int index) { - if (topologiesBuilder_ == null) { - return topologies_.get(index); } else { - return topologiesBuilder_.getMessageOrBuilder(index); - } - } - /** - * repeated .context.Topology topologies = 1; - */ - public java.util.List - getTopologiesOrBuilderList() { - if (topologiesBuilder_ != null) { - return topologiesBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(topologies_); - } - } - /** - * repeated .context.Topology topologies = 1; - */ - public context.ContextOuterClass.Topology.Builder addTopologiesBuilder() { - return getTopologiesFieldBuilder().addBuilder( - context.ContextOuterClass.Topology.getDefaultInstance()); - } - /** - * repeated .context.Topology topologies = 1; - */ - public context.ContextOuterClass.Topology.Builder addTopologiesBuilder( - int index) { - return getTopologiesFieldBuilder().addBuilder( - index, context.ContextOuterClass.Topology.getDefaultInstance()); - } - /** - * repeated .context.Topology topologies = 1; - */ - public java.util.List - getTopologiesBuilderList() { - return getTopologiesFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilderV3< - context.ContextOuterClass.Topology, context.ContextOuterClass.Topology.Builder, context.ContextOuterClass.TopologyOrBuilder> - getTopologiesFieldBuilder() { - if (topologiesBuilder_ == null) { - topologiesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< - context.ContextOuterClass.Topology, context.ContextOuterClass.Topology.Builder, context.ContextOuterClass.TopologyOrBuilder>( - topologies_, - ((bitField0_ & 0x00000001) != 0), - getParentForChildren(), - isClean()); - topologies_ = null; - } - return topologiesBuilder_; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:context.TopologyList) - } + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } - // @@protoc_insertion_point(class_scope:context.TopologyList) - private static final context.ContextOuterClass.TopologyList DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new context.ContextOuterClass.TopologyList(); - } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } - public static context.ContextOuterClass.TopologyList getDefaultInstance() { - return DEFAULT_INSTANCE; - } + public static Builder newBuilder(context.ContextOuterClass.ContextId prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public TopologyList parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new TopologyList(input, extensionRegistry); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } - @java.lang.Override - public context.ContextOuterClass.TopologyList getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } + /** + *
+         * ----- Context -------------------------------------------------------------------------------------------------------
+         * 
+ * + * Protobuf type {@code context.ContextId} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.ContextId) + context.ContextOuterClass.ContextIdOrBuilder { - } + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_ContextId_descriptor; + } - public interface TopologyEventOrBuilder extends - // @@protoc_insertion_point(interface_extends:context.TopologyEvent) - com.google.protobuf.MessageOrBuilder { + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_ContextId_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.ContextId.class, context.ContextOuterClass.ContextId.Builder.class); + } - /** - * .context.Event event = 1; - * @return Whether the event field is set. - */ - boolean hasEvent(); - /** - * .context.Event event = 1; - * @return The event. - */ - context.ContextOuterClass.Event getEvent(); - /** - * .context.Event event = 1; - */ - context.ContextOuterClass.EventOrBuilder getEventOrBuilder(); + // Construct using context.ContextOuterClass.ContextId.newBuilder() + private Builder() { + } - /** - * .context.TopologyId topology_id = 2; - * @return Whether the topologyId field is set. - */ - boolean hasTopologyId(); - /** - * .context.TopologyId topology_id = 2; - * @return The topologyId. - */ - context.ContextOuterClass.TopologyId getTopologyId(); - /** - * .context.TopologyId topology_id = 2; - */ - context.ContextOuterClass.TopologyIdOrBuilder getTopologyIdOrBuilder(); - } - /** - * Protobuf type {@code context.TopologyEvent} - */ - public static final class TopologyEvent extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:context.TopologyEvent) - TopologyEventOrBuilder { - private static final long serialVersionUID = 0L; - // Use TopologyEvent.newBuilder() to construct. - private TopologyEvent(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private TopologyEvent() { - } + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new TopologyEvent(); - } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + contextUuid_ = null; + if (contextUuidBuilder_ != null) { + contextUuidBuilder_.dispose(); + contextUuidBuilder_ = null; + } + return this; + } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private TopologyEvent( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = - com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - context.ContextOuterClass.Event.Builder subBuilder = null; - if (event_ != null) { - subBuilder = event_.toBuilder(); - } - event_ = input.readMessage(context.ContextOuterClass.Event.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(event_); - event_ = subBuilder.buildPartial(); - } - - break; - } - case 18: { - context.ContextOuterClass.TopologyId.Builder subBuilder = null; - if (topologyId_ != null) { - subBuilder = topologyId_.toBuilder(); - } - topologyId_ = input.readMessage(context.ContextOuterClass.TopologyId.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(topologyId_); - topologyId_ = subBuilder.buildPartial(); - } - - break; - } - default: { - if (!parseUnknownField( - input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException( - e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return context.ContextOuterClass.internal_static_context_TopologyEvent_descriptor; - } + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_ContextId_descriptor; + } - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_TopologyEvent_fieldAccessorTable - .ensureFieldAccessorsInitialized( - context.ContextOuterClass.TopologyEvent.class, context.ContextOuterClass.TopologyEvent.Builder.class); - } + @java.lang.Override + public context.ContextOuterClass.ContextId getDefaultInstanceForType() { + return context.ContextOuterClass.ContextId.getDefaultInstance(); + } - public static final int EVENT_FIELD_NUMBER = 1; - private context.ContextOuterClass.Event event_; - /** - * .context.Event event = 1; - * @return Whether the event field is set. - */ - @java.lang.Override - public boolean hasEvent() { - return event_ != null; - } - /** - * .context.Event event = 1; - * @return The event. - */ - @java.lang.Override - public context.ContextOuterClass.Event getEvent() { - return event_ == null ? context.ContextOuterClass.Event.getDefaultInstance() : event_; - } - /** - * .context.Event event = 1; - */ - @java.lang.Override - public context.ContextOuterClass.EventOrBuilder getEventOrBuilder() { - return getEvent(); - } + @java.lang.Override + public context.ContextOuterClass.ContextId build() { + context.ContextOuterClass.ContextId result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } - public static final int TOPOLOGY_ID_FIELD_NUMBER = 2; - private context.ContextOuterClass.TopologyId topologyId_; - /** - * .context.TopologyId topology_id = 2; - * @return Whether the topologyId field is set. - */ - @java.lang.Override - public boolean hasTopologyId() { - return topologyId_ != null; - } - /** - * .context.TopologyId topology_id = 2; - * @return The topologyId. - */ - @java.lang.Override - public context.ContextOuterClass.TopologyId getTopologyId() { - return topologyId_ == null ? context.ContextOuterClass.TopologyId.getDefaultInstance() : topologyId_; - } - /** - * .context.TopologyId topology_id = 2; - */ - @java.lang.Override - public context.ContextOuterClass.TopologyIdOrBuilder getTopologyIdOrBuilder() { - return getTopologyId(); - } + @java.lang.Override + public context.ContextOuterClass.ContextId buildPartial() { + context.ContextOuterClass.ContextId result = new context.ContextOuterClass.ContextId(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; + private void buildPartial0(context.ContextOuterClass.ContextId result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.contextUuid_ = contextUuidBuilder_ == null ? contextUuid_ : contextUuidBuilder_.build(); + } + } - memoizedIsInitialized = 1; - return true; - } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.ContextId) { + return mergeFrom((context.ContextOuterClass.ContextId) other); + } else { + super.mergeFrom(other); + return this; + } + } - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (event_ != null) { - output.writeMessage(1, getEvent()); - } - if (topologyId_ != null) { - output.writeMessage(2, getTopologyId()); - } - unknownFields.writeTo(output); - } + public Builder mergeFrom(context.ContextOuterClass.ContextId other) { + if (other == context.ContextOuterClass.ContextId.getDefaultInstance()) + return this; + if (other.hasContextUuid()) { + mergeContextUuid(other.getContextUuid()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (event_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(1, getEvent()); - } - if (topologyId_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(2, getTopologyId()); - } - size += unknownFields.getSerializedSize(); - memoizedSize = size; - return size; - } + @java.lang.Override + public final boolean isInitialized() { + return true; + } - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof context.ContextOuterClass.TopologyEvent)) { - return super.equals(obj); - } - context.ContextOuterClass.TopologyEvent other = (context.ContextOuterClass.TopologyEvent) obj; - - if (hasEvent() != other.hasEvent()) return false; - if (hasEvent()) { - if (!getEvent() - .equals(other.getEvent())) return false; - } - if (hasTopologyId() != other.hasTopologyId()) return false; - if (hasTopologyId()) { - if (!getTopologyId() - .equals(other.getTopologyId())) return false; - } - if (!unknownFields.equals(other.unknownFields)) return false; - return true; - } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getContextUuidFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - if (hasEvent()) { - hash = (37 * hash) + EVENT_FIELD_NUMBER; - hash = (53 * hash) + getEvent().hashCode(); - } - if (hasTopologyId()) { - hash = (37 * hash) + TOPOLOGY_ID_FIELD_NUMBER; - hash = (53 * hash) + getTopologyId().hashCode(); - } - hash = (29 * hash) + unknownFields.hashCode(); - memoizedHashCode = hash; - return hash; - } + private int bitField0_; - public static context.ContextOuterClass.TopologyEvent parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static context.ContextOuterClass.TopologyEvent parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static context.ContextOuterClass.TopologyEvent parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static context.ContextOuterClass.TopologyEvent parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static context.ContextOuterClass.TopologyEvent parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static context.ContextOuterClass.TopologyEvent parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static context.ContextOuterClass.TopologyEvent parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static context.ContextOuterClass.TopologyEvent parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - public static context.ContextOuterClass.TopologyEvent parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - public static context.ContextOuterClass.TopologyEvent parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static context.ContextOuterClass.TopologyEvent parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static context.ContextOuterClass.TopologyEvent parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } + private context.ContextOuterClass.Uuid contextUuid_; - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(context.ContextOuterClass.TopologyEvent prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } + private com.google.protobuf.SingleFieldBuilderV3 contextUuidBuilder_; - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code context.TopologyEvent} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:context.TopologyEvent) - context.ContextOuterClass.TopologyEventOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return context.ContextOuterClass.internal_static_context_TopologyEvent_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_TopologyEvent_fieldAccessorTable - .ensureFieldAccessorsInitialized( - context.ContextOuterClass.TopologyEvent.class, context.ContextOuterClass.TopologyEvent.Builder.class); - } - - // Construct using context.ContextOuterClass.TopologyEvent.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3 - .alwaysUseFieldBuilders) { - } - } - @java.lang.Override - public Builder clear() { - super.clear(); - if (eventBuilder_ == null) { - event_ = null; - } else { - event_ = null; - eventBuilder_ = null; - } - if (topologyIdBuilder_ == null) { - topologyId_ = null; - } else { - topologyId_ = null; - topologyIdBuilder_ = null; - } - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return context.ContextOuterClass.internal_static_context_TopologyEvent_descriptor; - } - - @java.lang.Override - public context.ContextOuterClass.TopologyEvent getDefaultInstanceForType() { - return context.ContextOuterClass.TopologyEvent.getDefaultInstance(); - } - - @java.lang.Override - public context.ContextOuterClass.TopologyEvent build() { - context.ContextOuterClass.TopologyEvent result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public context.ContextOuterClass.TopologyEvent buildPartial() { - context.ContextOuterClass.TopologyEvent result = new context.ContextOuterClass.TopologyEvent(this); - if (eventBuilder_ == null) { - result.event_ = event_; - } else { - result.event_ = eventBuilder_.build(); - } - if (topologyIdBuilder_ == null) { - result.topologyId_ = topologyId_; - } else { - result.topologyId_ = topologyIdBuilder_.build(); - } - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof context.ContextOuterClass.TopologyEvent) { - return mergeFrom((context.ContextOuterClass.TopologyEvent)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(context.ContextOuterClass.TopologyEvent other) { - if (other == context.ContextOuterClass.TopologyEvent.getDefaultInstance()) return this; - if (other.hasEvent()) { - mergeEvent(other.getEvent()); - } - if (other.hasTopologyId()) { - mergeTopologyId(other.getTopologyId()); - } - this.mergeUnknownFields(other.unknownFields); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - context.ContextOuterClass.TopologyEvent parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.TopologyEvent) e.getUnfinishedMessage(); - throw e.unwrapIOException(); - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - - private context.ContextOuterClass.Event event_; - private com.google.protobuf.SingleFieldBuilderV3< - context.ContextOuterClass.Event, context.ContextOuterClass.Event.Builder, context.ContextOuterClass.EventOrBuilder> eventBuilder_; - /** - * .context.Event event = 1; - * @return Whether the event field is set. - */ - public boolean hasEvent() { - return eventBuilder_ != null || event_ != null; - } - /** - * .context.Event event = 1; - * @return The event. - */ - public context.ContextOuterClass.Event getEvent() { - if (eventBuilder_ == null) { - return event_ == null ? context.ContextOuterClass.Event.getDefaultInstance() : event_; - } else { - return eventBuilder_.getMessage(); - } - } - /** - * .context.Event event = 1; - */ - public Builder setEvent(context.ContextOuterClass.Event value) { - if (eventBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - event_ = value; - onChanged(); - } else { - eventBuilder_.setMessage(value); - } - - return this; - } - /** - * .context.Event event = 1; - */ - public Builder setEvent( - context.ContextOuterClass.Event.Builder builderForValue) { - if (eventBuilder_ == null) { - event_ = builderForValue.build(); - onChanged(); - } else { - eventBuilder_.setMessage(builderForValue.build()); - } - - return this; - } - /** - * .context.Event event = 1; - */ - public Builder mergeEvent(context.ContextOuterClass.Event value) { - if (eventBuilder_ == null) { - if (event_ != null) { - event_ = - context.ContextOuterClass.Event.newBuilder(event_).mergeFrom(value).buildPartial(); - } else { - event_ = value; - } - onChanged(); - } else { - eventBuilder_.mergeFrom(value); - } - - return this; - } - /** - * .context.Event event = 1; - */ - public Builder clearEvent() { - if (eventBuilder_ == null) { - event_ = null; - onChanged(); - } else { - event_ = null; - eventBuilder_ = null; - } - - return this; - } - /** - * .context.Event event = 1; - */ - public context.ContextOuterClass.Event.Builder getEventBuilder() { - - onChanged(); - return getEventFieldBuilder().getBuilder(); - } - /** - * .context.Event event = 1; - */ - public context.ContextOuterClass.EventOrBuilder getEventOrBuilder() { - if (eventBuilder_ != null) { - return eventBuilder_.getMessageOrBuilder(); - } else { - return event_ == null ? - context.ContextOuterClass.Event.getDefaultInstance() : event_; - } - } - /** - * .context.Event event = 1; - */ - private com.google.protobuf.SingleFieldBuilderV3< - context.ContextOuterClass.Event, context.ContextOuterClass.Event.Builder, context.ContextOuterClass.EventOrBuilder> - getEventFieldBuilder() { - if (eventBuilder_ == null) { - eventBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - context.ContextOuterClass.Event, context.ContextOuterClass.Event.Builder, context.ContextOuterClass.EventOrBuilder>( - getEvent(), - getParentForChildren(), - isClean()); - event_ = null; - } - return eventBuilder_; - } - - private context.ContextOuterClass.TopologyId topologyId_; - private com.google.protobuf.SingleFieldBuilderV3< - context.ContextOuterClass.TopologyId, context.ContextOuterClass.TopologyId.Builder, context.ContextOuterClass.TopologyIdOrBuilder> topologyIdBuilder_; - /** - * .context.TopologyId topology_id = 2; - * @return Whether the topologyId field is set. - */ - public boolean hasTopologyId() { - return topologyIdBuilder_ != null || topologyId_ != null; - } - /** - * .context.TopologyId topology_id = 2; - * @return The topologyId. - */ - public context.ContextOuterClass.TopologyId getTopologyId() { - if (topologyIdBuilder_ == null) { - return topologyId_ == null ? context.ContextOuterClass.TopologyId.getDefaultInstance() : topologyId_; - } else { - return topologyIdBuilder_.getMessage(); - } - } - /** - * .context.TopologyId topology_id = 2; - */ - public Builder setTopologyId(context.ContextOuterClass.TopologyId value) { - if (topologyIdBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - topologyId_ = value; - onChanged(); - } else { - topologyIdBuilder_.setMessage(value); - } - - return this; - } - /** - * .context.TopologyId topology_id = 2; - */ - public Builder setTopologyId( - context.ContextOuterClass.TopologyId.Builder builderForValue) { - if (topologyIdBuilder_ == null) { - topologyId_ = builderForValue.build(); - onChanged(); - } else { - topologyIdBuilder_.setMessage(builderForValue.build()); - } - - return this; - } - /** - * .context.TopologyId topology_id = 2; - */ - public Builder mergeTopologyId(context.ContextOuterClass.TopologyId value) { - if (topologyIdBuilder_ == null) { - if (topologyId_ != null) { - topologyId_ = - context.ContextOuterClass.TopologyId.newBuilder(topologyId_).mergeFrom(value).buildPartial(); - } else { - topologyId_ = value; - } - onChanged(); - } else { - topologyIdBuilder_.mergeFrom(value); - } - - return this; - } - /** - * .context.TopologyId topology_id = 2; - */ - public Builder clearTopologyId() { - if (topologyIdBuilder_ == null) { - topologyId_ = null; - onChanged(); - } else { - topologyId_ = null; - topologyIdBuilder_ = null; - } - - return this; - } - /** - * .context.TopologyId topology_id = 2; - */ - public context.ContextOuterClass.TopologyId.Builder getTopologyIdBuilder() { - - onChanged(); - return getTopologyIdFieldBuilder().getBuilder(); - } - /** - * .context.TopologyId topology_id = 2; - */ - public context.ContextOuterClass.TopologyIdOrBuilder getTopologyIdOrBuilder() { - if (topologyIdBuilder_ != null) { - return topologyIdBuilder_.getMessageOrBuilder(); - } else { - return topologyId_ == null ? - context.ContextOuterClass.TopologyId.getDefaultInstance() : topologyId_; - } - } - /** - * .context.TopologyId topology_id = 2; - */ - private com.google.protobuf.SingleFieldBuilderV3< - context.ContextOuterClass.TopologyId, context.ContextOuterClass.TopologyId.Builder, context.ContextOuterClass.TopologyIdOrBuilder> - getTopologyIdFieldBuilder() { - if (topologyIdBuilder_ == null) { - topologyIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - context.ContextOuterClass.TopologyId, context.ContextOuterClass.TopologyId.Builder, context.ContextOuterClass.TopologyIdOrBuilder>( - getTopologyId(), - getParentForChildren(), - isClean()); - topologyId_ = null; - } - return topologyIdBuilder_; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:context.TopologyEvent) - } + /** + * .context.Uuid context_uuid = 1; + * @return Whether the contextUuid field is set. + */ + public boolean hasContextUuid() { + return ((bitField0_ & 0x00000001) != 0); + } - // @@protoc_insertion_point(class_scope:context.TopologyEvent) - private static final context.ContextOuterClass.TopologyEvent DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new context.ContextOuterClass.TopologyEvent(); - } + /** + * .context.Uuid context_uuid = 1; + * @return The contextUuid. + */ + public context.ContextOuterClass.Uuid getContextUuid() { + if (contextUuidBuilder_ == null) { + return contextUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : contextUuid_; + } else { + return contextUuidBuilder_.getMessage(); + } + } - public static context.ContextOuterClass.TopologyEvent getDefaultInstance() { - return DEFAULT_INSTANCE; - } + /** + * .context.Uuid context_uuid = 1; + */ + public Builder setContextUuid(context.ContextOuterClass.Uuid value) { + if (contextUuidBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + contextUuid_ = value; + } else { + contextUuidBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public TopologyEvent parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new TopologyEvent(input, extensionRegistry); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } + /** + * .context.Uuid context_uuid = 1; + */ + public Builder setContextUuid(context.ContextOuterClass.Uuid.Builder builderForValue) { + if (contextUuidBuilder_ == null) { + contextUuid_ = builderForValue.build(); + } else { + contextUuidBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } + /** + * .context.Uuid context_uuid = 1; + */ + public Builder mergeContextUuid(context.ContextOuterClass.Uuid value) { + if (contextUuidBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && contextUuid_ != null && contextUuid_ != context.ContextOuterClass.Uuid.getDefaultInstance()) { + getContextUuidBuilder().mergeFrom(value); + } else { + contextUuid_ = value; + } + } else { + contextUuidBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } - @java.lang.Override - public context.ContextOuterClass.TopologyEvent getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } + /** + * .context.Uuid context_uuid = 1; + */ + public Builder clearContextUuid() { + bitField0_ = (bitField0_ & ~0x00000001); + contextUuid_ = null; + if (contextUuidBuilder_ != null) { + contextUuidBuilder_.dispose(); + contextUuidBuilder_ = null; + } + onChanged(); + return this; + } - } + /** + * .context.Uuid context_uuid = 1; + */ + public context.ContextOuterClass.Uuid.Builder getContextUuidBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getContextUuidFieldBuilder().getBuilder(); + } - public interface DeviceIdOrBuilder extends - // @@protoc_insertion_point(interface_extends:context.DeviceId) - com.google.protobuf.MessageOrBuilder { + /** + * .context.Uuid context_uuid = 1; + */ + public context.ContextOuterClass.UuidOrBuilder getContextUuidOrBuilder() { + if (contextUuidBuilder_ != null) { + return contextUuidBuilder_.getMessageOrBuilder(); + } else { + return contextUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : contextUuid_; + } + } - /** - * .context.Uuid device_uuid = 1; - * @return Whether the deviceUuid field is set. - */ - boolean hasDeviceUuid(); - /** - * .context.Uuid device_uuid = 1; - * @return The deviceUuid. - */ - context.ContextOuterClass.Uuid getDeviceUuid(); - /** - * .context.Uuid device_uuid = 1; - */ - context.ContextOuterClass.UuidOrBuilder getDeviceUuidOrBuilder(); - } - /** - *
-   * ----- Device --------------------------------------------------------------------------------------------------------
-   * 
- * - * Protobuf type {@code context.DeviceId} - */ - public static final class DeviceId extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:context.DeviceId) - DeviceIdOrBuilder { - private static final long serialVersionUID = 0L; - // Use DeviceId.newBuilder() to construct. - private DeviceId(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private DeviceId() { - } + /** + * .context.Uuid context_uuid = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3 getContextUuidFieldBuilder() { + if (contextUuidBuilder_ == null) { + contextUuidBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getContextUuid(), getParentForChildren(), isClean()); + contextUuid_ = null; + } + return contextUuidBuilder_; + } - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new DeviceId(); - } + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private DeviceId( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = - com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - context.ContextOuterClass.Uuid.Builder subBuilder = null; - if (deviceUuid_ != null) { - subBuilder = deviceUuid_.toBuilder(); - } - deviceUuid_ = input.readMessage(context.ContextOuterClass.Uuid.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(deviceUuid_); - deviceUuid_ = subBuilder.buildPartial(); - } - - break; - } - default: { - if (!parseUnknownField( - input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException( - e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return context.ContextOuterClass.internal_static_context_DeviceId_descriptor; - } + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.ContextId) + } - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_DeviceId_fieldAccessorTable - .ensureFieldAccessorsInitialized( - context.ContextOuterClass.DeviceId.class, context.ContextOuterClass.DeviceId.Builder.class); - } + // @@protoc_insertion_point(class_scope:context.ContextId) + private static final context.ContextOuterClass.ContextId DEFAULT_INSTANCE; - public static final int DEVICE_UUID_FIELD_NUMBER = 1; - private context.ContextOuterClass.Uuid deviceUuid_; - /** - * .context.Uuid device_uuid = 1; - * @return Whether the deviceUuid field is set. - */ - @java.lang.Override - public boolean hasDeviceUuid() { - return deviceUuid_ != null; - } - /** - * .context.Uuid device_uuid = 1; - * @return The deviceUuid. - */ - @java.lang.Override - public context.ContextOuterClass.Uuid getDeviceUuid() { - return deviceUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : deviceUuid_; + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.ContextId(); + } + + public static context.ContextOuterClass.ContextId getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public ContextId parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.ContextId getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface ContextOrBuilder extends // @@protoc_insertion_point(interface_extends:context.Context) + com.google.protobuf.MessageOrBuilder { + + /** + * .context.ContextId context_id = 1; + * @return Whether the contextId field is set. + */ + boolean hasContextId(); + + /** + * .context.ContextId context_id = 1; + * @return The contextId. + */ + context.ContextOuterClass.ContextId getContextId(); + + /** + * .context.ContextId context_id = 1; + */ + context.ContextOuterClass.ContextIdOrBuilder getContextIdOrBuilder(); + + /** + * string name = 2; + * @return The name. + */ + java.lang.String getName(); + + /** + * string name = 2; + * @return The bytes for name. + */ + com.google.protobuf.ByteString getNameBytes(); + + /** + * repeated .context.TopologyId topology_ids = 3; + */ + java.util.List getTopologyIdsList(); + + /** + * repeated .context.TopologyId topology_ids = 3; + */ + context.ContextOuterClass.TopologyId getTopologyIds(int index); + + /** + * repeated .context.TopologyId topology_ids = 3; + */ + int getTopologyIdsCount(); + + /** + * repeated .context.TopologyId topology_ids = 3; + */ + java.util.List getTopologyIdsOrBuilderList(); + + /** + * repeated .context.TopologyId topology_ids = 3; + */ + context.ContextOuterClass.TopologyIdOrBuilder getTopologyIdsOrBuilder(int index); + + /** + * repeated .context.ServiceId service_ids = 4; + */ + java.util.List getServiceIdsList(); + + /** + * repeated .context.ServiceId service_ids = 4; + */ + context.ContextOuterClass.ServiceId getServiceIds(int index); + + /** + * repeated .context.ServiceId service_ids = 4; + */ + int getServiceIdsCount(); + + /** + * repeated .context.ServiceId service_ids = 4; + */ + java.util.List getServiceIdsOrBuilderList(); + + /** + * repeated .context.ServiceId service_ids = 4; + */ + context.ContextOuterClass.ServiceIdOrBuilder getServiceIdsOrBuilder(int index); + + /** + * repeated .context.SliceId slice_ids = 5; + */ + java.util.List getSliceIdsList(); + + /** + * repeated .context.SliceId slice_ids = 5; + */ + context.ContextOuterClass.SliceId getSliceIds(int index); + + /** + * repeated .context.SliceId slice_ids = 5; + */ + int getSliceIdsCount(); + + /** + * repeated .context.SliceId slice_ids = 5; + */ + java.util.List getSliceIdsOrBuilderList(); + + /** + * repeated .context.SliceId slice_ids = 5; + */ + context.ContextOuterClass.SliceIdOrBuilder getSliceIdsOrBuilder(int index); + + /** + * .context.TeraFlowController controller = 6; + * @return Whether the controller field is set. + */ + boolean hasController(); + + /** + * .context.TeraFlowController controller = 6; + * @return The controller. + */ + context.ContextOuterClass.TeraFlowController getController(); + + /** + * .context.TeraFlowController controller = 6; + */ + context.ContextOuterClass.TeraFlowControllerOrBuilder getControllerOrBuilder(); } + /** - * .context.Uuid device_uuid = 1; + * Protobuf type {@code context.Context} */ - @java.lang.Override - public context.ContextOuterClass.UuidOrBuilder getDeviceUuidOrBuilder() { - return getDeviceUuid(); - } + public static final class Context extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.Context) + ContextOrBuilder { - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; + private static final long serialVersionUID = 0L; - memoizedIsInitialized = 1; - return true; - } + // Use Context.newBuilder() to construct. + private Context(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (deviceUuid_ != null) { - output.writeMessage(1, getDeviceUuid()); - } - unknownFields.writeTo(output); - } + private Context() { + name_ = ""; + topologyIds_ = java.util.Collections.emptyList(); + serviceIds_ = java.util.Collections.emptyList(); + sliceIds_ = java.util.Collections.emptyList(); + } - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (deviceUuid_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(1, getDeviceUuid()); - } - size += unknownFields.getSerializedSize(); - memoizedSize = size; - return size; - } + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new Context(); + } - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof context.ContextOuterClass.DeviceId)) { - return super.equals(obj); - } - context.ContextOuterClass.DeviceId other = (context.ContextOuterClass.DeviceId) obj; - - if (hasDeviceUuid() != other.hasDeviceUuid()) return false; - if (hasDeviceUuid()) { - if (!getDeviceUuid() - .equals(other.getDeviceUuid())) return false; - } - if (!unknownFields.equals(other.unknownFields)) return false; - return true; - } + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_Context_descriptor; + } - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - if (hasDeviceUuid()) { - hash = (37 * hash) + DEVICE_UUID_FIELD_NUMBER; - hash = (53 * hash) + getDeviceUuid().hashCode(); - } - hash = (29 * hash) + unknownFields.hashCode(); - memoizedHashCode = hash; - return hash; - } + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_Context_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.Context.class, context.ContextOuterClass.Context.Builder.class); + } - public static context.ContextOuterClass.DeviceId parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static context.ContextOuterClass.DeviceId parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static context.ContextOuterClass.DeviceId parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static context.ContextOuterClass.DeviceId parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static context.ContextOuterClass.DeviceId parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static context.ContextOuterClass.DeviceId parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static context.ContextOuterClass.DeviceId parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static context.ContextOuterClass.DeviceId parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - public static context.ContextOuterClass.DeviceId parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - public static context.ContextOuterClass.DeviceId parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static context.ContextOuterClass.DeviceId parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static context.ContextOuterClass.DeviceId parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } + public static final int CONTEXT_ID_FIELD_NUMBER = 1; - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(context.ContextOuterClass.DeviceId prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } + private context.ContextOuterClass.ContextId contextId_; - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - *
-     * ----- Device --------------------------------------------------------------------------------------------------------
-     * 
- * - * Protobuf type {@code context.DeviceId} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:context.DeviceId) - context.ContextOuterClass.DeviceIdOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return context.ContextOuterClass.internal_static_context_DeviceId_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_DeviceId_fieldAccessorTable - .ensureFieldAccessorsInitialized( - context.ContextOuterClass.DeviceId.class, context.ContextOuterClass.DeviceId.Builder.class); - } - - // Construct using context.ContextOuterClass.DeviceId.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3 - .alwaysUseFieldBuilders) { - } - } - @java.lang.Override - public Builder clear() { - super.clear(); - if (deviceUuidBuilder_ == null) { - deviceUuid_ = null; - } else { - deviceUuid_ = null; - deviceUuidBuilder_ = null; - } - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return context.ContextOuterClass.internal_static_context_DeviceId_descriptor; - } - - @java.lang.Override - public context.ContextOuterClass.DeviceId getDefaultInstanceForType() { - return context.ContextOuterClass.DeviceId.getDefaultInstance(); - } - - @java.lang.Override - public context.ContextOuterClass.DeviceId build() { - context.ContextOuterClass.DeviceId result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public context.ContextOuterClass.DeviceId buildPartial() { - context.ContextOuterClass.DeviceId result = new context.ContextOuterClass.DeviceId(this); - if (deviceUuidBuilder_ == null) { - result.deviceUuid_ = deviceUuid_; - } else { - result.deviceUuid_ = deviceUuidBuilder_.build(); - } - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof context.ContextOuterClass.DeviceId) { - return mergeFrom((context.ContextOuterClass.DeviceId)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(context.ContextOuterClass.DeviceId other) { - if (other == context.ContextOuterClass.DeviceId.getDefaultInstance()) return this; - if (other.hasDeviceUuid()) { - mergeDeviceUuid(other.getDeviceUuid()); - } - this.mergeUnknownFields(other.unknownFields); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - context.ContextOuterClass.DeviceId parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.DeviceId) e.getUnfinishedMessage(); - throw e.unwrapIOException(); - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - - private context.ContextOuterClass.Uuid deviceUuid_; - private com.google.protobuf.SingleFieldBuilderV3< - context.ContextOuterClass.Uuid, context.ContextOuterClass.Uuid.Builder, context.ContextOuterClass.UuidOrBuilder> deviceUuidBuilder_; - /** - * .context.Uuid device_uuid = 1; - * @return Whether the deviceUuid field is set. - */ - public boolean hasDeviceUuid() { - return deviceUuidBuilder_ != null || deviceUuid_ != null; - } - /** - * .context.Uuid device_uuid = 1; - * @return The deviceUuid. - */ - public context.ContextOuterClass.Uuid getDeviceUuid() { - if (deviceUuidBuilder_ == null) { - return deviceUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : deviceUuid_; - } else { - return deviceUuidBuilder_.getMessage(); - } - } - /** - * .context.Uuid device_uuid = 1; - */ - public Builder setDeviceUuid(context.ContextOuterClass.Uuid value) { - if (deviceUuidBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - deviceUuid_ = value; - onChanged(); - } else { - deviceUuidBuilder_.setMessage(value); - } - - return this; - } - /** - * .context.Uuid device_uuid = 1; - */ - public Builder setDeviceUuid( - context.ContextOuterClass.Uuid.Builder builderForValue) { - if (deviceUuidBuilder_ == null) { - deviceUuid_ = builderForValue.build(); - onChanged(); - } else { - deviceUuidBuilder_.setMessage(builderForValue.build()); - } - - return this; - } - /** - * .context.Uuid device_uuid = 1; - */ - public Builder mergeDeviceUuid(context.ContextOuterClass.Uuid value) { - if (deviceUuidBuilder_ == null) { - if (deviceUuid_ != null) { - deviceUuid_ = - context.ContextOuterClass.Uuid.newBuilder(deviceUuid_).mergeFrom(value).buildPartial(); - } else { - deviceUuid_ = value; - } - onChanged(); - } else { - deviceUuidBuilder_.mergeFrom(value); - } - - return this; - } - /** - * .context.Uuid device_uuid = 1; - */ - public Builder clearDeviceUuid() { - if (deviceUuidBuilder_ == null) { - deviceUuid_ = null; - onChanged(); - } else { - deviceUuid_ = null; - deviceUuidBuilder_ = null; - } - - return this; - } - /** - * .context.Uuid device_uuid = 1; - */ - public context.ContextOuterClass.Uuid.Builder getDeviceUuidBuilder() { - - onChanged(); - return getDeviceUuidFieldBuilder().getBuilder(); - } - /** - * .context.Uuid device_uuid = 1; - */ - public context.ContextOuterClass.UuidOrBuilder getDeviceUuidOrBuilder() { - if (deviceUuidBuilder_ != null) { - return deviceUuidBuilder_.getMessageOrBuilder(); - } else { - return deviceUuid_ == null ? - context.ContextOuterClass.Uuid.getDefaultInstance() : deviceUuid_; - } - } - /** - * .context.Uuid device_uuid = 1; - */ - private com.google.protobuf.SingleFieldBuilderV3< - context.ContextOuterClass.Uuid, context.ContextOuterClass.Uuid.Builder, context.ContextOuterClass.UuidOrBuilder> - getDeviceUuidFieldBuilder() { - if (deviceUuidBuilder_ == null) { - deviceUuidBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - context.ContextOuterClass.Uuid, context.ContextOuterClass.Uuid.Builder, context.ContextOuterClass.UuidOrBuilder>( - getDeviceUuid(), - getParentForChildren(), - isClean()); - deviceUuid_ = null; - } - return deviceUuidBuilder_; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:context.DeviceId) - } + /** + * .context.ContextId context_id = 1; + * @return Whether the contextId field is set. + */ + @java.lang.Override + public boolean hasContextId() { + return contextId_ != null; + } - // @@protoc_insertion_point(class_scope:context.DeviceId) - private static final context.ContextOuterClass.DeviceId DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new context.ContextOuterClass.DeviceId(); - } + /** + * .context.ContextId context_id = 1; + * @return The contextId. + */ + @java.lang.Override + public context.ContextOuterClass.ContextId getContextId() { + return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_; + } - public static context.ContextOuterClass.DeviceId getDefaultInstance() { - return DEFAULT_INSTANCE; - } + /** + * .context.ContextId context_id = 1; + */ + @java.lang.Override + public context.ContextOuterClass.ContextIdOrBuilder getContextIdOrBuilder() { + return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_; + } - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public DeviceId parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new DeviceId(input, extensionRegistry); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } + public static final int NAME_FIELD_NUMBER = 2; - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } + @SuppressWarnings("serial") + private volatile java.lang.Object name_ = ""; - @java.lang.Override - public context.ContextOuterClass.DeviceId getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } + /** + * string name = 2; + * @return The name. + */ + @java.lang.Override + public java.lang.String getName() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + name_ = s; + return s; + } + } - } + /** + * string name = 2; + * @return The bytes for name. + */ + @java.lang.Override + public com.google.protobuf.ByteString getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } - public interface DeviceOrBuilder extends - // @@protoc_insertion_point(interface_extends:context.Device) - com.google.protobuf.MessageOrBuilder { + public static final int TOPOLOGY_IDS_FIELD_NUMBER = 3; - /** - * .context.DeviceId device_id = 1; - * @return Whether the deviceId field is set. - */ - boolean hasDeviceId(); - /** - * .context.DeviceId device_id = 1; - * @return The deviceId. - */ - context.ContextOuterClass.DeviceId getDeviceId(); - /** - * .context.DeviceId device_id = 1; - */ - context.ContextOuterClass.DeviceIdOrBuilder getDeviceIdOrBuilder(); + @SuppressWarnings("serial") + private java.util.List topologyIds_; - /** - * string name = 2; - * @return The name. + /** + * repeated .context.TopologyId topology_ids = 3; + */ + @java.lang.Override + public java.util.List getTopologyIdsList() { + return topologyIds_; + } + + /** + * repeated .context.TopologyId topology_ids = 3; + */ + @java.lang.Override + public java.util.List getTopologyIdsOrBuilderList() { + return topologyIds_; + } + + /** + * repeated .context.TopologyId topology_ids = 3; + */ + @java.lang.Override + public int getTopologyIdsCount() { + return topologyIds_.size(); + } + + /** + * repeated .context.TopologyId topology_ids = 3; + */ + @java.lang.Override + public context.ContextOuterClass.TopologyId getTopologyIds(int index) { + return topologyIds_.get(index); + } + + /** + * repeated .context.TopologyId topology_ids = 3; + */ + @java.lang.Override + public context.ContextOuterClass.TopologyIdOrBuilder getTopologyIdsOrBuilder(int index) { + return topologyIds_.get(index); + } + + public static final int SERVICE_IDS_FIELD_NUMBER = 4; + + @SuppressWarnings("serial") + private java.util.List serviceIds_; + + /** + * repeated .context.ServiceId service_ids = 4; + */ + @java.lang.Override + public java.util.List getServiceIdsList() { + return serviceIds_; + } + + /** + * repeated .context.ServiceId service_ids = 4; + */ + @java.lang.Override + public java.util.List getServiceIdsOrBuilderList() { + return serviceIds_; + } + + /** + * repeated .context.ServiceId service_ids = 4; + */ + @java.lang.Override + public int getServiceIdsCount() { + return serviceIds_.size(); + } + + /** + * repeated .context.ServiceId service_ids = 4; + */ + @java.lang.Override + public context.ContextOuterClass.ServiceId getServiceIds(int index) { + return serviceIds_.get(index); + } + + /** + * repeated .context.ServiceId service_ids = 4; + */ + @java.lang.Override + public context.ContextOuterClass.ServiceIdOrBuilder getServiceIdsOrBuilder(int index) { + return serviceIds_.get(index); + } + + public static final int SLICE_IDS_FIELD_NUMBER = 5; + + @SuppressWarnings("serial") + private java.util.List sliceIds_; + + /** + * repeated .context.SliceId slice_ids = 5; + */ + @java.lang.Override + public java.util.List getSliceIdsList() { + return sliceIds_; + } + + /** + * repeated .context.SliceId slice_ids = 5; + */ + @java.lang.Override + public java.util.List getSliceIdsOrBuilderList() { + return sliceIds_; + } + + /** + * repeated .context.SliceId slice_ids = 5; + */ + @java.lang.Override + public int getSliceIdsCount() { + return sliceIds_.size(); + } + + /** + * repeated .context.SliceId slice_ids = 5; + */ + @java.lang.Override + public context.ContextOuterClass.SliceId getSliceIds(int index) { + return sliceIds_.get(index); + } + + /** + * repeated .context.SliceId slice_ids = 5; + */ + @java.lang.Override + public context.ContextOuterClass.SliceIdOrBuilder getSliceIdsOrBuilder(int index) { + return sliceIds_.get(index); + } + + public static final int CONTROLLER_FIELD_NUMBER = 6; + + private context.ContextOuterClass.TeraFlowController controller_; + + /** + * .context.TeraFlowController controller = 6; + * @return Whether the controller field is set. + */ + @java.lang.Override + public boolean hasController() { + return controller_ != null; + } + + /** + * .context.TeraFlowController controller = 6; + * @return The controller. + */ + @java.lang.Override + public context.ContextOuterClass.TeraFlowController getController() { + return controller_ == null ? context.ContextOuterClass.TeraFlowController.getDefaultInstance() : controller_; + } + + /** + * .context.TeraFlowController controller = 6; + */ + @java.lang.Override + public context.ContextOuterClass.TeraFlowControllerOrBuilder getControllerOrBuilder() { + return controller_ == null ? context.ContextOuterClass.TeraFlowController.getDefaultInstance() : controller_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (contextId_ != null) { + output.writeMessage(1, getContextId()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, name_); + } + for (int i = 0; i < topologyIds_.size(); i++) { + output.writeMessage(3, topologyIds_.get(i)); + } + for (int i = 0; i < serviceIds_.size(); i++) { + output.writeMessage(4, serviceIds_.get(i)); + } + for (int i = 0; i < sliceIds_.size(); i++) { + output.writeMessage(5, sliceIds_.get(i)); + } + if (controller_ != null) { + output.writeMessage(6, getController()); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + if (contextId_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getContextId()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, name_); + } + for (int i = 0; i < topologyIds_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, topologyIds_.get(i)); + } + for (int i = 0; i < serviceIds_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, serviceIds_.get(i)); + } + for (int i = 0; i < sliceIds_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, sliceIds_.get(i)); + } + if (controller_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(6, getController()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.Context)) { + return super.equals(obj); + } + context.ContextOuterClass.Context other = (context.ContextOuterClass.Context) obj; + if (hasContextId() != other.hasContextId()) + return false; + if (hasContextId()) { + if (!getContextId().equals(other.getContextId())) + return false; + } + if (!getName().equals(other.getName())) + return false; + if (!getTopologyIdsList().equals(other.getTopologyIdsList())) + return false; + if (!getServiceIdsList().equals(other.getServiceIdsList())) + return false; + if (!getSliceIdsList().equals(other.getSliceIdsList())) + return false; + if (hasController() != other.hasController()) + return false; + if (hasController()) { + if (!getController().equals(other.getController())) + return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasContextId()) { + hash = (37 * hash) + CONTEXT_ID_FIELD_NUMBER; + hash = (53 * hash) + getContextId().hashCode(); + } + hash = (37 * hash) + NAME_FIELD_NUMBER; + hash = (53 * hash) + getName().hashCode(); + if (getTopologyIdsCount() > 0) { + hash = (37 * hash) + TOPOLOGY_IDS_FIELD_NUMBER; + hash = (53 * hash) + getTopologyIdsList().hashCode(); + } + if (getServiceIdsCount() > 0) { + hash = (37 * hash) + SERVICE_IDS_FIELD_NUMBER; + hash = (53 * hash) + getServiceIdsList().hashCode(); + } + if (getSliceIdsCount() > 0) { + hash = (37 * hash) + SLICE_IDS_FIELD_NUMBER; + hash = (53 * hash) + getSliceIdsList().hashCode(); + } + if (hasController()) { + hash = (37 * hash) + CONTROLLER_FIELD_NUMBER; + hash = (53 * hash) + getController().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.Context parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.Context parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.Context parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.Context parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.Context parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.Context parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.Context parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.Context parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.Context parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.Context parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.Context parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.Context parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.Context prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code context.Context} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.Context) + context.ContextOuterClass.ContextOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_Context_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_Context_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.Context.class, context.ContextOuterClass.Context.Builder.class); + } + + // Construct using context.ContextOuterClass.Context.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + contextId_ = null; + if (contextIdBuilder_ != null) { + contextIdBuilder_.dispose(); + contextIdBuilder_ = null; + } + name_ = ""; + if (topologyIdsBuilder_ == null) { + topologyIds_ = java.util.Collections.emptyList(); + } else { + topologyIds_ = null; + topologyIdsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000004); + if (serviceIdsBuilder_ == null) { + serviceIds_ = java.util.Collections.emptyList(); + } else { + serviceIds_ = null; + serviceIdsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000008); + if (sliceIdsBuilder_ == null) { + sliceIds_ = java.util.Collections.emptyList(); + } else { + sliceIds_ = null; + sliceIdsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000010); + controller_ = null; + if (controllerBuilder_ != null) { + controllerBuilder_.dispose(); + controllerBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_Context_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.Context getDefaultInstanceForType() { + return context.ContextOuterClass.Context.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.Context build() { + context.ContextOuterClass.Context result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.Context buildPartial() { + context.ContextOuterClass.Context result = new context.ContextOuterClass.Context(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(context.ContextOuterClass.Context result) { + if (topologyIdsBuilder_ == null) { + if (((bitField0_ & 0x00000004) != 0)) { + topologyIds_ = java.util.Collections.unmodifiableList(topologyIds_); + bitField0_ = (bitField0_ & ~0x00000004); + } + result.topologyIds_ = topologyIds_; + } else { + result.topologyIds_ = topologyIdsBuilder_.build(); + } + if (serviceIdsBuilder_ == null) { + if (((bitField0_ & 0x00000008) != 0)) { + serviceIds_ = java.util.Collections.unmodifiableList(serviceIds_); + bitField0_ = (bitField0_ & ~0x00000008); + } + result.serviceIds_ = serviceIds_; + } else { + result.serviceIds_ = serviceIdsBuilder_.build(); + } + if (sliceIdsBuilder_ == null) { + if (((bitField0_ & 0x00000010) != 0)) { + sliceIds_ = java.util.Collections.unmodifiableList(sliceIds_); + bitField0_ = (bitField0_ & ~0x00000010); + } + result.sliceIds_ = sliceIds_; + } else { + result.sliceIds_ = sliceIdsBuilder_.build(); + } + } + + private void buildPartial0(context.ContextOuterClass.Context result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.contextId_ = contextIdBuilder_ == null ? contextId_ : contextIdBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.name_ = name_; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.controller_ = controllerBuilder_ == null ? controller_ : controllerBuilder_.build(); + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.Context) { + return mergeFrom((context.ContextOuterClass.Context) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.Context other) { + if (other == context.ContextOuterClass.Context.getDefaultInstance()) + return this; + if (other.hasContextId()) { + mergeContextId(other.getContextId()); + } + if (!other.getName().isEmpty()) { + name_ = other.name_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (topologyIdsBuilder_ == null) { + if (!other.topologyIds_.isEmpty()) { + if (topologyIds_.isEmpty()) { + topologyIds_ = other.topologyIds_; + bitField0_ = (bitField0_ & ~0x00000004); + } else { + ensureTopologyIdsIsMutable(); + topologyIds_.addAll(other.topologyIds_); + } + onChanged(); + } + } else { + if (!other.topologyIds_.isEmpty()) { + if (topologyIdsBuilder_.isEmpty()) { + topologyIdsBuilder_.dispose(); + topologyIdsBuilder_ = null; + topologyIds_ = other.topologyIds_; + bitField0_ = (bitField0_ & ~0x00000004); + topologyIdsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getTopologyIdsFieldBuilder() : null; + } else { + topologyIdsBuilder_.addAllMessages(other.topologyIds_); + } + } + } + if (serviceIdsBuilder_ == null) { + if (!other.serviceIds_.isEmpty()) { + if (serviceIds_.isEmpty()) { + serviceIds_ = other.serviceIds_; + bitField0_ = (bitField0_ & ~0x00000008); + } else { + ensureServiceIdsIsMutable(); + serviceIds_.addAll(other.serviceIds_); + } + onChanged(); + } + } else { + if (!other.serviceIds_.isEmpty()) { + if (serviceIdsBuilder_.isEmpty()) { + serviceIdsBuilder_.dispose(); + serviceIdsBuilder_ = null; + serviceIds_ = other.serviceIds_; + bitField0_ = (bitField0_ & ~0x00000008); + serviceIdsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getServiceIdsFieldBuilder() : null; + } else { + serviceIdsBuilder_.addAllMessages(other.serviceIds_); + } + } + } + if (sliceIdsBuilder_ == null) { + if (!other.sliceIds_.isEmpty()) { + if (sliceIds_.isEmpty()) { + sliceIds_ = other.sliceIds_; + bitField0_ = (bitField0_ & ~0x00000010); + } else { + ensureSliceIdsIsMutable(); + sliceIds_.addAll(other.sliceIds_); + } + onChanged(); + } + } else { + if (!other.sliceIds_.isEmpty()) { + if (sliceIdsBuilder_.isEmpty()) { + sliceIdsBuilder_.dispose(); + sliceIdsBuilder_ = null; + sliceIds_ = other.sliceIds_; + bitField0_ = (bitField0_ & ~0x00000010); + sliceIdsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getSliceIdsFieldBuilder() : null; + } else { + sliceIdsBuilder_.addAllMessages(other.sliceIds_); + } + } + } + if (other.hasController()) { + mergeController(other.getController()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getContextIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + name_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } + // case 18 + case 26: + { + context.ContextOuterClass.TopologyId m = input.readMessage(context.ContextOuterClass.TopologyId.parser(), extensionRegistry); + if (topologyIdsBuilder_ == null) { + ensureTopologyIdsIsMutable(); + topologyIds_.add(m); + } else { + topologyIdsBuilder_.addMessage(m); + } + break; + } + // case 26 + case 34: + { + context.ContextOuterClass.ServiceId m = input.readMessage(context.ContextOuterClass.ServiceId.parser(), extensionRegistry); + if (serviceIdsBuilder_ == null) { + ensureServiceIdsIsMutable(); + serviceIds_.add(m); + } else { + serviceIdsBuilder_.addMessage(m); + } + break; + } + // case 34 + case 42: + { + context.ContextOuterClass.SliceId m = input.readMessage(context.ContextOuterClass.SliceId.parser(), extensionRegistry); + if (sliceIdsBuilder_ == null) { + ensureSliceIdsIsMutable(); + sliceIds_.add(m); + } else { + sliceIdsBuilder_.addMessage(m); + } + break; + } + // case 42 + case 50: + { + input.readMessage(getControllerFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000020; + break; + } + // case 50 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private context.ContextOuterClass.ContextId contextId_; + + private com.google.protobuf.SingleFieldBuilderV3 contextIdBuilder_; + + /** + * .context.ContextId context_id = 1; + * @return Whether the contextId field is set. + */ + public boolean hasContextId() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * .context.ContextId context_id = 1; + * @return The contextId. + */ + public context.ContextOuterClass.ContextId getContextId() { + if (contextIdBuilder_ == null) { + return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_; + } else { + return contextIdBuilder_.getMessage(); + } + } + + /** + * .context.ContextId context_id = 1; + */ + public Builder setContextId(context.ContextOuterClass.ContextId value) { + if (contextIdBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + contextId_ = value; + } else { + contextIdBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.ContextId context_id = 1; + */ + public Builder setContextId(context.ContextOuterClass.ContextId.Builder builderForValue) { + if (contextIdBuilder_ == null) { + contextId_ = builderForValue.build(); + } else { + contextIdBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.ContextId context_id = 1; + */ + public Builder mergeContextId(context.ContextOuterClass.ContextId value) { + if (contextIdBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && contextId_ != null && contextId_ != context.ContextOuterClass.ContextId.getDefaultInstance()) { + getContextIdBuilder().mergeFrom(value); + } else { + contextId_ = value; + } + } else { + contextIdBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.ContextId context_id = 1; + */ + public Builder clearContextId() { + bitField0_ = (bitField0_ & ~0x00000001); + contextId_ = null; + if (contextIdBuilder_ != null) { + contextIdBuilder_.dispose(); + contextIdBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.ContextId context_id = 1; + */ + public context.ContextOuterClass.ContextId.Builder getContextIdBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getContextIdFieldBuilder().getBuilder(); + } + + /** + * .context.ContextId context_id = 1; + */ + public context.ContextOuterClass.ContextIdOrBuilder getContextIdOrBuilder() { + if (contextIdBuilder_ != null) { + return contextIdBuilder_.getMessageOrBuilder(); + } else { + return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_; + } + } + + /** + * .context.ContextId context_id = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3 getContextIdFieldBuilder() { + if (contextIdBuilder_ == null) { + contextIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getContextId(), getParentForChildren(), isClean()); + contextId_ = null; + } + return contextIdBuilder_; + } + + private java.lang.Object name_ = ""; + + /** + * string name = 2; + * @return The name. + */ + public java.lang.String getName() { + java.lang.Object ref = name_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + name_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * string name = 2; + * @return The bytes for name. + */ + public com.google.protobuf.ByteString getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * string name = 2; + * @param value The name to set. + * @return This builder for chaining. + */ + public Builder setName(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + name_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * string name = 2; + * @return This builder for chaining. + */ + public Builder clearName() { + name_ = getDefaultInstance().getName(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * string name = 2; + * @param value The bytes for name to set. + * @return This builder for chaining. + */ + public Builder setNameBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + name_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private java.util.List topologyIds_ = java.util.Collections.emptyList(); + + private void ensureTopologyIdsIsMutable() { + if (!((bitField0_ & 0x00000004) != 0)) { + topologyIds_ = new java.util.ArrayList(topologyIds_); + bitField0_ |= 0x00000004; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3 topologyIdsBuilder_; + + /** + * repeated .context.TopologyId topology_ids = 3; + */ + public java.util.List getTopologyIdsList() { + if (topologyIdsBuilder_ == null) { + return java.util.Collections.unmodifiableList(topologyIds_); + } else { + return topologyIdsBuilder_.getMessageList(); + } + } + + /** + * repeated .context.TopologyId topology_ids = 3; + */ + public int getTopologyIdsCount() { + if (topologyIdsBuilder_ == null) { + return topologyIds_.size(); + } else { + return topologyIdsBuilder_.getCount(); + } + } + + /** + * repeated .context.TopologyId topology_ids = 3; + */ + public context.ContextOuterClass.TopologyId getTopologyIds(int index) { + if (topologyIdsBuilder_ == null) { + return topologyIds_.get(index); + } else { + return topologyIdsBuilder_.getMessage(index); + } + } + + /** + * repeated .context.TopologyId topology_ids = 3; + */ + public Builder setTopologyIds(int index, context.ContextOuterClass.TopologyId value) { + if (topologyIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureTopologyIdsIsMutable(); + topologyIds_.set(index, value); + onChanged(); + } else { + topologyIdsBuilder_.setMessage(index, value); + } + return this; + } + + /** + * repeated .context.TopologyId topology_ids = 3; + */ + public Builder setTopologyIds(int index, context.ContextOuterClass.TopologyId.Builder builderForValue) { + if (topologyIdsBuilder_ == null) { + ensureTopologyIdsIsMutable(); + topologyIds_.set(index, builderForValue.build()); + onChanged(); + } else { + topologyIdsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.TopologyId topology_ids = 3; + */ + public Builder addTopologyIds(context.ContextOuterClass.TopologyId value) { + if (topologyIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureTopologyIdsIsMutable(); + topologyIds_.add(value); + onChanged(); + } else { + topologyIdsBuilder_.addMessage(value); + } + return this; + } + + /** + * repeated .context.TopologyId topology_ids = 3; + */ + public Builder addTopologyIds(int index, context.ContextOuterClass.TopologyId value) { + if (topologyIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureTopologyIdsIsMutable(); + topologyIds_.add(index, value); + onChanged(); + } else { + topologyIdsBuilder_.addMessage(index, value); + } + return this; + } + + /** + * repeated .context.TopologyId topology_ids = 3; + */ + public Builder addTopologyIds(context.ContextOuterClass.TopologyId.Builder builderForValue) { + if (topologyIdsBuilder_ == null) { + ensureTopologyIdsIsMutable(); + topologyIds_.add(builderForValue.build()); + onChanged(); + } else { + topologyIdsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * repeated .context.TopologyId topology_ids = 3; + */ + public Builder addTopologyIds(int index, context.ContextOuterClass.TopologyId.Builder builderForValue) { + if (topologyIdsBuilder_ == null) { + ensureTopologyIdsIsMutable(); + topologyIds_.add(index, builderForValue.build()); + onChanged(); + } else { + topologyIdsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.TopologyId topology_ids = 3; + */ + public Builder addAllTopologyIds(java.lang.Iterable values) { + if (topologyIdsBuilder_ == null) { + ensureTopologyIdsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, topologyIds_); + onChanged(); + } else { + topologyIdsBuilder_.addAllMessages(values); + } + return this; + } + + /** + * repeated .context.TopologyId topology_ids = 3; + */ + public Builder clearTopologyIds() { + if (topologyIdsBuilder_ == null) { + topologyIds_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + } else { + topologyIdsBuilder_.clear(); + } + return this; + } + + /** + * repeated .context.TopologyId topology_ids = 3; + */ + public Builder removeTopologyIds(int index) { + if (topologyIdsBuilder_ == null) { + ensureTopologyIdsIsMutable(); + topologyIds_.remove(index); + onChanged(); + } else { + topologyIdsBuilder_.remove(index); + } + return this; + } + + /** + * repeated .context.TopologyId topology_ids = 3; + */ + public context.ContextOuterClass.TopologyId.Builder getTopologyIdsBuilder(int index) { + return getTopologyIdsFieldBuilder().getBuilder(index); + } + + /** + * repeated .context.TopologyId topology_ids = 3; + */ + public context.ContextOuterClass.TopologyIdOrBuilder getTopologyIdsOrBuilder(int index) { + if (topologyIdsBuilder_ == null) { + return topologyIds_.get(index); + } else { + return topologyIdsBuilder_.getMessageOrBuilder(index); + } + } + + /** + * repeated .context.TopologyId topology_ids = 3; + */ + public java.util.List getTopologyIdsOrBuilderList() { + if (topologyIdsBuilder_ != null) { + return topologyIdsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(topologyIds_); + } + } + + /** + * repeated .context.TopologyId topology_ids = 3; + */ + public context.ContextOuterClass.TopologyId.Builder addTopologyIdsBuilder() { + return getTopologyIdsFieldBuilder().addBuilder(context.ContextOuterClass.TopologyId.getDefaultInstance()); + } + + /** + * repeated .context.TopologyId topology_ids = 3; + */ + public context.ContextOuterClass.TopologyId.Builder addTopologyIdsBuilder(int index) { + return getTopologyIdsFieldBuilder().addBuilder(index, context.ContextOuterClass.TopologyId.getDefaultInstance()); + } + + /** + * repeated .context.TopologyId topology_ids = 3; + */ + public java.util.List getTopologyIdsBuilderList() { + return getTopologyIdsFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3 getTopologyIdsFieldBuilder() { + if (topologyIdsBuilder_ == null) { + topologyIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3(topologyIds_, ((bitField0_ & 0x00000004) != 0), getParentForChildren(), isClean()); + topologyIds_ = null; + } + return topologyIdsBuilder_; + } + + private java.util.List serviceIds_ = java.util.Collections.emptyList(); + + private void ensureServiceIdsIsMutable() { + if (!((bitField0_ & 0x00000008) != 0)) { + serviceIds_ = new java.util.ArrayList(serviceIds_); + bitField0_ |= 0x00000008; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3 serviceIdsBuilder_; + + /** + * repeated .context.ServiceId service_ids = 4; + */ + public java.util.List getServiceIdsList() { + if (serviceIdsBuilder_ == null) { + return java.util.Collections.unmodifiableList(serviceIds_); + } else { + return serviceIdsBuilder_.getMessageList(); + } + } + + /** + * repeated .context.ServiceId service_ids = 4; + */ + public int getServiceIdsCount() { + if (serviceIdsBuilder_ == null) { + return serviceIds_.size(); + } else { + return serviceIdsBuilder_.getCount(); + } + } + + /** + * repeated .context.ServiceId service_ids = 4; + */ + public context.ContextOuterClass.ServiceId getServiceIds(int index) { + if (serviceIdsBuilder_ == null) { + return serviceIds_.get(index); + } else { + return serviceIdsBuilder_.getMessage(index); + } + } + + /** + * repeated .context.ServiceId service_ids = 4; + */ + public Builder setServiceIds(int index, context.ContextOuterClass.ServiceId value) { + if (serviceIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureServiceIdsIsMutable(); + serviceIds_.set(index, value); + onChanged(); + } else { + serviceIdsBuilder_.setMessage(index, value); + } + return this; + } + + /** + * repeated .context.ServiceId service_ids = 4; + */ + public Builder setServiceIds(int index, context.ContextOuterClass.ServiceId.Builder builderForValue) { + if (serviceIdsBuilder_ == null) { + ensureServiceIdsIsMutable(); + serviceIds_.set(index, builderForValue.build()); + onChanged(); + } else { + serviceIdsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.ServiceId service_ids = 4; + */ + public Builder addServiceIds(context.ContextOuterClass.ServiceId value) { + if (serviceIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureServiceIdsIsMutable(); + serviceIds_.add(value); + onChanged(); + } else { + serviceIdsBuilder_.addMessage(value); + } + return this; + } + + /** + * repeated .context.ServiceId service_ids = 4; + */ + public Builder addServiceIds(int index, context.ContextOuterClass.ServiceId value) { + if (serviceIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureServiceIdsIsMutable(); + serviceIds_.add(index, value); + onChanged(); + } else { + serviceIdsBuilder_.addMessage(index, value); + } + return this; + } + + /** + * repeated .context.ServiceId service_ids = 4; + */ + public Builder addServiceIds(context.ContextOuterClass.ServiceId.Builder builderForValue) { + if (serviceIdsBuilder_ == null) { + ensureServiceIdsIsMutable(); + serviceIds_.add(builderForValue.build()); + onChanged(); + } else { + serviceIdsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * repeated .context.ServiceId service_ids = 4; + */ + public Builder addServiceIds(int index, context.ContextOuterClass.ServiceId.Builder builderForValue) { + if (serviceIdsBuilder_ == null) { + ensureServiceIdsIsMutable(); + serviceIds_.add(index, builderForValue.build()); + onChanged(); + } else { + serviceIdsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.ServiceId service_ids = 4; + */ + public Builder addAllServiceIds(java.lang.Iterable values) { + if (serviceIdsBuilder_ == null) { + ensureServiceIdsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, serviceIds_); + onChanged(); + } else { + serviceIdsBuilder_.addAllMessages(values); + } + return this; + } + + /** + * repeated .context.ServiceId service_ids = 4; + */ + public Builder clearServiceIds() { + if (serviceIdsBuilder_ == null) { + serviceIds_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000008); + onChanged(); + } else { + serviceIdsBuilder_.clear(); + } + return this; + } + + /** + * repeated .context.ServiceId service_ids = 4; + */ + public Builder removeServiceIds(int index) { + if (serviceIdsBuilder_ == null) { + ensureServiceIdsIsMutable(); + serviceIds_.remove(index); + onChanged(); + } else { + serviceIdsBuilder_.remove(index); + } + return this; + } + + /** + * repeated .context.ServiceId service_ids = 4; + */ + public context.ContextOuterClass.ServiceId.Builder getServiceIdsBuilder(int index) { + return getServiceIdsFieldBuilder().getBuilder(index); + } + + /** + * repeated .context.ServiceId service_ids = 4; + */ + public context.ContextOuterClass.ServiceIdOrBuilder getServiceIdsOrBuilder(int index) { + if (serviceIdsBuilder_ == null) { + return serviceIds_.get(index); + } else { + return serviceIdsBuilder_.getMessageOrBuilder(index); + } + } + + /** + * repeated .context.ServiceId service_ids = 4; + */ + public java.util.List getServiceIdsOrBuilderList() { + if (serviceIdsBuilder_ != null) { + return serviceIdsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(serviceIds_); + } + } + + /** + * repeated .context.ServiceId service_ids = 4; + */ + public context.ContextOuterClass.ServiceId.Builder addServiceIdsBuilder() { + return getServiceIdsFieldBuilder().addBuilder(context.ContextOuterClass.ServiceId.getDefaultInstance()); + } + + /** + * repeated .context.ServiceId service_ids = 4; + */ + public context.ContextOuterClass.ServiceId.Builder addServiceIdsBuilder(int index) { + return getServiceIdsFieldBuilder().addBuilder(index, context.ContextOuterClass.ServiceId.getDefaultInstance()); + } + + /** + * repeated .context.ServiceId service_ids = 4; + */ + public java.util.List getServiceIdsBuilderList() { + return getServiceIdsFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3 getServiceIdsFieldBuilder() { + if (serviceIdsBuilder_ == null) { + serviceIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3(serviceIds_, ((bitField0_ & 0x00000008) != 0), getParentForChildren(), isClean()); + serviceIds_ = null; + } + return serviceIdsBuilder_; + } + + private java.util.List sliceIds_ = java.util.Collections.emptyList(); + + private void ensureSliceIdsIsMutable() { + if (!((bitField0_ & 0x00000010) != 0)) { + sliceIds_ = new java.util.ArrayList(sliceIds_); + bitField0_ |= 0x00000010; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3 sliceIdsBuilder_; + + /** + * repeated .context.SliceId slice_ids = 5; + */ + public java.util.List getSliceIdsList() { + if (sliceIdsBuilder_ == null) { + return java.util.Collections.unmodifiableList(sliceIds_); + } else { + return sliceIdsBuilder_.getMessageList(); + } + } + + /** + * repeated .context.SliceId slice_ids = 5; + */ + public int getSliceIdsCount() { + if (sliceIdsBuilder_ == null) { + return sliceIds_.size(); + } else { + return sliceIdsBuilder_.getCount(); + } + } + + /** + * repeated .context.SliceId slice_ids = 5; + */ + public context.ContextOuterClass.SliceId getSliceIds(int index) { + if (sliceIdsBuilder_ == null) { + return sliceIds_.get(index); + } else { + return sliceIdsBuilder_.getMessage(index); + } + } + + /** + * repeated .context.SliceId slice_ids = 5; + */ + public Builder setSliceIds(int index, context.ContextOuterClass.SliceId value) { + if (sliceIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureSliceIdsIsMutable(); + sliceIds_.set(index, value); + onChanged(); + } else { + sliceIdsBuilder_.setMessage(index, value); + } + return this; + } + + /** + * repeated .context.SliceId slice_ids = 5; + */ + public Builder setSliceIds(int index, context.ContextOuterClass.SliceId.Builder builderForValue) { + if (sliceIdsBuilder_ == null) { + ensureSliceIdsIsMutable(); + sliceIds_.set(index, builderForValue.build()); + onChanged(); + } else { + sliceIdsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.SliceId slice_ids = 5; + */ + public Builder addSliceIds(context.ContextOuterClass.SliceId value) { + if (sliceIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureSliceIdsIsMutable(); + sliceIds_.add(value); + onChanged(); + } else { + sliceIdsBuilder_.addMessage(value); + } + return this; + } + + /** + * repeated .context.SliceId slice_ids = 5; + */ + public Builder addSliceIds(int index, context.ContextOuterClass.SliceId value) { + if (sliceIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureSliceIdsIsMutable(); + sliceIds_.add(index, value); + onChanged(); + } else { + sliceIdsBuilder_.addMessage(index, value); + } + return this; + } + + /** + * repeated .context.SliceId slice_ids = 5; + */ + public Builder addSliceIds(context.ContextOuterClass.SliceId.Builder builderForValue) { + if (sliceIdsBuilder_ == null) { + ensureSliceIdsIsMutable(); + sliceIds_.add(builderForValue.build()); + onChanged(); + } else { + sliceIdsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * repeated .context.SliceId slice_ids = 5; + */ + public Builder addSliceIds(int index, context.ContextOuterClass.SliceId.Builder builderForValue) { + if (sliceIdsBuilder_ == null) { + ensureSliceIdsIsMutable(); + sliceIds_.add(index, builderForValue.build()); + onChanged(); + } else { + sliceIdsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.SliceId slice_ids = 5; + */ + public Builder addAllSliceIds(java.lang.Iterable values) { + if (sliceIdsBuilder_ == null) { + ensureSliceIdsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, sliceIds_); + onChanged(); + } else { + sliceIdsBuilder_.addAllMessages(values); + } + return this; + } + + /** + * repeated .context.SliceId slice_ids = 5; + */ + public Builder clearSliceIds() { + if (sliceIdsBuilder_ == null) { + sliceIds_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000010); + onChanged(); + } else { + sliceIdsBuilder_.clear(); + } + return this; + } + + /** + * repeated .context.SliceId slice_ids = 5; + */ + public Builder removeSliceIds(int index) { + if (sliceIdsBuilder_ == null) { + ensureSliceIdsIsMutable(); + sliceIds_.remove(index); + onChanged(); + } else { + sliceIdsBuilder_.remove(index); + } + return this; + } + + /** + * repeated .context.SliceId slice_ids = 5; + */ + public context.ContextOuterClass.SliceId.Builder getSliceIdsBuilder(int index) { + return getSliceIdsFieldBuilder().getBuilder(index); + } + + /** + * repeated .context.SliceId slice_ids = 5; + */ + public context.ContextOuterClass.SliceIdOrBuilder getSliceIdsOrBuilder(int index) { + if (sliceIdsBuilder_ == null) { + return sliceIds_.get(index); + } else { + return sliceIdsBuilder_.getMessageOrBuilder(index); + } + } + + /** + * repeated .context.SliceId slice_ids = 5; + */ + public java.util.List getSliceIdsOrBuilderList() { + if (sliceIdsBuilder_ != null) { + return sliceIdsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(sliceIds_); + } + } + + /** + * repeated .context.SliceId slice_ids = 5; + */ + public context.ContextOuterClass.SliceId.Builder addSliceIdsBuilder() { + return getSliceIdsFieldBuilder().addBuilder(context.ContextOuterClass.SliceId.getDefaultInstance()); + } + + /** + * repeated .context.SliceId slice_ids = 5; + */ + public context.ContextOuterClass.SliceId.Builder addSliceIdsBuilder(int index) { + return getSliceIdsFieldBuilder().addBuilder(index, context.ContextOuterClass.SliceId.getDefaultInstance()); + } + + /** + * repeated .context.SliceId slice_ids = 5; + */ + public java.util.List getSliceIdsBuilderList() { + return getSliceIdsFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3 getSliceIdsFieldBuilder() { + if (sliceIdsBuilder_ == null) { + sliceIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3(sliceIds_, ((bitField0_ & 0x00000010) != 0), getParentForChildren(), isClean()); + sliceIds_ = null; + } + return sliceIdsBuilder_; + } + + private context.ContextOuterClass.TeraFlowController controller_; + + private com.google.protobuf.SingleFieldBuilderV3 controllerBuilder_; + + /** + * .context.TeraFlowController controller = 6; + * @return Whether the controller field is set. + */ + public boolean hasController() { + return ((bitField0_ & 0x00000020) != 0); + } + + /** + * .context.TeraFlowController controller = 6; + * @return The controller. + */ + public context.ContextOuterClass.TeraFlowController getController() { + if (controllerBuilder_ == null) { + return controller_ == null ? context.ContextOuterClass.TeraFlowController.getDefaultInstance() : controller_; + } else { + return controllerBuilder_.getMessage(); + } + } + + /** + * .context.TeraFlowController controller = 6; + */ + public Builder setController(context.ContextOuterClass.TeraFlowController value) { + if (controllerBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + controller_ = value; + } else { + controllerBuilder_.setMessage(value); + } + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + + /** + * .context.TeraFlowController controller = 6; + */ + public Builder setController(context.ContextOuterClass.TeraFlowController.Builder builderForValue) { + if (controllerBuilder_ == null) { + controller_ = builderForValue.build(); + } else { + controllerBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + + /** + * .context.TeraFlowController controller = 6; + */ + public Builder mergeController(context.ContextOuterClass.TeraFlowController value) { + if (controllerBuilder_ == null) { + if (((bitField0_ & 0x00000020) != 0) && controller_ != null && controller_ != context.ContextOuterClass.TeraFlowController.getDefaultInstance()) { + getControllerBuilder().mergeFrom(value); + } else { + controller_ = value; + } + } else { + controllerBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + + /** + * .context.TeraFlowController controller = 6; + */ + public Builder clearController() { + bitField0_ = (bitField0_ & ~0x00000020); + controller_ = null; + if (controllerBuilder_ != null) { + controllerBuilder_.dispose(); + controllerBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.TeraFlowController controller = 6; + */ + public context.ContextOuterClass.TeraFlowController.Builder getControllerBuilder() { + bitField0_ |= 0x00000020; + onChanged(); + return getControllerFieldBuilder().getBuilder(); + } + + /** + * .context.TeraFlowController controller = 6; + */ + public context.ContextOuterClass.TeraFlowControllerOrBuilder getControllerOrBuilder() { + if (controllerBuilder_ != null) { + return controllerBuilder_.getMessageOrBuilder(); + } else { + return controller_ == null ? context.ContextOuterClass.TeraFlowController.getDefaultInstance() : controller_; + } + } + + /** + * .context.TeraFlowController controller = 6; + */ + private com.google.protobuf.SingleFieldBuilderV3 getControllerFieldBuilder() { + if (controllerBuilder_ == null) { + controllerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getController(), getParentForChildren(), isClean()); + controller_ = null; + } + return controllerBuilder_; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.Context) + } + + // @@protoc_insertion_point(class_scope:context.Context) + private static final context.ContextOuterClass.Context DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.Context(); + } + + public static context.ContextOuterClass.Context getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public Context parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.Context getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface ContextIdListOrBuilder extends // @@protoc_insertion_point(interface_extends:context.ContextIdList) + com.google.protobuf.MessageOrBuilder { + + /** + * repeated .context.ContextId context_ids = 1; + */ + java.util.List getContextIdsList(); + + /** + * repeated .context.ContextId context_ids = 1; + */ + context.ContextOuterClass.ContextId getContextIds(int index); + + /** + * repeated .context.ContextId context_ids = 1; + */ + int getContextIdsCount(); + + /** + * repeated .context.ContextId context_ids = 1; + */ + java.util.List getContextIdsOrBuilderList(); + + /** + * repeated .context.ContextId context_ids = 1; + */ + context.ContextOuterClass.ContextIdOrBuilder getContextIdsOrBuilder(int index); + } + + /** + * Protobuf type {@code context.ContextIdList} + */ + public static final class ContextIdList extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.ContextIdList) + ContextIdListOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use ContextIdList.newBuilder() to construct. + private ContextIdList(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private ContextIdList() { + contextIds_ = java.util.Collections.emptyList(); + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new ContextIdList(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_ContextIdList_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_ContextIdList_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.ContextIdList.class, context.ContextOuterClass.ContextIdList.Builder.class); + } + + public static final int CONTEXT_IDS_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private java.util.List contextIds_; + + /** + * repeated .context.ContextId context_ids = 1; + */ + @java.lang.Override + public java.util.List getContextIdsList() { + return contextIds_; + } + + /** + * repeated .context.ContextId context_ids = 1; + */ + @java.lang.Override + public java.util.List getContextIdsOrBuilderList() { + return contextIds_; + } + + /** + * repeated .context.ContextId context_ids = 1; + */ + @java.lang.Override + public int getContextIdsCount() { + return contextIds_.size(); + } + + /** + * repeated .context.ContextId context_ids = 1; + */ + @java.lang.Override + public context.ContextOuterClass.ContextId getContextIds(int index) { + return contextIds_.get(index); + } + + /** + * repeated .context.ContextId context_ids = 1; + */ + @java.lang.Override + public context.ContextOuterClass.ContextIdOrBuilder getContextIdsOrBuilder(int index) { + return contextIds_.get(index); + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + for (int i = 0; i < contextIds_.size(); i++) { + output.writeMessage(1, contextIds_.get(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + for (int i = 0; i < contextIds_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, contextIds_.get(i)); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.ContextIdList)) { + return super.equals(obj); + } + context.ContextOuterClass.ContextIdList other = (context.ContextOuterClass.ContextIdList) obj; + if (!getContextIdsList().equals(other.getContextIdsList())) + return false; + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getContextIdsCount() > 0) { + hash = (37 * hash) + CONTEXT_IDS_FIELD_NUMBER; + hash = (53 * hash) + getContextIdsList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.ContextIdList parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ContextIdList parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ContextIdList parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ContextIdList parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ContextIdList parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ContextIdList parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ContextIdList parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ContextIdList parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.ContextIdList parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ContextIdList parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.ContextIdList parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ContextIdList parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.ContextIdList prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code context.ContextIdList} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.ContextIdList) + context.ContextOuterClass.ContextIdListOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_ContextIdList_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_ContextIdList_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.ContextIdList.class, context.ContextOuterClass.ContextIdList.Builder.class); + } + + // Construct using context.ContextOuterClass.ContextIdList.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + if (contextIdsBuilder_ == null) { + contextIds_ = java.util.Collections.emptyList(); + } else { + contextIds_ = null; + contextIdsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_ContextIdList_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.ContextIdList getDefaultInstanceForType() { + return context.ContextOuterClass.ContextIdList.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.ContextIdList build() { + context.ContextOuterClass.ContextIdList result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.ContextIdList buildPartial() { + context.ContextOuterClass.ContextIdList result = new context.ContextOuterClass.ContextIdList(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(context.ContextOuterClass.ContextIdList result) { + if (contextIdsBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + contextIds_ = java.util.Collections.unmodifiableList(contextIds_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.contextIds_ = contextIds_; + } else { + result.contextIds_ = contextIdsBuilder_.build(); + } + } + + private void buildPartial0(context.ContextOuterClass.ContextIdList result) { + int from_bitField0_ = bitField0_; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.ContextIdList) { + return mergeFrom((context.ContextOuterClass.ContextIdList) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.ContextIdList other) { + if (other == context.ContextOuterClass.ContextIdList.getDefaultInstance()) + return this; + if (contextIdsBuilder_ == null) { + if (!other.contextIds_.isEmpty()) { + if (contextIds_.isEmpty()) { + contextIds_ = other.contextIds_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureContextIdsIsMutable(); + contextIds_.addAll(other.contextIds_); + } + onChanged(); + } + } else { + if (!other.contextIds_.isEmpty()) { + if (contextIdsBuilder_.isEmpty()) { + contextIdsBuilder_.dispose(); + contextIdsBuilder_ = null; + contextIds_ = other.contextIds_; + bitField0_ = (bitField0_ & ~0x00000001); + contextIdsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getContextIdsFieldBuilder() : null; + } else { + contextIdsBuilder_.addAllMessages(other.contextIds_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + context.ContextOuterClass.ContextId m = input.readMessage(context.ContextOuterClass.ContextId.parser(), extensionRegistry); + if (contextIdsBuilder_ == null) { + ensureContextIdsIsMutable(); + contextIds_.add(m); + } else { + contextIdsBuilder_.addMessage(m); + } + break; + } + // case 10 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private java.util.List contextIds_ = java.util.Collections.emptyList(); + + private void ensureContextIdsIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + contextIds_ = new java.util.ArrayList(contextIds_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3 contextIdsBuilder_; + + /** + * repeated .context.ContextId context_ids = 1; + */ + public java.util.List getContextIdsList() { + if (contextIdsBuilder_ == null) { + return java.util.Collections.unmodifiableList(contextIds_); + } else { + return contextIdsBuilder_.getMessageList(); + } + } + + /** + * repeated .context.ContextId context_ids = 1; + */ + public int getContextIdsCount() { + if (contextIdsBuilder_ == null) { + return contextIds_.size(); + } else { + return contextIdsBuilder_.getCount(); + } + } + + /** + * repeated .context.ContextId context_ids = 1; + */ + public context.ContextOuterClass.ContextId getContextIds(int index) { + if (contextIdsBuilder_ == null) { + return contextIds_.get(index); + } else { + return contextIdsBuilder_.getMessage(index); + } + } + + /** + * repeated .context.ContextId context_ids = 1; + */ + public Builder setContextIds(int index, context.ContextOuterClass.ContextId value) { + if (contextIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureContextIdsIsMutable(); + contextIds_.set(index, value); + onChanged(); + } else { + contextIdsBuilder_.setMessage(index, value); + } + return this; + } + + /** + * repeated .context.ContextId context_ids = 1; + */ + public Builder setContextIds(int index, context.ContextOuterClass.ContextId.Builder builderForValue) { + if (contextIdsBuilder_ == null) { + ensureContextIdsIsMutable(); + contextIds_.set(index, builderForValue.build()); + onChanged(); + } else { + contextIdsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.ContextId context_ids = 1; + */ + public Builder addContextIds(context.ContextOuterClass.ContextId value) { + if (contextIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureContextIdsIsMutable(); + contextIds_.add(value); + onChanged(); + } else { + contextIdsBuilder_.addMessage(value); + } + return this; + } + + /** + * repeated .context.ContextId context_ids = 1; + */ + public Builder addContextIds(int index, context.ContextOuterClass.ContextId value) { + if (contextIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureContextIdsIsMutable(); + contextIds_.add(index, value); + onChanged(); + } else { + contextIdsBuilder_.addMessage(index, value); + } + return this; + } + + /** + * repeated .context.ContextId context_ids = 1; + */ + public Builder addContextIds(context.ContextOuterClass.ContextId.Builder builderForValue) { + if (contextIdsBuilder_ == null) { + ensureContextIdsIsMutable(); + contextIds_.add(builderForValue.build()); + onChanged(); + } else { + contextIdsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * repeated .context.ContextId context_ids = 1; + */ + public Builder addContextIds(int index, context.ContextOuterClass.ContextId.Builder builderForValue) { + if (contextIdsBuilder_ == null) { + ensureContextIdsIsMutable(); + contextIds_.add(index, builderForValue.build()); + onChanged(); + } else { + contextIdsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.ContextId context_ids = 1; + */ + public Builder addAllContextIds(java.lang.Iterable values) { + if (contextIdsBuilder_ == null) { + ensureContextIdsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, contextIds_); + onChanged(); + } else { + contextIdsBuilder_.addAllMessages(values); + } + return this; + } + + /** + * repeated .context.ContextId context_ids = 1; + */ + public Builder clearContextIds() { + if (contextIdsBuilder_ == null) { + contextIds_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + contextIdsBuilder_.clear(); + } + return this; + } + + /** + * repeated .context.ContextId context_ids = 1; + */ + public Builder removeContextIds(int index) { + if (contextIdsBuilder_ == null) { + ensureContextIdsIsMutable(); + contextIds_.remove(index); + onChanged(); + } else { + contextIdsBuilder_.remove(index); + } + return this; + } + + /** + * repeated .context.ContextId context_ids = 1; + */ + public context.ContextOuterClass.ContextId.Builder getContextIdsBuilder(int index) { + return getContextIdsFieldBuilder().getBuilder(index); + } + + /** + * repeated .context.ContextId context_ids = 1; + */ + public context.ContextOuterClass.ContextIdOrBuilder getContextIdsOrBuilder(int index) { + if (contextIdsBuilder_ == null) { + return contextIds_.get(index); + } else { + return contextIdsBuilder_.getMessageOrBuilder(index); + } + } + + /** + * repeated .context.ContextId context_ids = 1; + */ + public java.util.List getContextIdsOrBuilderList() { + if (contextIdsBuilder_ != null) { + return contextIdsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(contextIds_); + } + } + + /** + * repeated .context.ContextId context_ids = 1; + */ + public context.ContextOuterClass.ContextId.Builder addContextIdsBuilder() { + return getContextIdsFieldBuilder().addBuilder(context.ContextOuterClass.ContextId.getDefaultInstance()); + } + + /** + * repeated .context.ContextId context_ids = 1; + */ + public context.ContextOuterClass.ContextId.Builder addContextIdsBuilder(int index) { + return getContextIdsFieldBuilder().addBuilder(index, context.ContextOuterClass.ContextId.getDefaultInstance()); + } + + /** + * repeated .context.ContextId context_ids = 1; + */ + public java.util.List getContextIdsBuilderList() { + return getContextIdsFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3 getContextIdsFieldBuilder() { + if (contextIdsBuilder_ == null) { + contextIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3(contextIds_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean()); + contextIds_ = null; + } + return contextIdsBuilder_; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.ContextIdList) + } + + // @@protoc_insertion_point(class_scope:context.ContextIdList) + private static final context.ContextOuterClass.ContextIdList DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.ContextIdList(); + } + + public static context.ContextOuterClass.ContextIdList getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public ContextIdList parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.ContextIdList getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface ContextListOrBuilder extends // @@protoc_insertion_point(interface_extends:context.ContextList) + com.google.protobuf.MessageOrBuilder { + + /** + * repeated .context.Context contexts = 1; + */ + java.util.List getContextsList(); + + /** + * repeated .context.Context contexts = 1; + */ + context.ContextOuterClass.Context getContexts(int index); + + /** + * repeated .context.Context contexts = 1; + */ + int getContextsCount(); + + /** + * repeated .context.Context contexts = 1; + */ + java.util.List getContextsOrBuilderList(); + + /** + * repeated .context.Context contexts = 1; + */ + context.ContextOuterClass.ContextOrBuilder getContextsOrBuilder(int index); + } + + /** + * Protobuf type {@code context.ContextList} + */ + public static final class ContextList extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.ContextList) + ContextListOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use ContextList.newBuilder() to construct. + private ContextList(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private ContextList() { + contexts_ = java.util.Collections.emptyList(); + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new ContextList(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_ContextList_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_ContextList_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.ContextList.class, context.ContextOuterClass.ContextList.Builder.class); + } + + public static final int CONTEXTS_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private java.util.List contexts_; + + /** + * repeated .context.Context contexts = 1; + */ + @java.lang.Override + public java.util.List getContextsList() { + return contexts_; + } + + /** + * repeated .context.Context contexts = 1; + */ + @java.lang.Override + public java.util.List getContextsOrBuilderList() { + return contexts_; + } + + /** + * repeated .context.Context contexts = 1; + */ + @java.lang.Override + public int getContextsCount() { + return contexts_.size(); + } + + /** + * repeated .context.Context contexts = 1; + */ + @java.lang.Override + public context.ContextOuterClass.Context getContexts(int index) { + return contexts_.get(index); + } + + /** + * repeated .context.Context contexts = 1; + */ + @java.lang.Override + public context.ContextOuterClass.ContextOrBuilder getContextsOrBuilder(int index) { + return contexts_.get(index); + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + for (int i = 0; i < contexts_.size(); i++) { + output.writeMessage(1, contexts_.get(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + for (int i = 0; i < contexts_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, contexts_.get(i)); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.ContextList)) { + return super.equals(obj); + } + context.ContextOuterClass.ContextList other = (context.ContextOuterClass.ContextList) obj; + if (!getContextsList().equals(other.getContextsList())) + return false; + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getContextsCount() > 0) { + hash = (37 * hash) + CONTEXTS_FIELD_NUMBER; + hash = (53 * hash) + getContextsList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.ContextList parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ContextList parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ContextList parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ContextList parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ContextList parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ContextList parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ContextList parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ContextList parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.ContextList parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ContextList parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.ContextList parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ContextList parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.ContextList prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code context.ContextList} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.ContextList) + context.ContextOuterClass.ContextListOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_ContextList_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_ContextList_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.ContextList.class, context.ContextOuterClass.ContextList.Builder.class); + } + + // Construct using context.ContextOuterClass.ContextList.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + if (contextsBuilder_ == null) { + contexts_ = java.util.Collections.emptyList(); + } else { + contexts_ = null; + contextsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_ContextList_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.ContextList getDefaultInstanceForType() { + return context.ContextOuterClass.ContextList.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.ContextList build() { + context.ContextOuterClass.ContextList result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.ContextList buildPartial() { + context.ContextOuterClass.ContextList result = new context.ContextOuterClass.ContextList(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(context.ContextOuterClass.ContextList result) { + if (contextsBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + contexts_ = java.util.Collections.unmodifiableList(contexts_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.contexts_ = contexts_; + } else { + result.contexts_ = contextsBuilder_.build(); + } + } + + private void buildPartial0(context.ContextOuterClass.ContextList result) { + int from_bitField0_ = bitField0_; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.ContextList) { + return mergeFrom((context.ContextOuterClass.ContextList) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.ContextList other) { + if (other == context.ContextOuterClass.ContextList.getDefaultInstance()) + return this; + if (contextsBuilder_ == null) { + if (!other.contexts_.isEmpty()) { + if (contexts_.isEmpty()) { + contexts_ = other.contexts_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureContextsIsMutable(); + contexts_.addAll(other.contexts_); + } + onChanged(); + } + } else { + if (!other.contexts_.isEmpty()) { + if (contextsBuilder_.isEmpty()) { + contextsBuilder_.dispose(); + contextsBuilder_ = null; + contexts_ = other.contexts_; + bitField0_ = (bitField0_ & ~0x00000001); + contextsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getContextsFieldBuilder() : null; + } else { + contextsBuilder_.addAllMessages(other.contexts_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + context.ContextOuterClass.Context m = input.readMessage(context.ContextOuterClass.Context.parser(), extensionRegistry); + if (contextsBuilder_ == null) { + ensureContextsIsMutable(); + contexts_.add(m); + } else { + contextsBuilder_.addMessage(m); + } + break; + } + // case 10 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private java.util.List contexts_ = java.util.Collections.emptyList(); + + private void ensureContextsIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + contexts_ = new java.util.ArrayList(contexts_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3 contextsBuilder_; + + /** + * repeated .context.Context contexts = 1; + */ + public java.util.List getContextsList() { + if (contextsBuilder_ == null) { + return java.util.Collections.unmodifiableList(contexts_); + } else { + return contextsBuilder_.getMessageList(); + } + } + + /** + * repeated .context.Context contexts = 1; + */ + public int getContextsCount() { + if (contextsBuilder_ == null) { + return contexts_.size(); + } else { + return contextsBuilder_.getCount(); + } + } + + /** + * repeated .context.Context contexts = 1; + */ + public context.ContextOuterClass.Context getContexts(int index) { + if (contextsBuilder_ == null) { + return contexts_.get(index); + } else { + return contextsBuilder_.getMessage(index); + } + } + + /** + * repeated .context.Context contexts = 1; + */ + public Builder setContexts(int index, context.ContextOuterClass.Context value) { + if (contextsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureContextsIsMutable(); + contexts_.set(index, value); + onChanged(); + } else { + contextsBuilder_.setMessage(index, value); + } + return this; + } + + /** + * repeated .context.Context contexts = 1; + */ + public Builder setContexts(int index, context.ContextOuterClass.Context.Builder builderForValue) { + if (contextsBuilder_ == null) { + ensureContextsIsMutable(); + contexts_.set(index, builderForValue.build()); + onChanged(); + } else { + contextsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.Context contexts = 1; + */ + public Builder addContexts(context.ContextOuterClass.Context value) { + if (contextsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureContextsIsMutable(); + contexts_.add(value); + onChanged(); + } else { + contextsBuilder_.addMessage(value); + } + return this; + } + + /** + * repeated .context.Context contexts = 1; + */ + public Builder addContexts(int index, context.ContextOuterClass.Context value) { + if (contextsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureContextsIsMutable(); + contexts_.add(index, value); + onChanged(); + } else { + contextsBuilder_.addMessage(index, value); + } + return this; + } + + /** + * repeated .context.Context contexts = 1; + */ + public Builder addContexts(context.ContextOuterClass.Context.Builder builderForValue) { + if (contextsBuilder_ == null) { + ensureContextsIsMutable(); + contexts_.add(builderForValue.build()); + onChanged(); + } else { + contextsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * repeated .context.Context contexts = 1; + */ + public Builder addContexts(int index, context.ContextOuterClass.Context.Builder builderForValue) { + if (contextsBuilder_ == null) { + ensureContextsIsMutable(); + contexts_.add(index, builderForValue.build()); + onChanged(); + } else { + contextsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.Context contexts = 1; + */ + public Builder addAllContexts(java.lang.Iterable values) { + if (contextsBuilder_ == null) { + ensureContextsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, contexts_); + onChanged(); + } else { + contextsBuilder_.addAllMessages(values); + } + return this; + } + + /** + * repeated .context.Context contexts = 1; + */ + public Builder clearContexts() { + if (contextsBuilder_ == null) { + contexts_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + contextsBuilder_.clear(); + } + return this; + } + + /** + * repeated .context.Context contexts = 1; + */ + public Builder removeContexts(int index) { + if (contextsBuilder_ == null) { + ensureContextsIsMutable(); + contexts_.remove(index); + onChanged(); + } else { + contextsBuilder_.remove(index); + } + return this; + } + + /** + * repeated .context.Context contexts = 1; + */ + public context.ContextOuterClass.Context.Builder getContextsBuilder(int index) { + return getContextsFieldBuilder().getBuilder(index); + } + + /** + * repeated .context.Context contexts = 1; + */ + public context.ContextOuterClass.ContextOrBuilder getContextsOrBuilder(int index) { + if (contextsBuilder_ == null) { + return contexts_.get(index); + } else { + return contextsBuilder_.getMessageOrBuilder(index); + } + } + + /** + * repeated .context.Context contexts = 1; + */ + public java.util.List getContextsOrBuilderList() { + if (contextsBuilder_ != null) { + return contextsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(contexts_); + } + } + + /** + * repeated .context.Context contexts = 1; + */ + public context.ContextOuterClass.Context.Builder addContextsBuilder() { + return getContextsFieldBuilder().addBuilder(context.ContextOuterClass.Context.getDefaultInstance()); + } + + /** + * repeated .context.Context contexts = 1; + */ + public context.ContextOuterClass.Context.Builder addContextsBuilder(int index) { + return getContextsFieldBuilder().addBuilder(index, context.ContextOuterClass.Context.getDefaultInstance()); + } + + /** + * repeated .context.Context contexts = 1; + */ + public java.util.List getContextsBuilderList() { + return getContextsFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3 getContextsFieldBuilder() { + if (contextsBuilder_ == null) { + contextsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3(contexts_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean()); + contexts_ = null; + } + return contextsBuilder_; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.ContextList) + } + + // @@protoc_insertion_point(class_scope:context.ContextList) + private static final context.ContextOuterClass.ContextList DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.ContextList(); + } + + public static context.ContextOuterClass.ContextList getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public ContextList parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.ContextList getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface ContextEventOrBuilder extends // @@protoc_insertion_point(interface_extends:context.ContextEvent) + com.google.protobuf.MessageOrBuilder { + + /** + * .context.Event event = 1; + * @return Whether the event field is set. + */ + boolean hasEvent(); + + /** + * .context.Event event = 1; + * @return The event. + */ + context.ContextOuterClass.Event getEvent(); + + /** + * .context.Event event = 1; + */ + context.ContextOuterClass.EventOrBuilder getEventOrBuilder(); + + /** + * .context.ContextId context_id = 2; + * @return Whether the contextId field is set. + */ + boolean hasContextId(); + + /** + * .context.ContextId context_id = 2; + * @return The contextId. + */ + context.ContextOuterClass.ContextId getContextId(); + + /** + * .context.ContextId context_id = 2; + */ + context.ContextOuterClass.ContextIdOrBuilder getContextIdOrBuilder(); + } + + /** + * Protobuf type {@code context.ContextEvent} + */ + public static final class ContextEvent extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.ContextEvent) + ContextEventOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use ContextEvent.newBuilder() to construct. + private ContextEvent(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private ContextEvent() { + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new ContextEvent(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_ContextEvent_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_ContextEvent_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.ContextEvent.class, context.ContextOuterClass.ContextEvent.Builder.class); + } + + public static final int EVENT_FIELD_NUMBER = 1; + + private context.ContextOuterClass.Event event_; + + /** + * .context.Event event = 1; + * @return Whether the event field is set. + */ + @java.lang.Override + public boolean hasEvent() { + return event_ != null; + } + + /** + * .context.Event event = 1; + * @return The event. + */ + @java.lang.Override + public context.ContextOuterClass.Event getEvent() { + return event_ == null ? context.ContextOuterClass.Event.getDefaultInstance() : event_; + } + + /** + * .context.Event event = 1; + */ + @java.lang.Override + public context.ContextOuterClass.EventOrBuilder getEventOrBuilder() { + return event_ == null ? context.ContextOuterClass.Event.getDefaultInstance() : event_; + } + + public static final int CONTEXT_ID_FIELD_NUMBER = 2; + + private context.ContextOuterClass.ContextId contextId_; + + /** + * .context.ContextId context_id = 2; + * @return Whether the contextId field is set. + */ + @java.lang.Override + public boolean hasContextId() { + return contextId_ != null; + } + + /** + * .context.ContextId context_id = 2; + * @return The contextId. + */ + @java.lang.Override + public context.ContextOuterClass.ContextId getContextId() { + return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_; + } + + /** + * .context.ContextId context_id = 2; + */ + @java.lang.Override + public context.ContextOuterClass.ContextIdOrBuilder getContextIdOrBuilder() { + return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (event_ != null) { + output.writeMessage(1, getEvent()); + } + if (contextId_ != null) { + output.writeMessage(2, getContextId()); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + if (event_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getEvent()); + } + if (contextId_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getContextId()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.ContextEvent)) { + return super.equals(obj); + } + context.ContextOuterClass.ContextEvent other = (context.ContextOuterClass.ContextEvent) obj; + if (hasEvent() != other.hasEvent()) + return false; + if (hasEvent()) { + if (!getEvent().equals(other.getEvent())) + return false; + } + if (hasContextId() != other.hasContextId()) + return false; + if (hasContextId()) { + if (!getContextId().equals(other.getContextId())) + return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasEvent()) { + hash = (37 * hash) + EVENT_FIELD_NUMBER; + hash = (53 * hash) + getEvent().hashCode(); + } + if (hasContextId()) { + hash = (37 * hash) + CONTEXT_ID_FIELD_NUMBER; + hash = (53 * hash) + getContextId().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.ContextEvent parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ContextEvent parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ContextEvent parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ContextEvent parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ContextEvent parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ContextEvent parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ContextEvent parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ContextEvent parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.ContextEvent parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ContextEvent parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.ContextEvent parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ContextEvent parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.ContextEvent prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code context.ContextEvent} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.ContextEvent) + context.ContextOuterClass.ContextEventOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_ContextEvent_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_ContextEvent_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.ContextEvent.class, context.ContextOuterClass.ContextEvent.Builder.class); + } + + // Construct using context.ContextOuterClass.ContextEvent.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + event_ = null; + if (eventBuilder_ != null) { + eventBuilder_.dispose(); + eventBuilder_ = null; + } + contextId_ = null; + if (contextIdBuilder_ != null) { + contextIdBuilder_.dispose(); + contextIdBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_ContextEvent_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.ContextEvent getDefaultInstanceForType() { + return context.ContextOuterClass.ContextEvent.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.ContextEvent build() { + context.ContextOuterClass.ContextEvent result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.ContextEvent buildPartial() { + context.ContextOuterClass.ContextEvent result = new context.ContextOuterClass.ContextEvent(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(context.ContextOuterClass.ContextEvent result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.event_ = eventBuilder_ == null ? event_ : eventBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.contextId_ = contextIdBuilder_ == null ? contextId_ : contextIdBuilder_.build(); + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.ContextEvent) { + return mergeFrom((context.ContextOuterClass.ContextEvent) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.ContextEvent other) { + if (other == context.ContextOuterClass.ContextEvent.getDefaultInstance()) + return this; + if (other.hasEvent()) { + mergeEvent(other.getEvent()); + } + if (other.hasContextId()) { + mergeContextId(other.getContextId()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getEventFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + input.readMessage(getContextIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000002; + break; + } + // case 18 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private context.ContextOuterClass.Event event_; + + private com.google.protobuf.SingleFieldBuilderV3 eventBuilder_; + + /** + * .context.Event event = 1; + * @return Whether the event field is set. + */ + public boolean hasEvent() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * .context.Event event = 1; + * @return The event. + */ + public context.ContextOuterClass.Event getEvent() { + if (eventBuilder_ == null) { + return event_ == null ? context.ContextOuterClass.Event.getDefaultInstance() : event_; + } else { + return eventBuilder_.getMessage(); + } + } + + /** + * .context.Event event = 1; + */ + public Builder setEvent(context.ContextOuterClass.Event value) { + if (eventBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + event_ = value; + } else { + eventBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.Event event = 1; + */ + public Builder setEvent(context.ContextOuterClass.Event.Builder builderForValue) { + if (eventBuilder_ == null) { + event_ = builderForValue.build(); + } else { + eventBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.Event event = 1; + */ + public Builder mergeEvent(context.ContextOuterClass.Event value) { + if (eventBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && event_ != null && event_ != context.ContextOuterClass.Event.getDefaultInstance()) { + getEventBuilder().mergeFrom(value); + } else { + event_ = value; + } + } else { + eventBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.Event event = 1; + */ + public Builder clearEvent() { + bitField0_ = (bitField0_ & ~0x00000001); + event_ = null; + if (eventBuilder_ != null) { + eventBuilder_.dispose(); + eventBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.Event event = 1; + */ + public context.ContextOuterClass.Event.Builder getEventBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getEventFieldBuilder().getBuilder(); + } + + /** + * .context.Event event = 1; + */ + public context.ContextOuterClass.EventOrBuilder getEventOrBuilder() { + if (eventBuilder_ != null) { + return eventBuilder_.getMessageOrBuilder(); + } else { + return event_ == null ? context.ContextOuterClass.Event.getDefaultInstance() : event_; + } + } + + /** + * .context.Event event = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3 getEventFieldBuilder() { + if (eventBuilder_ == null) { + eventBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getEvent(), getParentForChildren(), isClean()); + event_ = null; + } + return eventBuilder_; + } + + private context.ContextOuterClass.ContextId contextId_; + + private com.google.protobuf.SingleFieldBuilderV3 contextIdBuilder_; + + /** + * .context.ContextId context_id = 2; + * @return Whether the contextId field is set. + */ + public boolean hasContextId() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * .context.ContextId context_id = 2; + * @return The contextId. + */ + public context.ContextOuterClass.ContextId getContextId() { + if (contextIdBuilder_ == null) { + return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_; + } else { + return contextIdBuilder_.getMessage(); + } + } + + /** + * .context.ContextId context_id = 2; + */ + public Builder setContextId(context.ContextOuterClass.ContextId value) { + if (contextIdBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + contextId_ = value; + } else { + contextIdBuilder_.setMessage(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * .context.ContextId context_id = 2; + */ + public Builder setContextId(context.ContextOuterClass.ContextId.Builder builderForValue) { + if (contextIdBuilder_ == null) { + contextId_ = builderForValue.build(); + } else { + contextIdBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * .context.ContextId context_id = 2; + */ + public Builder mergeContextId(context.ContextOuterClass.ContextId value) { + if (contextIdBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0) && contextId_ != null && contextId_ != context.ContextOuterClass.ContextId.getDefaultInstance()) { + getContextIdBuilder().mergeFrom(value); + } else { + contextId_ = value; + } + } else { + contextIdBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * .context.ContextId context_id = 2; + */ + public Builder clearContextId() { + bitField0_ = (bitField0_ & ~0x00000002); + contextId_ = null; + if (contextIdBuilder_ != null) { + contextIdBuilder_.dispose(); + contextIdBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.ContextId context_id = 2; + */ + public context.ContextOuterClass.ContextId.Builder getContextIdBuilder() { + bitField0_ |= 0x00000002; + onChanged(); + return getContextIdFieldBuilder().getBuilder(); + } + + /** + * .context.ContextId context_id = 2; + */ + public context.ContextOuterClass.ContextIdOrBuilder getContextIdOrBuilder() { + if (contextIdBuilder_ != null) { + return contextIdBuilder_.getMessageOrBuilder(); + } else { + return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_; + } + } + + /** + * .context.ContextId context_id = 2; + */ + private com.google.protobuf.SingleFieldBuilderV3 getContextIdFieldBuilder() { + if (contextIdBuilder_ == null) { + contextIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getContextId(), getParentForChildren(), isClean()); + contextId_ = null; + } + return contextIdBuilder_; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.ContextEvent) + } + + // @@protoc_insertion_point(class_scope:context.ContextEvent) + private static final context.ContextOuterClass.ContextEvent DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.ContextEvent(); + } + + public static context.ContextOuterClass.ContextEvent getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public ContextEvent parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.ContextEvent getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface TopologyIdOrBuilder extends // @@protoc_insertion_point(interface_extends:context.TopologyId) + com.google.protobuf.MessageOrBuilder { + + /** + * .context.ContextId context_id = 1; + * @return Whether the contextId field is set. + */ + boolean hasContextId(); + + /** + * .context.ContextId context_id = 1; + * @return The contextId. + */ + context.ContextOuterClass.ContextId getContextId(); + + /** + * .context.ContextId context_id = 1; + */ + context.ContextOuterClass.ContextIdOrBuilder getContextIdOrBuilder(); + + /** + * .context.Uuid topology_uuid = 2; + * @return Whether the topologyUuid field is set. + */ + boolean hasTopologyUuid(); + + /** + * .context.Uuid topology_uuid = 2; + * @return The topologyUuid. + */ + context.ContextOuterClass.Uuid getTopologyUuid(); + + /** + * .context.Uuid topology_uuid = 2; + */ + context.ContextOuterClass.UuidOrBuilder getTopologyUuidOrBuilder(); + } + + /** + *
+     * ----- Topology ------------------------------------------------------------------------------------------------------
+     * 
+ * + * Protobuf type {@code context.TopologyId} + */ + public static final class TopologyId extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.TopologyId) + TopologyIdOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use TopologyId.newBuilder() to construct. + private TopologyId(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private TopologyId() { + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new TopologyId(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_TopologyId_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_TopologyId_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.TopologyId.class, context.ContextOuterClass.TopologyId.Builder.class); + } + + public static final int CONTEXT_ID_FIELD_NUMBER = 1; + + private context.ContextOuterClass.ContextId contextId_; + + /** + * .context.ContextId context_id = 1; + * @return Whether the contextId field is set. + */ + @java.lang.Override + public boolean hasContextId() { + return contextId_ != null; + } + + /** + * .context.ContextId context_id = 1; + * @return The contextId. + */ + @java.lang.Override + public context.ContextOuterClass.ContextId getContextId() { + return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_; + } + + /** + * .context.ContextId context_id = 1; + */ + @java.lang.Override + public context.ContextOuterClass.ContextIdOrBuilder getContextIdOrBuilder() { + return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_; + } + + public static final int TOPOLOGY_UUID_FIELD_NUMBER = 2; + + private context.ContextOuterClass.Uuid topologyUuid_; + + /** + * .context.Uuid topology_uuid = 2; + * @return Whether the topologyUuid field is set. + */ + @java.lang.Override + public boolean hasTopologyUuid() { + return topologyUuid_ != null; + } + + /** + * .context.Uuid topology_uuid = 2; + * @return The topologyUuid. + */ + @java.lang.Override + public context.ContextOuterClass.Uuid getTopologyUuid() { + return topologyUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : topologyUuid_; + } + + /** + * .context.Uuid topology_uuid = 2; + */ + @java.lang.Override + public context.ContextOuterClass.UuidOrBuilder getTopologyUuidOrBuilder() { + return topologyUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : topologyUuid_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (contextId_ != null) { + output.writeMessage(1, getContextId()); + } + if (topologyUuid_ != null) { + output.writeMessage(2, getTopologyUuid()); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + if (contextId_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getContextId()); + } + if (topologyUuid_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getTopologyUuid()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.TopologyId)) { + return super.equals(obj); + } + context.ContextOuterClass.TopologyId other = (context.ContextOuterClass.TopologyId) obj; + if (hasContextId() != other.hasContextId()) + return false; + if (hasContextId()) { + if (!getContextId().equals(other.getContextId())) + return false; + } + if (hasTopologyUuid() != other.hasTopologyUuid()) + return false; + if (hasTopologyUuid()) { + if (!getTopologyUuid().equals(other.getTopologyUuid())) + return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasContextId()) { + hash = (37 * hash) + CONTEXT_ID_FIELD_NUMBER; + hash = (53 * hash) + getContextId().hashCode(); + } + if (hasTopologyUuid()) { + hash = (37 * hash) + TOPOLOGY_UUID_FIELD_NUMBER; + hash = (53 * hash) + getTopologyUuid().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.TopologyId parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.TopologyId parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.TopologyId parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.TopologyId parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.TopologyId parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.TopologyId parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.TopologyId parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.TopologyId parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.TopologyId parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.TopologyId parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.TopologyId parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.TopologyId parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.TopologyId prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + *
+         * ----- Topology ------------------------------------------------------------------------------------------------------
+         * 
+ * + * Protobuf type {@code context.TopologyId} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.TopologyId) + context.ContextOuterClass.TopologyIdOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_TopologyId_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_TopologyId_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.TopologyId.class, context.ContextOuterClass.TopologyId.Builder.class); + } + + // Construct using context.ContextOuterClass.TopologyId.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + contextId_ = null; + if (contextIdBuilder_ != null) { + contextIdBuilder_.dispose(); + contextIdBuilder_ = null; + } + topologyUuid_ = null; + if (topologyUuidBuilder_ != null) { + topologyUuidBuilder_.dispose(); + topologyUuidBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_TopologyId_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.TopologyId getDefaultInstanceForType() { + return context.ContextOuterClass.TopologyId.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.TopologyId build() { + context.ContextOuterClass.TopologyId result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.TopologyId buildPartial() { + context.ContextOuterClass.TopologyId result = new context.ContextOuterClass.TopologyId(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(context.ContextOuterClass.TopologyId result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.contextId_ = contextIdBuilder_ == null ? contextId_ : contextIdBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.topologyUuid_ = topologyUuidBuilder_ == null ? topologyUuid_ : topologyUuidBuilder_.build(); + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.TopologyId) { + return mergeFrom((context.ContextOuterClass.TopologyId) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.TopologyId other) { + if (other == context.ContextOuterClass.TopologyId.getDefaultInstance()) + return this; + if (other.hasContextId()) { + mergeContextId(other.getContextId()); + } + if (other.hasTopologyUuid()) { + mergeTopologyUuid(other.getTopologyUuid()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getContextIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + input.readMessage(getTopologyUuidFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000002; + break; + } + // case 18 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private context.ContextOuterClass.ContextId contextId_; + + private com.google.protobuf.SingleFieldBuilderV3 contextIdBuilder_; + + /** + * .context.ContextId context_id = 1; + * @return Whether the contextId field is set. + */ + public boolean hasContextId() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * .context.ContextId context_id = 1; + * @return The contextId. + */ + public context.ContextOuterClass.ContextId getContextId() { + if (contextIdBuilder_ == null) { + return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_; + } else { + return contextIdBuilder_.getMessage(); + } + } + + /** + * .context.ContextId context_id = 1; + */ + public Builder setContextId(context.ContextOuterClass.ContextId value) { + if (contextIdBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + contextId_ = value; + } else { + contextIdBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.ContextId context_id = 1; + */ + public Builder setContextId(context.ContextOuterClass.ContextId.Builder builderForValue) { + if (contextIdBuilder_ == null) { + contextId_ = builderForValue.build(); + } else { + contextIdBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.ContextId context_id = 1; + */ + public Builder mergeContextId(context.ContextOuterClass.ContextId value) { + if (contextIdBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && contextId_ != null && contextId_ != context.ContextOuterClass.ContextId.getDefaultInstance()) { + getContextIdBuilder().mergeFrom(value); + } else { + contextId_ = value; + } + } else { + contextIdBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.ContextId context_id = 1; + */ + public Builder clearContextId() { + bitField0_ = (bitField0_ & ~0x00000001); + contextId_ = null; + if (contextIdBuilder_ != null) { + contextIdBuilder_.dispose(); + contextIdBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.ContextId context_id = 1; + */ + public context.ContextOuterClass.ContextId.Builder getContextIdBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getContextIdFieldBuilder().getBuilder(); + } + + /** + * .context.ContextId context_id = 1; + */ + public context.ContextOuterClass.ContextIdOrBuilder getContextIdOrBuilder() { + if (contextIdBuilder_ != null) { + return contextIdBuilder_.getMessageOrBuilder(); + } else { + return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_; + } + } + + /** + * .context.ContextId context_id = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3 getContextIdFieldBuilder() { + if (contextIdBuilder_ == null) { + contextIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getContextId(), getParentForChildren(), isClean()); + contextId_ = null; + } + return contextIdBuilder_; + } + + private context.ContextOuterClass.Uuid topologyUuid_; + + private com.google.protobuf.SingleFieldBuilderV3 topologyUuidBuilder_; + + /** + * .context.Uuid topology_uuid = 2; + * @return Whether the topologyUuid field is set. + */ + public boolean hasTopologyUuid() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * .context.Uuid topology_uuid = 2; + * @return The topologyUuid. + */ + public context.ContextOuterClass.Uuid getTopologyUuid() { + if (topologyUuidBuilder_ == null) { + return topologyUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : topologyUuid_; + } else { + return topologyUuidBuilder_.getMessage(); + } + } + + /** + * .context.Uuid topology_uuid = 2; + */ + public Builder setTopologyUuid(context.ContextOuterClass.Uuid value) { + if (topologyUuidBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + topologyUuid_ = value; + } else { + topologyUuidBuilder_.setMessage(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * .context.Uuid topology_uuid = 2; + */ + public Builder setTopologyUuid(context.ContextOuterClass.Uuid.Builder builderForValue) { + if (topologyUuidBuilder_ == null) { + topologyUuid_ = builderForValue.build(); + } else { + topologyUuidBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * .context.Uuid topology_uuid = 2; + */ + public Builder mergeTopologyUuid(context.ContextOuterClass.Uuid value) { + if (topologyUuidBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0) && topologyUuid_ != null && topologyUuid_ != context.ContextOuterClass.Uuid.getDefaultInstance()) { + getTopologyUuidBuilder().mergeFrom(value); + } else { + topologyUuid_ = value; + } + } else { + topologyUuidBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * .context.Uuid topology_uuid = 2; + */ + public Builder clearTopologyUuid() { + bitField0_ = (bitField0_ & ~0x00000002); + topologyUuid_ = null; + if (topologyUuidBuilder_ != null) { + topologyUuidBuilder_.dispose(); + topologyUuidBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.Uuid topology_uuid = 2; + */ + public context.ContextOuterClass.Uuid.Builder getTopologyUuidBuilder() { + bitField0_ |= 0x00000002; + onChanged(); + return getTopologyUuidFieldBuilder().getBuilder(); + } + + /** + * .context.Uuid topology_uuid = 2; + */ + public context.ContextOuterClass.UuidOrBuilder getTopologyUuidOrBuilder() { + if (topologyUuidBuilder_ != null) { + return topologyUuidBuilder_.getMessageOrBuilder(); + } else { + return topologyUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : topologyUuid_; + } + } + + /** + * .context.Uuid topology_uuid = 2; + */ + private com.google.protobuf.SingleFieldBuilderV3 getTopologyUuidFieldBuilder() { + if (topologyUuidBuilder_ == null) { + topologyUuidBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getTopologyUuid(), getParentForChildren(), isClean()); + topologyUuid_ = null; + } + return topologyUuidBuilder_; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.TopologyId) + } + + // @@protoc_insertion_point(class_scope:context.TopologyId) + private static final context.ContextOuterClass.TopologyId DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.TopologyId(); + } + + public static context.ContextOuterClass.TopologyId getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public TopologyId parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.TopologyId getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface TopologyOrBuilder extends // @@protoc_insertion_point(interface_extends:context.Topology) + com.google.protobuf.MessageOrBuilder { + + /** + * .context.TopologyId topology_id = 1; + * @return Whether the topologyId field is set. + */ + boolean hasTopologyId(); + + /** + * .context.TopologyId topology_id = 1; + * @return The topologyId. + */ + context.ContextOuterClass.TopologyId getTopologyId(); + + /** + * .context.TopologyId topology_id = 1; + */ + context.ContextOuterClass.TopologyIdOrBuilder getTopologyIdOrBuilder(); + + /** + * string name = 2; + * @return The name. + */ + java.lang.String getName(); + + /** + * string name = 2; + * @return The bytes for name. + */ + com.google.protobuf.ByteString getNameBytes(); + + /** + * repeated .context.DeviceId device_ids = 3; + */ + java.util.List getDeviceIdsList(); + + /** + * repeated .context.DeviceId device_ids = 3; + */ + context.ContextOuterClass.DeviceId getDeviceIds(int index); + + /** + * repeated .context.DeviceId device_ids = 3; + */ + int getDeviceIdsCount(); + + /** + * repeated .context.DeviceId device_ids = 3; + */ + java.util.List getDeviceIdsOrBuilderList(); + + /** + * repeated .context.DeviceId device_ids = 3; + */ + context.ContextOuterClass.DeviceIdOrBuilder getDeviceIdsOrBuilder(int index); + + /** + * repeated .context.LinkId link_ids = 4; + */ + java.util.List getLinkIdsList(); + + /** + * repeated .context.LinkId link_ids = 4; + */ + context.ContextOuterClass.LinkId getLinkIds(int index); + + /** + * repeated .context.LinkId link_ids = 4; + */ + int getLinkIdsCount(); + + /** + * repeated .context.LinkId link_ids = 4; + */ + java.util.List getLinkIdsOrBuilderList(); + + /** + * repeated .context.LinkId link_ids = 4; + */ + context.ContextOuterClass.LinkIdOrBuilder getLinkIdsOrBuilder(int index); + } + + /** + * Protobuf type {@code context.Topology} + */ + public static final class Topology extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.Topology) + TopologyOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use Topology.newBuilder() to construct. + private Topology(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private Topology() { + name_ = ""; + deviceIds_ = java.util.Collections.emptyList(); + linkIds_ = java.util.Collections.emptyList(); + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new Topology(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_Topology_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_Topology_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.Topology.class, context.ContextOuterClass.Topology.Builder.class); + } + + public static final int TOPOLOGY_ID_FIELD_NUMBER = 1; + + private context.ContextOuterClass.TopologyId topologyId_; + + /** + * .context.TopologyId topology_id = 1; + * @return Whether the topologyId field is set. + */ + @java.lang.Override + public boolean hasTopologyId() { + return topologyId_ != null; + } + + /** + * .context.TopologyId topology_id = 1; + * @return The topologyId. + */ + @java.lang.Override + public context.ContextOuterClass.TopologyId getTopologyId() { + return topologyId_ == null ? context.ContextOuterClass.TopologyId.getDefaultInstance() : topologyId_; + } + + /** + * .context.TopologyId topology_id = 1; + */ + @java.lang.Override + public context.ContextOuterClass.TopologyIdOrBuilder getTopologyIdOrBuilder() { + return topologyId_ == null ? context.ContextOuterClass.TopologyId.getDefaultInstance() : topologyId_; + } + + public static final int NAME_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object name_ = ""; + + /** + * string name = 2; + * @return The name. + */ + @java.lang.Override + public java.lang.String getName() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + name_ = s; + return s; + } + } + + /** + * string name = 2; + * @return The bytes for name. + */ + @java.lang.Override + public com.google.protobuf.ByteString getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int DEVICE_IDS_FIELD_NUMBER = 3; + + @SuppressWarnings("serial") + private java.util.List deviceIds_; + + /** + * repeated .context.DeviceId device_ids = 3; + */ + @java.lang.Override + public java.util.List getDeviceIdsList() { + return deviceIds_; + } + + /** + * repeated .context.DeviceId device_ids = 3; + */ + @java.lang.Override + public java.util.List getDeviceIdsOrBuilderList() { + return deviceIds_; + } + + /** + * repeated .context.DeviceId device_ids = 3; + */ + @java.lang.Override + public int getDeviceIdsCount() { + return deviceIds_.size(); + } + + /** + * repeated .context.DeviceId device_ids = 3; + */ + @java.lang.Override + public context.ContextOuterClass.DeviceId getDeviceIds(int index) { + return deviceIds_.get(index); + } + + /** + * repeated .context.DeviceId device_ids = 3; + */ + @java.lang.Override + public context.ContextOuterClass.DeviceIdOrBuilder getDeviceIdsOrBuilder(int index) { + return deviceIds_.get(index); + } + + public static final int LINK_IDS_FIELD_NUMBER = 4; + + @SuppressWarnings("serial") + private java.util.List linkIds_; + + /** + * repeated .context.LinkId link_ids = 4; + */ + @java.lang.Override + public java.util.List getLinkIdsList() { + return linkIds_; + } + + /** + * repeated .context.LinkId link_ids = 4; + */ + @java.lang.Override + public java.util.List getLinkIdsOrBuilderList() { + return linkIds_; + } + + /** + * repeated .context.LinkId link_ids = 4; + */ + @java.lang.Override + public int getLinkIdsCount() { + return linkIds_.size(); + } + + /** + * repeated .context.LinkId link_ids = 4; + */ + @java.lang.Override + public context.ContextOuterClass.LinkId getLinkIds(int index) { + return linkIds_.get(index); + } + + /** + * repeated .context.LinkId link_ids = 4; + */ + @java.lang.Override + public context.ContextOuterClass.LinkIdOrBuilder getLinkIdsOrBuilder(int index) { + return linkIds_.get(index); + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (topologyId_ != null) { + output.writeMessage(1, getTopologyId()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, name_); + } + for (int i = 0; i < deviceIds_.size(); i++) { + output.writeMessage(3, deviceIds_.get(i)); + } + for (int i = 0; i < linkIds_.size(); i++) { + output.writeMessage(4, linkIds_.get(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + if (topologyId_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getTopologyId()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, name_); + } + for (int i = 0; i < deviceIds_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, deviceIds_.get(i)); + } + for (int i = 0; i < linkIds_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, linkIds_.get(i)); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.Topology)) { + return super.equals(obj); + } + context.ContextOuterClass.Topology other = (context.ContextOuterClass.Topology) obj; + if (hasTopologyId() != other.hasTopologyId()) + return false; + if (hasTopologyId()) { + if (!getTopologyId().equals(other.getTopologyId())) + return false; + } + if (!getName().equals(other.getName())) + return false; + if (!getDeviceIdsList().equals(other.getDeviceIdsList())) + return false; + if (!getLinkIdsList().equals(other.getLinkIdsList())) + return false; + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasTopologyId()) { + hash = (37 * hash) + TOPOLOGY_ID_FIELD_NUMBER; + hash = (53 * hash) + getTopologyId().hashCode(); + } + hash = (37 * hash) + NAME_FIELD_NUMBER; + hash = (53 * hash) + getName().hashCode(); + if (getDeviceIdsCount() > 0) { + hash = (37 * hash) + DEVICE_IDS_FIELD_NUMBER; + hash = (53 * hash) + getDeviceIdsList().hashCode(); + } + if (getLinkIdsCount() > 0) { + hash = (37 * hash) + LINK_IDS_FIELD_NUMBER; + hash = (53 * hash) + getLinkIdsList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.Topology parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.Topology parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.Topology parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.Topology parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.Topology parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.Topology parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.Topology parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.Topology parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.Topology parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.Topology parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.Topology parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.Topology parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.Topology prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code context.Topology} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.Topology) + context.ContextOuterClass.TopologyOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_Topology_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_Topology_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.Topology.class, context.ContextOuterClass.Topology.Builder.class); + } + + // Construct using context.ContextOuterClass.Topology.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + topologyId_ = null; + if (topologyIdBuilder_ != null) { + topologyIdBuilder_.dispose(); + topologyIdBuilder_ = null; + } + name_ = ""; + if (deviceIdsBuilder_ == null) { + deviceIds_ = java.util.Collections.emptyList(); + } else { + deviceIds_ = null; + deviceIdsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000004); + if (linkIdsBuilder_ == null) { + linkIds_ = java.util.Collections.emptyList(); + } else { + linkIds_ = null; + linkIdsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000008); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_Topology_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.Topology getDefaultInstanceForType() { + return context.ContextOuterClass.Topology.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.Topology build() { + context.ContextOuterClass.Topology result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.Topology buildPartial() { + context.ContextOuterClass.Topology result = new context.ContextOuterClass.Topology(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(context.ContextOuterClass.Topology result) { + if (deviceIdsBuilder_ == null) { + if (((bitField0_ & 0x00000004) != 0)) { + deviceIds_ = java.util.Collections.unmodifiableList(deviceIds_); + bitField0_ = (bitField0_ & ~0x00000004); + } + result.deviceIds_ = deviceIds_; + } else { + result.deviceIds_ = deviceIdsBuilder_.build(); + } + if (linkIdsBuilder_ == null) { + if (((bitField0_ & 0x00000008) != 0)) { + linkIds_ = java.util.Collections.unmodifiableList(linkIds_); + bitField0_ = (bitField0_ & ~0x00000008); + } + result.linkIds_ = linkIds_; + } else { + result.linkIds_ = linkIdsBuilder_.build(); + } + } + + private void buildPartial0(context.ContextOuterClass.Topology result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.topologyId_ = topologyIdBuilder_ == null ? topologyId_ : topologyIdBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.name_ = name_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.Topology) { + return mergeFrom((context.ContextOuterClass.Topology) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.Topology other) { + if (other == context.ContextOuterClass.Topology.getDefaultInstance()) + return this; + if (other.hasTopologyId()) { + mergeTopologyId(other.getTopologyId()); + } + if (!other.getName().isEmpty()) { + name_ = other.name_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (deviceIdsBuilder_ == null) { + if (!other.deviceIds_.isEmpty()) { + if (deviceIds_.isEmpty()) { + deviceIds_ = other.deviceIds_; + bitField0_ = (bitField0_ & ~0x00000004); + } else { + ensureDeviceIdsIsMutable(); + deviceIds_.addAll(other.deviceIds_); + } + onChanged(); + } + } else { + if (!other.deviceIds_.isEmpty()) { + if (deviceIdsBuilder_.isEmpty()) { + deviceIdsBuilder_.dispose(); + deviceIdsBuilder_ = null; + deviceIds_ = other.deviceIds_; + bitField0_ = (bitField0_ & ~0x00000004); + deviceIdsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getDeviceIdsFieldBuilder() : null; + } else { + deviceIdsBuilder_.addAllMessages(other.deviceIds_); + } + } + } + if (linkIdsBuilder_ == null) { + if (!other.linkIds_.isEmpty()) { + if (linkIds_.isEmpty()) { + linkIds_ = other.linkIds_; + bitField0_ = (bitField0_ & ~0x00000008); + } else { + ensureLinkIdsIsMutable(); + linkIds_.addAll(other.linkIds_); + } + onChanged(); + } + } else { + if (!other.linkIds_.isEmpty()) { + if (linkIdsBuilder_.isEmpty()) { + linkIdsBuilder_.dispose(); + linkIdsBuilder_ = null; + linkIds_ = other.linkIds_; + bitField0_ = (bitField0_ & ~0x00000008); + linkIdsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getLinkIdsFieldBuilder() : null; + } else { + linkIdsBuilder_.addAllMessages(other.linkIds_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getTopologyIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + name_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } + // case 18 + case 26: + { + context.ContextOuterClass.DeviceId m = input.readMessage(context.ContextOuterClass.DeviceId.parser(), extensionRegistry); + if (deviceIdsBuilder_ == null) { + ensureDeviceIdsIsMutable(); + deviceIds_.add(m); + } else { + deviceIdsBuilder_.addMessage(m); + } + break; + } + // case 26 + case 34: + { + context.ContextOuterClass.LinkId m = input.readMessage(context.ContextOuterClass.LinkId.parser(), extensionRegistry); + if (linkIdsBuilder_ == null) { + ensureLinkIdsIsMutable(); + linkIds_.add(m); + } else { + linkIdsBuilder_.addMessage(m); + } + break; + } + // case 34 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private context.ContextOuterClass.TopologyId topologyId_; + + private com.google.protobuf.SingleFieldBuilderV3 topologyIdBuilder_; + + /** + * .context.TopologyId topology_id = 1; + * @return Whether the topologyId field is set. + */ + public boolean hasTopologyId() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * .context.TopologyId topology_id = 1; + * @return The topologyId. + */ + public context.ContextOuterClass.TopologyId getTopologyId() { + if (topologyIdBuilder_ == null) { + return topologyId_ == null ? context.ContextOuterClass.TopologyId.getDefaultInstance() : topologyId_; + } else { + return topologyIdBuilder_.getMessage(); + } + } + + /** + * .context.TopologyId topology_id = 1; + */ + public Builder setTopologyId(context.ContextOuterClass.TopologyId value) { + if (topologyIdBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + topologyId_ = value; + } else { + topologyIdBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.TopologyId topology_id = 1; + */ + public Builder setTopologyId(context.ContextOuterClass.TopologyId.Builder builderForValue) { + if (topologyIdBuilder_ == null) { + topologyId_ = builderForValue.build(); + } else { + topologyIdBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.TopologyId topology_id = 1; + */ + public Builder mergeTopologyId(context.ContextOuterClass.TopologyId value) { + if (topologyIdBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && topologyId_ != null && topologyId_ != context.ContextOuterClass.TopologyId.getDefaultInstance()) { + getTopologyIdBuilder().mergeFrom(value); + } else { + topologyId_ = value; + } + } else { + topologyIdBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.TopologyId topology_id = 1; + */ + public Builder clearTopologyId() { + bitField0_ = (bitField0_ & ~0x00000001); + topologyId_ = null; + if (topologyIdBuilder_ != null) { + topologyIdBuilder_.dispose(); + topologyIdBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.TopologyId topology_id = 1; + */ + public context.ContextOuterClass.TopologyId.Builder getTopologyIdBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getTopologyIdFieldBuilder().getBuilder(); + } + + /** + * .context.TopologyId topology_id = 1; + */ + public context.ContextOuterClass.TopologyIdOrBuilder getTopologyIdOrBuilder() { + if (topologyIdBuilder_ != null) { + return topologyIdBuilder_.getMessageOrBuilder(); + } else { + return topologyId_ == null ? context.ContextOuterClass.TopologyId.getDefaultInstance() : topologyId_; + } + } + + /** + * .context.TopologyId topology_id = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3 getTopologyIdFieldBuilder() { + if (topologyIdBuilder_ == null) { + topologyIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getTopologyId(), getParentForChildren(), isClean()); + topologyId_ = null; + } + return topologyIdBuilder_; + } + + private java.lang.Object name_ = ""; + + /** + * string name = 2; + * @return The name. + */ + public java.lang.String getName() { + java.lang.Object ref = name_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + name_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * string name = 2; + * @return The bytes for name. + */ + public com.google.protobuf.ByteString getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * string name = 2; + * @param value The name to set. + * @return This builder for chaining. + */ + public Builder setName(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + name_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * string name = 2; + * @return This builder for chaining. + */ + public Builder clearName() { + name_ = getDefaultInstance().getName(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * string name = 2; + * @param value The bytes for name to set. + * @return This builder for chaining. + */ + public Builder setNameBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + name_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private java.util.List deviceIds_ = java.util.Collections.emptyList(); + + private void ensureDeviceIdsIsMutable() { + if (!((bitField0_ & 0x00000004) != 0)) { + deviceIds_ = new java.util.ArrayList(deviceIds_); + bitField0_ |= 0x00000004; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3 deviceIdsBuilder_; + + /** + * repeated .context.DeviceId device_ids = 3; + */ + public java.util.List getDeviceIdsList() { + if (deviceIdsBuilder_ == null) { + return java.util.Collections.unmodifiableList(deviceIds_); + } else { + return deviceIdsBuilder_.getMessageList(); + } + } + + /** + * repeated .context.DeviceId device_ids = 3; + */ + public int getDeviceIdsCount() { + if (deviceIdsBuilder_ == null) { + return deviceIds_.size(); + } else { + return deviceIdsBuilder_.getCount(); + } + } + + /** + * repeated .context.DeviceId device_ids = 3; + */ + public context.ContextOuterClass.DeviceId getDeviceIds(int index) { + if (deviceIdsBuilder_ == null) { + return deviceIds_.get(index); + } else { + return deviceIdsBuilder_.getMessage(index); + } + } + + /** + * repeated .context.DeviceId device_ids = 3; + */ + public Builder setDeviceIds(int index, context.ContextOuterClass.DeviceId value) { + if (deviceIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureDeviceIdsIsMutable(); + deviceIds_.set(index, value); + onChanged(); + } else { + deviceIdsBuilder_.setMessage(index, value); + } + return this; + } + + /** + * repeated .context.DeviceId device_ids = 3; + */ + public Builder setDeviceIds(int index, context.ContextOuterClass.DeviceId.Builder builderForValue) { + if (deviceIdsBuilder_ == null) { + ensureDeviceIdsIsMutable(); + deviceIds_.set(index, builderForValue.build()); + onChanged(); + } else { + deviceIdsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.DeviceId device_ids = 3; + */ + public Builder addDeviceIds(context.ContextOuterClass.DeviceId value) { + if (deviceIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureDeviceIdsIsMutable(); + deviceIds_.add(value); + onChanged(); + } else { + deviceIdsBuilder_.addMessage(value); + } + return this; + } + + /** + * repeated .context.DeviceId device_ids = 3; + */ + public Builder addDeviceIds(int index, context.ContextOuterClass.DeviceId value) { + if (deviceIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureDeviceIdsIsMutable(); + deviceIds_.add(index, value); + onChanged(); + } else { + deviceIdsBuilder_.addMessage(index, value); + } + return this; + } + + /** + * repeated .context.DeviceId device_ids = 3; + */ + public Builder addDeviceIds(context.ContextOuterClass.DeviceId.Builder builderForValue) { + if (deviceIdsBuilder_ == null) { + ensureDeviceIdsIsMutable(); + deviceIds_.add(builderForValue.build()); + onChanged(); + } else { + deviceIdsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * repeated .context.DeviceId device_ids = 3; + */ + public Builder addDeviceIds(int index, context.ContextOuterClass.DeviceId.Builder builderForValue) { + if (deviceIdsBuilder_ == null) { + ensureDeviceIdsIsMutable(); + deviceIds_.add(index, builderForValue.build()); + onChanged(); + } else { + deviceIdsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.DeviceId device_ids = 3; + */ + public Builder addAllDeviceIds(java.lang.Iterable values) { + if (deviceIdsBuilder_ == null) { + ensureDeviceIdsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, deviceIds_); + onChanged(); + } else { + deviceIdsBuilder_.addAllMessages(values); + } + return this; + } + + /** + * repeated .context.DeviceId device_ids = 3; + */ + public Builder clearDeviceIds() { + if (deviceIdsBuilder_ == null) { + deviceIds_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + } else { + deviceIdsBuilder_.clear(); + } + return this; + } + + /** + * repeated .context.DeviceId device_ids = 3; + */ + public Builder removeDeviceIds(int index) { + if (deviceIdsBuilder_ == null) { + ensureDeviceIdsIsMutable(); + deviceIds_.remove(index); + onChanged(); + } else { + deviceIdsBuilder_.remove(index); + } + return this; + } + + /** + * repeated .context.DeviceId device_ids = 3; + */ + public context.ContextOuterClass.DeviceId.Builder getDeviceIdsBuilder(int index) { + return getDeviceIdsFieldBuilder().getBuilder(index); + } + + /** + * repeated .context.DeviceId device_ids = 3; + */ + public context.ContextOuterClass.DeviceIdOrBuilder getDeviceIdsOrBuilder(int index) { + if (deviceIdsBuilder_ == null) { + return deviceIds_.get(index); + } else { + return deviceIdsBuilder_.getMessageOrBuilder(index); + } + } + + /** + * repeated .context.DeviceId device_ids = 3; + */ + public java.util.List getDeviceIdsOrBuilderList() { + if (deviceIdsBuilder_ != null) { + return deviceIdsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(deviceIds_); + } + } + + /** + * repeated .context.DeviceId device_ids = 3; + */ + public context.ContextOuterClass.DeviceId.Builder addDeviceIdsBuilder() { + return getDeviceIdsFieldBuilder().addBuilder(context.ContextOuterClass.DeviceId.getDefaultInstance()); + } + + /** + * repeated .context.DeviceId device_ids = 3; + */ + public context.ContextOuterClass.DeviceId.Builder addDeviceIdsBuilder(int index) { + return getDeviceIdsFieldBuilder().addBuilder(index, context.ContextOuterClass.DeviceId.getDefaultInstance()); + } + + /** + * repeated .context.DeviceId device_ids = 3; + */ + public java.util.List getDeviceIdsBuilderList() { + return getDeviceIdsFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3 getDeviceIdsFieldBuilder() { + if (deviceIdsBuilder_ == null) { + deviceIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3(deviceIds_, ((bitField0_ & 0x00000004) != 0), getParentForChildren(), isClean()); + deviceIds_ = null; + } + return deviceIdsBuilder_; + } + + private java.util.List linkIds_ = java.util.Collections.emptyList(); + + private void ensureLinkIdsIsMutable() { + if (!((bitField0_ & 0x00000008) != 0)) { + linkIds_ = new java.util.ArrayList(linkIds_); + bitField0_ |= 0x00000008; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3 linkIdsBuilder_; + + /** + * repeated .context.LinkId link_ids = 4; + */ + public java.util.List getLinkIdsList() { + if (linkIdsBuilder_ == null) { + return java.util.Collections.unmodifiableList(linkIds_); + } else { + return linkIdsBuilder_.getMessageList(); + } + } + + /** + * repeated .context.LinkId link_ids = 4; + */ + public int getLinkIdsCount() { + if (linkIdsBuilder_ == null) { + return linkIds_.size(); + } else { + return linkIdsBuilder_.getCount(); + } + } + + /** + * repeated .context.LinkId link_ids = 4; + */ + public context.ContextOuterClass.LinkId getLinkIds(int index) { + if (linkIdsBuilder_ == null) { + return linkIds_.get(index); + } else { + return linkIdsBuilder_.getMessage(index); + } + } + + /** + * repeated .context.LinkId link_ids = 4; + */ + public Builder setLinkIds(int index, context.ContextOuterClass.LinkId value) { + if (linkIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureLinkIdsIsMutable(); + linkIds_.set(index, value); + onChanged(); + } else { + linkIdsBuilder_.setMessage(index, value); + } + return this; + } + + /** + * repeated .context.LinkId link_ids = 4; + */ + public Builder setLinkIds(int index, context.ContextOuterClass.LinkId.Builder builderForValue) { + if (linkIdsBuilder_ == null) { + ensureLinkIdsIsMutable(); + linkIds_.set(index, builderForValue.build()); + onChanged(); + } else { + linkIdsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.LinkId link_ids = 4; + */ + public Builder addLinkIds(context.ContextOuterClass.LinkId value) { + if (linkIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureLinkIdsIsMutable(); + linkIds_.add(value); + onChanged(); + } else { + linkIdsBuilder_.addMessage(value); + } + return this; + } + + /** + * repeated .context.LinkId link_ids = 4; + */ + public Builder addLinkIds(int index, context.ContextOuterClass.LinkId value) { + if (linkIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureLinkIdsIsMutable(); + linkIds_.add(index, value); + onChanged(); + } else { + linkIdsBuilder_.addMessage(index, value); + } + return this; + } + + /** + * repeated .context.LinkId link_ids = 4; + */ + public Builder addLinkIds(context.ContextOuterClass.LinkId.Builder builderForValue) { + if (linkIdsBuilder_ == null) { + ensureLinkIdsIsMutable(); + linkIds_.add(builderForValue.build()); + onChanged(); + } else { + linkIdsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * repeated .context.LinkId link_ids = 4; + */ + public Builder addLinkIds(int index, context.ContextOuterClass.LinkId.Builder builderForValue) { + if (linkIdsBuilder_ == null) { + ensureLinkIdsIsMutable(); + linkIds_.add(index, builderForValue.build()); + onChanged(); + } else { + linkIdsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.LinkId link_ids = 4; + */ + public Builder addAllLinkIds(java.lang.Iterable values) { + if (linkIdsBuilder_ == null) { + ensureLinkIdsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, linkIds_); + onChanged(); + } else { + linkIdsBuilder_.addAllMessages(values); + } + return this; + } + + /** + * repeated .context.LinkId link_ids = 4; + */ + public Builder clearLinkIds() { + if (linkIdsBuilder_ == null) { + linkIds_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000008); + onChanged(); + } else { + linkIdsBuilder_.clear(); + } + return this; + } + + /** + * repeated .context.LinkId link_ids = 4; + */ + public Builder removeLinkIds(int index) { + if (linkIdsBuilder_ == null) { + ensureLinkIdsIsMutable(); + linkIds_.remove(index); + onChanged(); + } else { + linkIdsBuilder_.remove(index); + } + return this; + } + + /** + * repeated .context.LinkId link_ids = 4; + */ + public context.ContextOuterClass.LinkId.Builder getLinkIdsBuilder(int index) { + return getLinkIdsFieldBuilder().getBuilder(index); + } + + /** + * repeated .context.LinkId link_ids = 4; + */ + public context.ContextOuterClass.LinkIdOrBuilder getLinkIdsOrBuilder(int index) { + if (linkIdsBuilder_ == null) { + return linkIds_.get(index); + } else { + return linkIdsBuilder_.getMessageOrBuilder(index); + } + } + + /** + * repeated .context.LinkId link_ids = 4; + */ + public java.util.List getLinkIdsOrBuilderList() { + if (linkIdsBuilder_ != null) { + return linkIdsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(linkIds_); + } + } + + /** + * repeated .context.LinkId link_ids = 4; + */ + public context.ContextOuterClass.LinkId.Builder addLinkIdsBuilder() { + return getLinkIdsFieldBuilder().addBuilder(context.ContextOuterClass.LinkId.getDefaultInstance()); + } + + /** + * repeated .context.LinkId link_ids = 4; + */ + public context.ContextOuterClass.LinkId.Builder addLinkIdsBuilder(int index) { + return getLinkIdsFieldBuilder().addBuilder(index, context.ContextOuterClass.LinkId.getDefaultInstance()); + } + + /** + * repeated .context.LinkId link_ids = 4; + */ + public java.util.List getLinkIdsBuilderList() { + return getLinkIdsFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3 getLinkIdsFieldBuilder() { + if (linkIdsBuilder_ == null) { + linkIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3(linkIds_, ((bitField0_ & 0x00000008) != 0), getParentForChildren(), isClean()); + linkIds_ = null; + } + return linkIdsBuilder_; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.Topology) + } + + // @@protoc_insertion_point(class_scope:context.Topology) + private static final context.ContextOuterClass.Topology DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.Topology(); + } + + public static context.ContextOuterClass.Topology getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public Topology parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.Topology getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface TopologyDetailsOrBuilder extends // @@protoc_insertion_point(interface_extends:context.TopologyDetails) + com.google.protobuf.MessageOrBuilder { + + /** + * .context.TopologyId topology_id = 1; + * @return Whether the topologyId field is set. + */ + boolean hasTopologyId(); + + /** + * .context.TopologyId topology_id = 1; + * @return The topologyId. + */ + context.ContextOuterClass.TopologyId getTopologyId(); + + /** + * .context.TopologyId topology_id = 1; + */ + context.ContextOuterClass.TopologyIdOrBuilder getTopologyIdOrBuilder(); + + /** + * string name = 2; + * @return The name. + */ + java.lang.String getName(); + + /** + * string name = 2; + * @return The bytes for name. + */ + com.google.protobuf.ByteString getNameBytes(); + + /** + * repeated .context.Device devices = 3; + */ + java.util.List getDevicesList(); + + /** + * repeated .context.Device devices = 3; + */ + context.ContextOuterClass.Device getDevices(int index); + + /** + * repeated .context.Device devices = 3; + */ + int getDevicesCount(); + + /** + * repeated .context.Device devices = 3; + */ + java.util.List getDevicesOrBuilderList(); + + /** + * repeated .context.Device devices = 3; + */ + context.ContextOuterClass.DeviceOrBuilder getDevicesOrBuilder(int index); + + /** + * repeated .context.Link links = 4; + */ + java.util.List getLinksList(); + + /** + * repeated .context.Link links = 4; + */ + context.ContextOuterClass.Link getLinks(int index); + + /** + * repeated .context.Link links = 4; + */ + int getLinksCount(); + + /** + * repeated .context.Link links = 4; + */ + java.util.List getLinksOrBuilderList(); + + /** + * repeated .context.Link links = 4; + */ + context.ContextOuterClass.LinkOrBuilder getLinksOrBuilder(int index); + } + + /** + * Protobuf type {@code context.TopologyDetails} + */ + public static final class TopologyDetails extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.TopologyDetails) + TopologyDetailsOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use TopologyDetails.newBuilder() to construct. + private TopologyDetails(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private TopologyDetails() { + name_ = ""; + devices_ = java.util.Collections.emptyList(); + links_ = java.util.Collections.emptyList(); + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new TopologyDetails(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_TopologyDetails_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_TopologyDetails_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.TopologyDetails.class, context.ContextOuterClass.TopologyDetails.Builder.class); + } + + public static final int TOPOLOGY_ID_FIELD_NUMBER = 1; + + private context.ContextOuterClass.TopologyId topologyId_; + + /** + * .context.TopologyId topology_id = 1; + * @return Whether the topologyId field is set. + */ + @java.lang.Override + public boolean hasTopologyId() { + return topologyId_ != null; + } + + /** + * .context.TopologyId topology_id = 1; + * @return The topologyId. + */ + @java.lang.Override + public context.ContextOuterClass.TopologyId getTopologyId() { + return topologyId_ == null ? context.ContextOuterClass.TopologyId.getDefaultInstance() : topologyId_; + } + + /** + * .context.TopologyId topology_id = 1; + */ + @java.lang.Override + public context.ContextOuterClass.TopologyIdOrBuilder getTopologyIdOrBuilder() { + return topologyId_ == null ? context.ContextOuterClass.TopologyId.getDefaultInstance() : topologyId_; + } + + public static final int NAME_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object name_ = ""; + + /** + * string name = 2; + * @return The name. + */ + @java.lang.Override + public java.lang.String getName() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + name_ = s; + return s; + } + } + + /** + * string name = 2; + * @return The bytes for name. + */ + @java.lang.Override + public com.google.protobuf.ByteString getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int DEVICES_FIELD_NUMBER = 3; + + @SuppressWarnings("serial") + private java.util.List devices_; + + /** + * repeated .context.Device devices = 3; + */ + @java.lang.Override + public java.util.List getDevicesList() { + return devices_; + } + + /** + * repeated .context.Device devices = 3; + */ + @java.lang.Override + public java.util.List getDevicesOrBuilderList() { + return devices_; + } + + /** + * repeated .context.Device devices = 3; + */ + @java.lang.Override + public int getDevicesCount() { + return devices_.size(); + } + + /** + * repeated .context.Device devices = 3; + */ + @java.lang.Override + public context.ContextOuterClass.Device getDevices(int index) { + return devices_.get(index); + } + + /** + * repeated .context.Device devices = 3; + */ + @java.lang.Override + public context.ContextOuterClass.DeviceOrBuilder getDevicesOrBuilder(int index) { + return devices_.get(index); + } + + public static final int LINKS_FIELD_NUMBER = 4; + + @SuppressWarnings("serial") + private java.util.List links_; + + /** + * repeated .context.Link links = 4; + */ + @java.lang.Override + public java.util.List getLinksList() { + return links_; + } + + /** + * repeated .context.Link links = 4; + */ + @java.lang.Override + public java.util.List getLinksOrBuilderList() { + return links_; + } + + /** + * repeated .context.Link links = 4; + */ + @java.lang.Override + public int getLinksCount() { + return links_.size(); + } + + /** + * repeated .context.Link links = 4; + */ + @java.lang.Override + public context.ContextOuterClass.Link getLinks(int index) { + return links_.get(index); + } + + /** + * repeated .context.Link links = 4; + */ + @java.lang.Override + public context.ContextOuterClass.LinkOrBuilder getLinksOrBuilder(int index) { + return links_.get(index); + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (topologyId_ != null) { + output.writeMessage(1, getTopologyId()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, name_); + } + for (int i = 0; i < devices_.size(); i++) { + output.writeMessage(3, devices_.get(i)); + } + for (int i = 0; i < links_.size(); i++) { + output.writeMessage(4, links_.get(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + if (topologyId_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getTopologyId()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, name_); + } + for (int i = 0; i < devices_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, devices_.get(i)); + } + for (int i = 0; i < links_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, links_.get(i)); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.TopologyDetails)) { + return super.equals(obj); + } + context.ContextOuterClass.TopologyDetails other = (context.ContextOuterClass.TopologyDetails) obj; + if (hasTopologyId() != other.hasTopologyId()) + return false; + if (hasTopologyId()) { + if (!getTopologyId().equals(other.getTopologyId())) + return false; + } + if (!getName().equals(other.getName())) + return false; + if (!getDevicesList().equals(other.getDevicesList())) + return false; + if (!getLinksList().equals(other.getLinksList())) + return false; + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasTopologyId()) { + hash = (37 * hash) + TOPOLOGY_ID_FIELD_NUMBER; + hash = (53 * hash) + getTopologyId().hashCode(); + } + hash = (37 * hash) + NAME_FIELD_NUMBER; + hash = (53 * hash) + getName().hashCode(); + if (getDevicesCount() > 0) { + hash = (37 * hash) + DEVICES_FIELD_NUMBER; + hash = (53 * hash) + getDevicesList().hashCode(); + } + if (getLinksCount() > 0) { + hash = (37 * hash) + LINKS_FIELD_NUMBER; + hash = (53 * hash) + getLinksList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.TopologyDetails parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.TopologyDetails parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.TopologyDetails parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.TopologyDetails parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.TopologyDetails parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.TopologyDetails parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.TopologyDetails parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.TopologyDetails parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.TopologyDetails parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.TopologyDetails parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.TopologyDetails parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.TopologyDetails parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.TopologyDetails prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code context.TopologyDetails} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.TopologyDetails) + context.ContextOuterClass.TopologyDetailsOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_TopologyDetails_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_TopologyDetails_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.TopologyDetails.class, context.ContextOuterClass.TopologyDetails.Builder.class); + } + + // Construct using context.ContextOuterClass.TopologyDetails.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + topologyId_ = null; + if (topologyIdBuilder_ != null) { + topologyIdBuilder_.dispose(); + topologyIdBuilder_ = null; + } + name_ = ""; + if (devicesBuilder_ == null) { + devices_ = java.util.Collections.emptyList(); + } else { + devices_ = null; + devicesBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000004); + if (linksBuilder_ == null) { + links_ = java.util.Collections.emptyList(); + } else { + links_ = null; + linksBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000008); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_TopologyDetails_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.TopologyDetails getDefaultInstanceForType() { + return context.ContextOuterClass.TopologyDetails.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.TopologyDetails build() { + context.ContextOuterClass.TopologyDetails result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.TopologyDetails buildPartial() { + context.ContextOuterClass.TopologyDetails result = new context.ContextOuterClass.TopologyDetails(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(context.ContextOuterClass.TopologyDetails result) { + if (devicesBuilder_ == null) { + if (((bitField0_ & 0x00000004) != 0)) { + devices_ = java.util.Collections.unmodifiableList(devices_); + bitField0_ = (bitField0_ & ~0x00000004); + } + result.devices_ = devices_; + } else { + result.devices_ = devicesBuilder_.build(); + } + if (linksBuilder_ == null) { + if (((bitField0_ & 0x00000008) != 0)) { + links_ = java.util.Collections.unmodifiableList(links_); + bitField0_ = (bitField0_ & ~0x00000008); + } + result.links_ = links_; + } else { + result.links_ = linksBuilder_.build(); + } + } + + private void buildPartial0(context.ContextOuterClass.TopologyDetails result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.topologyId_ = topologyIdBuilder_ == null ? topologyId_ : topologyIdBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.name_ = name_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.TopologyDetails) { + return mergeFrom((context.ContextOuterClass.TopologyDetails) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.TopologyDetails other) { + if (other == context.ContextOuterClass.TopologyDetails.getDefaultInstance()) + return this; + if (other.hasTopologyId()) { + mergeTopologyId(other.getTopologyId()); + } + if (!other.getName().isEmpty()) { + name_ = other.name_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (devicesBuilder_ == null) { + if (!other.devices_.isEmpty()) { + if (devices_.isEmpty()) { + devices_ = other.devices_; + bitField0_ = (bitField0_ & ~0x00000004); + } else { + ensureDevicesIsMutable(); + devices_.addAll(other.devices_); + } + onChanged(); + } + } else { + if (!other.devices_.isEmpty()) { + if (devicesBuilder_.isEmpty()) { + devicesBuilder_.dispose(); + devicesBuilder_ = null; + devices_ = other.devices_; + bitField0_ = (bitField0_ & ~0x00000004); + devicesBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getDevicesFieldBuilder() : null; + } else { + devicesBuilder_.addAllMessages(other.devices_); + } + } + } + if (linksBuilder_ == null) { + if (!other.links_.isEmpty()) { + if (links_.isEmpty()) { + links_ = other.links_; + bitField0_ = (bitField0_ & ~0x00000008); + } else { + ensureLinksIsMutable(); + links_.addAll(other.links_); + } + onChanged(); + } + } else { + if (!other.links_.isEmpty()) { + if (linksBuilder_.isEmpty()) { + linksBuilder_.dispose(); + linksBuilder_ = null; + links_ = other.links_; + bitField0_ = (bitField0_ & ~0x00000008); + linksBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getLinksFieldBuilder() : null; + } else { + linksBuilder_.addAllMessages(other.links_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getTopologyIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + name_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } + // case 18 + case 26: + { + context.ContextOuterClass.Device m = input.readMessage(context.ContextOuterClass.Device.parser(), extensionRegistry); + if (devicesBuilder_ == null) { + ensureDevicesIsMutable(); + devices_.add(m); + } else { + devicesBuilder_.addMessage(m); + } + break; + } + // case 26 + case 34: + { + context.ContextOuterClass.Link m = input.readMessage(context.ContextOuterClass.Link.parser(), extensionRegistry); + if (linksBuilder_ == null) { + ensureLinksIsMutable(); + links_.add(m); + } else { + linksBuilder_.addMessage(m); + } + break; + } + // case 34 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private context.ContextOuterClass.TopologyId topologyId_; + + private com.google.protobuf.SingleFieldBuilderV3 topologyIdBuilder_; + + /** + * .context.TopologyId topology_id = 1; + * @return Whether the topologyId field is set. + */ + public boolean hasTopologyId() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * .context.TopologyId topology_id = 1; + * @return The topologyId. + */ + public context.ContextOuterClass.TopologyId getTopologyId() { + if (topologyIdBuilder_ == null) { + return topologyId_ == null ? context.ContextOuterClass.TopologyId.getDefaultInstance() : topologyId_; + } else { + return topologyIdBuilder_.getMessage(); + } + } + + /** + * .context.TopologyId topology_id = 1; + */ + public Builder setTopologyId(context.ContextOuterClass.TopologyId value) { + if (topologyIdBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + topologyId_ = value; + } else { + topologyIdBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.TopologyId topology_id = 1; + */ + public Builder setTopologyId(context.ContextOuterClass.TopologyId.Builder builderForValue) { + if (topologyIdBuilder_ == null) { + topologyId_ = builderForValue.build(); + } else { + topologyIdBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.TopologyId topology_id = 1; + */ + public Builder mergeTopologyId(context.ContextOuterClass.TopologyId value) { + if (topologyIdBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && topologyId_ != null && topologyId_ != context.ContextOuterClass.TopologyId.getDefaultInstance()) { + getTopologyIdBuilder().mergeFrom(value); + } else { + topologyId_ = value; + } + } else { + topologyIdBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.TopologyId topology_id = 1; + */ + public Builder clearTopologyId() { + bitField0_ = (bitField0_ & ~0x00000001); + topologyId_ = null; + if (topologyIdBuilder_ != null) { + topologyIdBuilder_.dispose(); + topologyIdBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.TopologyId topology_id = 1; + */ + public context.ContextOuterClass.TopologyId.Builder getTopologyIdBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getTopologyIdFieldBuilder().getBuilder(); + } + + /** + * .context.TopologyId topology_id = 1; + */ + public context.ContextOuterClass.TopologyIdOrBuilder getTopologyIdOrBuilder() { + if (topologyIdBuilder_ != null) { + return topologyIdBuilder_.getMessageOrBuilder(); + } else { + return topologyId_ == null ? context.ContextOuterClass.TopologyId.getDefaultInstance() : topologyId_; + } + } + + /** + * .context.TopologyId topology_id = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3 getTopologyIdFieldBuilder() { + if (topologyIdBuilder_ == null) { + topologyIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getTopologyId(), getParentForChildren(), isClean()); + topologyId_ = null; + } + return topologyIdBuilder_; + } + + private java.lang.Object name_ = ""; + + /** + * string name = 2; + * @return The name. + */ + public java.lang.String getName() { + java.lang.Object ref = name_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + name_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * string name = 2; + * @return The bytes for name. + */ + public com.google.protobuf.ByteString getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * string name = 2; + * @param value The name to set. + * @return This builder for chaining. + */ + public Builder setName(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + name_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * string name = 2; + * @return This builder for chaining. + */ + public Builder clearName() { + name_ = getDefaultInstance().getName(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * string name = 2; + * @param value The bytes for name to set. + * @return This builder for chaining. + */ + public Builder setNameBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + name_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private java.util.List devices_ = java.util.Collections.emptyList(); + + private void ensureDevicesIsMutable() { + if (!((bitField0_ & 0x00000004) != 0)) { + devices_ = new java.util.ArrayList(devices_); + bitField0_ |= 0x00000004; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3 devicesBuilder_; + + /** + * repeated .context.Device devices = 3; + */ + public java.util.List getDevicesList() { + if (devicesBuilder_ == null) { + return java.util.Collections.unmodifiableList(devices_); + } else { + return devicesBuilder_.getMessageList(); + } + } + + /** + * repeated .context.Device devices = 3; + */ + public int getDevicesCount() { + if (devicesBuilder_ == null) { + return devices_.size(); + } else { + return devicesBuilder_.getCount(); + } + } + + /** + * repeated .context.Device devices = 3; + */ + public context.ContextOuterClass.Device getDevices(int index) { + if (devicesBuilder_ == null) { + return devices_.get(index); + } else { + return devicesBuilder_.getMessage(index); + } + } + + /** + * repeated .context.Device devices = 3; + */ + public Builder setDevices(int index, context.ContextOuterClass.Device value) { + if (devicesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureDevicesIsMutable(); + devices_.set(index, value); + onChanged(); + } else { + devicesBuilder_.setMessage(index, value); + } + return this; + } + + /** + * repeated .context.Device devices = 3; + */ + public Builder setDevices(int index, context.ContextOuterClass.Device.Builder builderForValue) { + if (devicesBuilder_ == null) { + ensureDevicesIsMutable(); + devices_.set(index, builderForValue.build()); + onChanged(); + } else { + devicesBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.Device devices = 3; + */ + public Builder addDevices(context.ContextOuterClass.Device value) { + if (devicesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureDevicesIsMutable(); + devices_.add(value); + onChanged(); + } else { + devicesBuilder_.addMessage(value); + } + return this; + } + + /** + * repeated .context.Device devices = 3; + */ + public Builder addDevices(int index, context.ContextOuterClass.Device value) { + if (devicesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureDevicesIsMutable(); + devices_.add(index, value); + onChanged(); + } else { + devicesBuilder_.addMessage(index, value); + } + return this; + } + + /** + * repeated .context.Device devices = 3; + */ + public Builder addDevices(context.ContextOuterClass.Device.Builder builderForValue) { + if (devicesBuilder_ == null) { + ensureDevicesIsMutable(); + devices_.add(builderForValue.build()); + onChanged(); + } else { + devicesBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * repeated .context.Device devices = 3; + */ + public Builder addDevices(int index, context.ContextOuterClass.Device.Builder builderForValue) { + if (devicesBuilder_ == null) { + ensureDevicesIsMutable(); + devices_.add(index, builderForValue.build()); + onChanged(); + } else { + devicesBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.Device devices = 3; + */ + public Builder addAllDevices(java.lang.Iterable values) { + if (devicesBuilder_ == null) { + ensureDevicesIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, devices_); + onChanged(); + } else { + devicesBuilder_.addAllMessages(values); + } + return this; + } + + /** + * repeated .context.Device devices = 3; + */ + public Builder clearDevices() { + if (devicesBuilder_ == null) { + devices_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + } else { + devicesBuilder_.clear(); + } + return this; + } + + /** + * repeated .context.Device devices = 3; + */ + public Builder removeDevices(int index) { + if (devicesBuilder_ == null) { + ensureDevicesIsMutable(); + devices_.remove(index); + onChanged(); + } else { + devicesBuilder_.remove(index); + } + return this; + } + + /** + * repeated .context.Device devices = 3; + */ + public context.ContextOuterClass.Device.Builder getDevicesBuilder(int index) { + return getDevicesFieldBuilder().getBuilder(index); + } + + /** + * repeated .context.Device devices = 3; + */ + public context.ContextOuterClass.DeviceOrBuilder getDevicesOrBuilder(int index) { + if (devicesBuilder_ == null) { + return devices_.get(index); + } else { + return devicesBuilder_.getMessageOrBuilder(index); + } + } + + /** + * repeated .context.Device devices = 3; + */ + public java.util.List getDevicesOrBuilderList() { + if (devicesBuilder_ != null) { + return devicesBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(devices_); + } + } + + /** + * repeated .context.Device devices = 3; + */ + public context.ContextOuterClass.Device.Builder addDevicesBuilder() { + return getDevicesFieldBuilder().addBuilder(context.ContextOuterClass.Device.getDefaultInstance()); + } + + /** + * repeated .context.Device devices = 3; + */ + public context.ContextOuterClass.Device.Builder addDevicesBuilder(int index) { + return getDevicesFieldBuilder().addBuilder(index, context.ContextOuterClass.Device.getDefaultInstance()); + } + + /** + * repeated .context.Device devices = 3; + */ + public java.util.List getDevicesBuilderList() { + return getDevicesFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3 getDevicesFieldBuilder() { + if (devicesBuilder_ == null) { + devicesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3(devices_, ((bitField0_ & 0x00000004) != 0), getParentForChildren(), isClean()); + devices_ = null; + } + return devicesBuilder_; + } + + private java.util.List links_ = java.util.Collections.emptyList(); + + private void ensureLinksIsMutable() { + if (!((bitField0_ & 0x00000008) != 0)) { + links_ = new java.util.ArrayList(links_); + bitField0_ |= 0x00000008; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3 linksBuilder_; + + /** + * repeated .context.Link links = 4; + */ + public java.util.List getLinksList() { + if (linksBuilder_ == null) { + return java.util.Collections.unmodifiableList(links_); + } else { + return linksBuilder_.getMessageList(); + } + } + + /** + * repeated .context.Link links = 4; + */ + public int getLinksCount() { + if (linksBuilder_ == null) { + return links_.size(); + } else { + return linksBuilder_.getCount(); + } + } + + /** + * repeated .context.Link links = 4; + */ + public context.ContextOuterClass.Link getLinks(int index) { + if (linksBuilder_ == null) { + return links_.get(index); + } else { + return linksBuilder_.getMessage(index); + } + } + + /** + * repeated .context.Link links = 4; + */ + public Builder setLinks(int index, context.ContextOuterClass.Link value) { + if (linksBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureLinksIsMutable(); + links_.set(index, value); + onChanged(); + } else { + linksBuilder_.setMessage(index, value); + } + return this; + } + + /** + * repeated .context.Link links = 4; + */ + public Builder setLinks(int index, context.ContextOuterClass.Link.Builder builderForValue) { + if (linksBuilder_ == null) { + ensureLinksIsMutable(); + links_.set(index, builderForValue.build()); + onChanged(); + } else { + linksBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.Link links = 4; + */ + public Builder addLinks(context.ContextOuterClass.Link value) { + if (linksBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureLinksIsMutable(); + links_.add(value); + onChanged(); + } else { + linksBuilder_.addMessage(value); + } + return this; + } + + /** + * repeated .context.Link links = 4; + */ + public Builder addLinks(int index, context.ContextOuterClass.Link value) { + if (linksBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureLinksIsMutable(); + links_.add(index, value); + onChanged(); + } else { + linksBuilder_.addMessage(index, value); + } + return this; + } + + /** + * repeated .context.Link links = 4; + */ + public Builder addLinks(context.ContextOuterClass.Link.Builder builderForValue) { + if (linksBuilder_ == null) { + ensureLinksIsMutable(); + links_.add(builderForValue.build()); + onChanged(); + } else { + linksBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * repeated .context.Link links = 4; + */ + public Builder addLinks(int index, context.ContextOuterClass.Link.Builder builderForValue) { + if (linksBuilder_ == null) { + ensureLinksIsMutable(); + links_.add(index, builderForValue.build()); + onChanged(); + } else { + linksBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.Link links = 4; + */ + public Builder addAllLinks(java.lang.Iterable values) { + if (linksBuilder_ == null) { + ensureLinksIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, links_); + onChanged(); + } else { + linksBuilder_.addAllMessages(values); + } + return this; + } + + /** + * repeated .context.Link links = 4; + */ + public Builder clearLinks() { + if (linksBuilder_ == null) { + links_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000008); + onChanged(); + } else { + linksBuilder_.clear(); + } + return this; + } + + /** + * repeated .context.Link links = 4; + */ + public Builder removeLinks(int index) { + if (linksBuilder_ == null) { + ensureLinksIsMutable(); + links_.remove(index); + onChanged(); + } else { + linksBuilder_.remove(index); + } + return this; + } + + /** + * repeated .context.Link links = 4; + */ + public context.ContextOuterClass.Link.Builder getLinksBuilder(int index) { + return getLinksFieldBuilder().getBuilder(index); + } + + /** + * repeated .context.Link links = 4; + */ + public context.ContextOuterClass.LinkOrBuilder getLinksOrBuilder(int index) { + if (linksBuilder_ == null) { + return links_.get(index); + } else { + return linksBuilder_.getMessageOrBuilder(index); + } + } + + /** + * repeated .context.Link links = 4; + */ + public java.util.List getLinksOrBuilderList() { + if (linksBuilder_ != null) { + return linksBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(links_); + } + } + + /** + * repeated .context.Link links = 4; + */ + public context.ContextOuterClass.Link.Builder addLinksBuilder() { + return getLinksFieldBuilder().addBuilder(context.ContextOuterClass.Link.getDefaultInstance()); + } + + /** + * repeated .context.Link links = 4; + */ + public context.ContextOuterClass.Link.Builder addLinksBuilder(int index) { + return getLinksFieldBuilder().addBuilder(index, context.ContextOuterClass.Link.getDefaultInstance()); + } + + /** + * repeated .context.Link links = 4; + */ + public java.util.List getLinksBuilderList() { + return getLinksFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3 getLinksFieldBuilder() { + if (linksBuilder_ == null) { + linksBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3(links_, ((bitField0_ & 0x00000008) != 0), getParentForChildren(), isClean()); + links_ = null; + } + return linksBuilder_; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.TopologyDetails) + } + + // @@protoc_insertion_point(class_scope:context.TopologyDetails) + private static final context.ContextOuterClass.TopologyDetails DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.TopologyDetails(); + } + + public static context.ContextOuterClass.TopologyDetails getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public TopologyDetails parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.TopologyDetails getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface TopologyIdListOrBuilder extends // @@protoc_insertion_point(interface_extends:context.TopologyIdList) + com.google.protobuf.MessageOrBuilder { + + /** + * repeated .context.TopologyId topology_ids = 1; + */ + java.util.List getTopologyIdsList(); + + /** + * repeated .context.TopologyId topology_ids = 1; + */ + context.ContextOuterClass.TopologyId getTopologyIds(int index); + + /** + * repeated .context.TopologyId topology_ids = 1; + */ + int getTopologyIdsCount(); + + /** + * repeated .context.TopologyId topology_ids = 1; + */ + java.util.List getTopologyIdsOrBuilderList(); + + /** + * repeated .context.TopologyId topology_ids = 1; + */ + context.ContextOuterClass.TopologyIdOrBuilder getTopologyIdsOrBuilder(int index); + } + + /** + * Protobuf type {@code context.TopologyIdList} + */ + public static final class TopologyIdList extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.TopologyIdList) + TopologyIdListOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use TopologyIdList.newBuilder() to construct. + private TopologyIdList(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private TopologyIdList() { + topologyIds_ = java.util.Collections.emptyList(); + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new TopologyIdList(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_TopologyIdList_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_TopologyIdList_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.TopologyIdList.class, context.ContextOuterClass.TopologyIdList.Builder.class); + } + + public static final int TOPOLOGY_IDS_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private java.util.List topologyIds_; + + /** + * repeated .context.TopologyId topology_ids = 1; + */ + @java.lang.Override + public java.util.List getTopologyIdsList() { + return topologyIds_; + } + + /** + * repeated .context.TopologyId topology_ids = 1; + */ + @java.lang.Override + public java.util.List getTopologyIdsOrBuilderList() { + return topologyIds_; + } + + /** + * repeated .context.TopologyId topology_ids = 1; + */ + @java.lang.Override + public int getTopologyIdsCount() { + return topologyIds_.size(); + } + + /** + * repeated .context.TopologyId topology_ids = 1; + */ + @java.lang.Override + public context.ContextOuterClass.TopologyId getTopologyIds(int index) { + return topologyIds_.get(index); + } + + /** + * repeated .context.TopologyId topology_ids = 1; + */ + @java.lang.Override + public context.ContextOuterClass.TopologyIdOrBuilder getTopologyIdsOrBuilder(int index) { + return topologyIds_.get(index); + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + for (int i = 0; i < topologyIds_.size(); i++) { + output.writeMessage(1, topologyIds_.get(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + for (int i = 0; i < topologyIds_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, topologyIds_.get(i)); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.TopologyIdList)) { + return super.equals(obj); + } + context.ContextOuterClass.TopologyIdList other = (context.ContextOuterClass.TopologyIdList) obj; + if (!getTopologyIdsList().equals(other.getTopologyIdsList())) + return false; + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getTopologyIdsCount() > 0) { + hash = (37 * hash) + TOPOLOGY_IDS_FIELD_NUMBER; + hash = (53 * hash) + getTopologyIdsList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.TopologyIdList parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.TopologyIdList parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.TopologyIdList parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.TopologyIdList parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.TopologyIdList parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.TopologyIdList parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.TopologyIdList parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.TopologyIdList parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.TopologyIdList parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.TopologyIdList parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.TopologyIdList parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.TopologyIdList parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.TopologyIdList prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code context.TopologyIdList} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.TopologyIdList) + context.ContextOuterClass.TopologyIdListOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_TopologyIdList_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_TopologyIdList_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.TopologyIdList.class, context.ContextOuterClass.TopologyIdList.Builder.class); + } + + // Construct using context.ContextOuterClass.TopologyIdList.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + if (topologyIdsBuilder_ == null) { + topologyIds_ = java.util.Collections.emptyList(); + } else { + topologyIds_ = null; + topologyIdsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_TopologyIdList_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.TopologyIdList getDefaultInstanceForType() { + return context.ContextOuterClass.TopologyIdList.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.TopologyIdList build() { + context.ContextOuterClass.TopologyIdList result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.TopologyIdList buildPartial() { + context.ContextOuterClass.TopologyIdList result = new context.ContextOuterClass.TopologyIdList(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(context.ContextOuterClass.TopologyIdList result) { + if (topologyIdsBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + topologyIds_ = java.util.Collections.unmodifiableList(topologyIds_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.topologyIds_ = topologyIds_; + } else { + result.topologyIds_ = topologyIdsBuilder_.build(); + } + } + + private void buildPartial0(context.ContextOuterClass.TopologyIdList result) { + int from_bitField0_ = bitField0_; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.TopologyIdList) { + return mergeFrom((context.ContextOuterClass.TopologyIdList) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.TopologyIdList other) { + if (other == context.ContextOuterClass.TopologyIdList.getDefaultInstance()) + return this; + if (topologyIdsBuilder_ == null) { + if (!other.topologyIds_.isEmpty()) { + if (topologyIds_.isEmpty()) { + topologyIds_ = other.topologyIds_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureTopologyIdsIsMutable(); + topologyIds_.addAll(other.topologyIds_); + } + onChanged(); + } + } else { + if (!other.topologyIds_.isEmpty()) { + if (topologyIdsBuilder_.isEmpty()) { + topologyIdsBuilder_.dispose(); + topologyIdsBuilder_ = null; + topologyIds_ = other.topologyIds_; + bitField0_ = (bitField0_ & ~0x00000001); + topologyIdsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getTopologyIdsFieldBuilder() : null; + } else { + topologyIdsBuilder_.addAllMessages(other.topologyIds_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + context.ContextOuterClass.TopologyId m = input.readMessage(context.ContextOuterClass.TopologyId.parser(), extensionRegistry); + if (topologyIdsBuilder_ == null) { + ensureTopologyIdsIsMutable(); + topologyIds_.add(m); + } else { + topologyIdsBuilder_.addMessage(m); + } + break; + } + // case 10 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private java.util.List topologyIds_ = java.util.Collections.emptyList(); + + private void ensureTopologyIdsIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + topologyIds_ = new java.util.ArrayList(topologyIds_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3 topologyIdsBuilder_; + + /** + * repeated .context.TopologyId topology_ids = 1; + */ + public java.util.List getTopologyIdsList() { + if (topologyIdsBuilder_ == null) { + return java.util.Collections.unmodifiableList(topologyIds_); + } else { + return topologyIdsBuilder_.getMessageList(); + } + } + + /** + * repeated .context.TopologyId topology_ids = 1; + */ + public int getTopologyIdsCount() { + if (topologyIdsBuilder_ == null) { + return topologyIds_.size(); + } else { + return topologyIdsBuilder_.getCount(); + } + } + + /** + * repeated .context.TopologyId topology_ids = 1; + */ + public context.ContextOuterClass.TopologyId getTopologyIds(int index) { + if (topologyIdsBuilder_ == null) { + return topologyIds_.get(index); + } else { + return topologyIdsBuilder_.getMessage(index); + } + } + + /** + * repeated .context.TopologyId topology_ids = 1; + */ + public Builder setTopologyIds(int index, context.ContextOuterClass.TopologyId value) { + if (topologyIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureTopologyIdsIsMutable(); + topologyIds_.set(index, value); + onChanged(); + } else { + topologyIdsBuilder_.setMessage(index, value); + } + return this; + } + + /** + * repeated .context.TopologyId topology_ids = 1; + */ + public Builder setTopologyIds(int index, context.ContextOuterClass.TopologyId.Builder builderForValue) { + if (topologyIdsBuilder_ == null) { + ensureTopologyIdsIsMutable(); + topologyIds_.set(index, builderForValue.build()); + onChanged(); + } else { + topologyIdsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.TopologyId topology_ids = 1; + */ + public Builder addTopologyIds(context.ContextOuterClass.TopologyId value) { + if (topologyIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureTopologyIdsIsMutable(); + topologyIds_.add(value); + onChanged(); + } else { + topologyIdsBuilder_.addMessage(value); + } + return this; + } + + /** + * repeated .context.TopologyId topology_ids = 1; + */ + public Builder addTopologyIds(int index, context.ContextOuterClass.TopologyId value) { + if (topologyIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureTopologyIdsIsMutable(); + topologyIds_.add(index, value); + onChanged(); + } else { + topologyIdsBuilder_.addMessage(index, value); + } + return this; + } + + /** + * repeated .context.TopologyId topology_ids = 1; + */ + public Builder addTopologyIds(context.ContextOuterClass.TopologyId.Builder builderForValue) { + if (topologyIdsBuilder_ == null) { + ensureTopologyIdsIsMutable(); + topologyIds_.add(builderForValue.build()); + onChanged(); + } else { + topologyIdsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * repeated .context.TopologyId topology_ids = 1; + */ + public Builder addTopologyIds(int index, context.ContextOuterClass.TopologyId.Builder builderForValue) { + if (topologyIdsBuilder_ == null) { + ensureTopologyIdsIsMutable(); + topologyIds_.add(index, builderForValue.build()); + onChanged(); + } else { + topologyIdsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.TopologyId topology_ids = 1; + */ + public Builder addAllTopologyIds(java.lang.Iterable values) { + if (topologyIdsBuilder_ == null) { + ensureTopologyIdsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, topologyIds_); + onChanged(); + } else { + topologyIdsBuilder_.addAllMessages(values); + } + return this; + } + + /** + * repeated .context.TopologyId topology_ids = 1; + */ + public Builder clearTopologyIds() { + if (topologyIdsBuilder_ == null) { + topologyIds_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + topologyIdsBuilder_.clear(); + } + return this; + } + + /** + * repeated .context.TopologyId topology_ids = 1; + */ + public Builder removeTopologyIds(int index) { + if (topologyIdsBuilder_ == null) { + ensureTopologyIdsIsMutable(); + topologyIds_.remove(index); + onChanged(); + } else { + topologyIdsBuilder_.remove(index); + } + return this; + } + + /** + * repeated .context.TopologyId topology_ids = 1; + */ + public context.ContextOuterClass.TopologyId.Builder getTopologyIdsBuilder(int index) { + return getTopologyIdsFieldBuilder().getBuilder(index); + } + + /** + * repeated .context.TopologyId topology_ids = 1; + */ + public context.ContextOuterClass.TopologyIdOrBuilder getTopologyIdsOrBuilder(int index) { + if (topologyIdsBuilder_ == null) { + return topologyIds_.get(index); + } else { + return topologyIdsBuilder_.getMessageOrBuilder(index); + } + } + + /** + * repeated .context.TopologyId topology_ids = 1; + */ + public java.util.List getTopologyIdsOrBuilderList() { + if (topologyIdsBuilder_ != null) { + return topologyIdsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(topologyIds_); + } + } + + /** + * repeated .context.TopologyId topology_ids = 1; + */ + public context.ContextOuterClass.TopologyId.Builder addTopologyIdsBuilder() { + return getTopologyIdsFieldBuilder().addBuilder(context.ContextOuterClass.TopologyId.getDefaultInstance()); + } + + /** + * repeated .context.TopologyId topology_ids = 1; + */ + public context.ContextOuterClass.TopologyId.Builder addTopologyIdsBuilder(int index) { + return getTopologyIdsFieldBuilder().addBuilder(index, context.ContextOuterClass.TopologyId.getDefaultInstance()); + } + + /** + * repeated .context.TopologyId topology_ids = 1; + */ + public java.util.List getTopologyIdsBuilderList() { + return getTopologyIdsFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3 getTopologyIdsFieldBuilder() { + if (topologyIdsBuilder_ == null) { + topologyIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3(topologyIds_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean()); + topologyIds_ = null; + } + return topologyIdsBuilder_; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.TopologyIdList) + } + + // @@protoc_insertion_point(class_scope:context.TopologyIdList) + private static final context.ContextOuterClass.TopologyIdList DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.TopologyIdList(); + } + + public static context.ContextOuterClass.TopologyIdList getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public TopologyIdList parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.TopologyIdList getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface TopologyListOrBuilder extends // @@protoc_insertion_point(interface_extends:context.TopologyList) + com.google.protobuf.MessageOrBuilder { + + /** + * repeated .context.Topology topologies = 1; + */ + java.util.List getTopologiesList(); + + /** + * repeated .context.Topology topologies = 1; + */ + context.ContextOuterClass.Topology getTopologies(int index); + + /** + * repeated .context.Topology topologies = 1; + */ + int getTopologiesCount(); + + /** + * repeated .context.Topology topologies = 1; + */ + java.util.List getTopologiesOrBuilderList(); + + /** + * repeated .context.Topology topologies = 1; + */ + context.ContextOuterClass.TopologyOrBuilder getTopologiesOrBuilder(int index); + } + + /** + * Protobuf type {@code context.TopologyList} + */ + public static final class TopologyList extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.TopologyList) + TopologyListOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use TopologyList.newBuilder() to construct. + private TopologyList(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private TopologyList() { + topologies_ = java.util.Collections.emptyList(); + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new TopologyList(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_TopologyList_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_TopologyList_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.TopologyList.class, context.ContextOuterClass.TopologyList.Builder.class); + } + + public static final int TOPOLOGIES_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private java.util.List topologies_; + + /** + * repeated .context.Topology topologies = 1; + */ + @java.lang.Override + public java.util.List getTopologiesList() { + return topologies_; + } + + /** + * repeated .context.Topology topologies = 1; + */ + @java.lang.Override + public java.util.List getTopologiesOrBuilderList() { + return topologies_; + } + + /** + * repeated .context.Topology topologies = 1; + */ + @java.lang.Override + public int getTopologiesCount() { + return topologies_.size(); + } + + /** + * repeated .context.Topology topologies = 1; + */ + @java.lang.Override + public context.ContextOuterClass.Topology getTopologies(int index) { + return topologies_.get(index); + } + + /** + * repeated .context.Topology topologies = 1; + */ + @java.lang.Override + public context.ContextOuterClass.TopologyOrBuilder getTopologiesOrBuilder(int index) { + return topologies_.get(index); + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + for (int i = 0; i < topologies_.size(); i++) { + output.writeMessage(1, topologies_.get(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + for (int i = 0; i < topologies_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, topologies_.get(i)); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.TopologyList)) { + return super.equals(obj); + } + context.ContextOuterClass.TopologyList other = (context.ContextOuterClass.TopologyList) obj; + if (!getTopologiesList().equals(other.getTopologiesList())) + return false; + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getTopologiesCount() > 0) { + hash = (37 * hash) + TOPOLOGIES_FIELD_NUMBER; + hash = (53 * hash) + getTopologiesList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.TopologyList parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.TopologyList parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.TopologyList parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.TopologyList parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.TopologyList parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.TopologyList parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.TopologyList parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.TopologyList parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.TopologyList parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.TopologyList parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.TopologyList parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.TopologyList parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.TopologyList prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code context.TopologyList} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.TopologyList) + context.ContextOuterClass.TopologyListOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_TopologyList_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_TopologyList_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.TopologyList.class, context.ContextOuterClass.TopologyList.Builder.class); + } + + // Construct using context.ContextOuterClass.TopologyList.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + if (topologiesBuilder_ == null) { + topologies_ = java.util.Collections.emptyList(); + } else { + topologies_ = null; + topologiesBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_TopologyList_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.TopologyList getDefaultInstanceForType() { + return context.ContextOuterClass.TopologyList.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.TopologyList build() { + context.ContextOuterClass.TopologyList result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.TopologyList buildPartial() { + context.ContextOuterClass.TopologyList result = new context.ContextOuterClass.TopologyList(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(context.ContextOuterClass.TopologyList result) { + if (topologiesBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + topologies_ = java.util.Collections.unmodifiableList(topologies_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.topologies_ = topologies_; + } else { + result.topologies_ = topologiesBuilder_.build(); + } + } + + private void buildPartial0(context.ContextOuterClass.TopologyList result) { + int from_bitField0_ = bitField0_; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.TopologyList) { + return mergeFrom((context.ContextOuterClass.TopologyList) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.TopologyList other) { + if (other == context.ContextOuterClass.TopologyList.getDefaultInstance()) + return this; + if (topologiesBuilder_ == null) { + if (!other.topologies_.isEmpty()) { + if (topologies_.isEmpty()) { + topologies_ = other.topologies_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureTopologiesIsMutable(); + topologies_.addAll(other.topologies_); + } + onChanged(); + } + } else { + if (!other.topologies_.isEmpty()) { + if (topologiesBuilder_.isEmpty()) { + topologiesBuilder_.dispose(); + topologiesBuilder_ = null; + topologies_ = other.topologies_; + bitField0_ = (bitField0_ & ~0x00000001); + topologiesBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getTopologiesFieldBuilder() : null; + } else { + topologiesBuilder_.addAllMessages(other.topologies_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + context.ContextOuterClass.Topology m = input.readMessage(context.ContextOuterClass.Topology.parser(), extensionRegistry); + if (topologiesBuilder_ == null) { + ensureTopologiesIsMutable(); + topologies_.add(m); + } else { + topologiesBuilder_.addMessage(m); + } + break; + } + // case 10 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private java.util.List topologies_ = java.util.Collections.emptyList(); + + private void ensureTopologiesIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + topologies_ = new java.util.ArrayList(topologies_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3 topologiesBuilder_; + + /** + * repeated .context.Topology topologies = 1; + */ + public java.util.List getTopologiesList() { + if (topologiesBuilder_ == null) { + return java.util.Collections.unmodifiableList(topologies_); + } else { + return topologiesBuilder_.getMessageList(); + } + } + + /** + * repeated .context.Topology topologies = 1; + */ + public int getTopologiesCount() { + if (topologiesBuilder_ == null) { + return topologies_.size(); + } else { + return topologiesBuilder_.getCount(); + } + } + + /** + * repeated .context.Topology topologies = 1; + */ + public context.ContextOuterClass.Topology getTopologies(int index) { + if (topologiesBuilder_ == null) { + return topologies_.get(index); + } else { + return topologiesBuilder_.getMessage(index); + } + } + + /** + * repeated .context.Topology topologies = 1; + */ + public Builder setTopologies(int index, context.ContextOuterClass.Topology value) { + if (topologiesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureTopologiesIsMutable(); + topologies_.set(index, value); + onChanged(); + } else { + topologiesBuilder_.setMessage(index, value); + } + return this; + } + + /** + * repeated .context.Topology topologies = 1; + */ + public Builder setTopologies(int index, context.ContextOuterClass.Topology.Builder builderForValue) { + if (topologiesBuilder_ == null) { + ensureTopologiesIsMutable(); + topologies_.set(index, builderForValue.build()); + onChanged(); + } else { + topologiesBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.Topology topologies = 1; + */ + public Builder addTopologies(context.ContextOuterClass.Topology value) { + if (topologiesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureTopologiesIsMutable(); + topologies_.add(value); + onChanged(); + } else { + topologiesBuilder_.addMessage(value); + } + return this; + } + + /** + * repeated .context.Topology topologies = 1; + */ + public Builder addTopologies(int index, context.ContextOuterClass.Topology value) { + if (topologiesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureTopologiesIsMutable(); + topologies_.add(index, value); + onChanged(); + } else { + topologiesBuilder_.addMessage(index, value); + } + return this; + } + + /** + * repeated .context.Topology topologies = 1; + */ + public Builder addTopologies(context.ContextOuterClass.Topology.Builder builderForValue) { + if (topologiesBuilder_ == null) { + ensureTopologiesIsMutable(); + topologies_.add(builderForValue.build()); + onChanged(); + } else { + topologiesBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * repeated .context.Topology topologies = 1; + */ + public Builder addTopologies(int index, context.ContextOuterClass.Topology.Builder builderForValue) { + if (topologiesBuilder_ == null) { + ensureTopologiesIsMutable(); + topologies_.add(index, builderForValue.build()); + onChanged(); + } else { + topologiesBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.Topology topologies = 1; + */ + public Builder addAllTopologies(java.lang.Iterable values) { + if (topologiesBuilder_ == null) { + ensureTopologiesIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, topologies_); + onChanged(); + } else { + topologiesBuilder_.addAllMessages(values); + } + return this; + } + + /** + * repeated .context.Topology topologies = 1; + */ + public Builder clearTopologies() { + if (topologiesBuilder_ == null) { + topologies_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + topologiesBuilder_.clear(); + } + return this; + } + + /** + * repeated .context.Topology topologies = 1; + */ + public Builder removeTopologies(int index) { + if (topologiesBuilder_ == null) { + ensureTopologiesIsMutable(); + topologies_.remove(index); + onChanged(); + } else { + topologiesBuilder_.remove(index); + } + return this; + } + + /** + * repeated .context.Topology topologies = 1; + */ + public context.ContextOuterClass.Topology.Builder getTopologiesBuilder(int index) { + return getTopologiesFieldBuilder().getBuilder(index); + } + + /** + * repeated .context.Topology topologies = 1; + */ + public context.ContextOuterClass.TopologyOrBuilder getTopologiesOrBuilder(int index) { + if (topologiesBuilder_ == null) { + return topologies_.get(index); + } else { + return topologiesBuilder_.getMessageOrBuilder(index); + } + } + + /** + * repeated .context.Topology topologies = 1; + */ + public java.util.List getTopologiesOrBuilderList() { + if (topologiesBuilder_ != null) { + return topologiesBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(topologies_); + } + } + + /** + * repeated .context.Topology topologies = 1; + */ + public context.ContextOuterClass.Topology.Builder addTopologiesBuilder() { + return getTopologiesFieldBuilder().addBuilder(context.ContextOuterClass.Topology.getDefaultInstance()); + } + + /** + * repeated .context.Topology topologies = 1; + */ + public context.ContextOuterClass.Topology.Builder addTopologiesBuilder(int index) { + return getTopologiesFieldBuilder().addBuilder(index, context.ContextOuterClass.Topology.getDefaultInstance()); + } + + /** + * repeated .context.Topology topologies = 1; + */ + public java.util.List getTopologiesBuilderList() { + return getTopologiesFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3 getTopologiesFieldBuilder() { + if (topologiesBuilder_ == null) { + topologiesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3(topologies_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean()); + topologies_ = null; + } + return topologiesBuilder_; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.TopologyList) + } + + // @@protoc_insertion_point(class_scope:context.TopologyList) + private static final context.ContextOuterClass.TopologyList DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.TopologyList(); + } + + public static context.ContextOuterClass.TopologyList getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public TopologyList parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.TopologyList getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface TopologyEventOrBuilder extends // @@protoc_insertion_point(interface_extends:context.TopologyEvent) + com.google.protobuf.MessageOrBuilder { + + /** + * .context.Event event = 1; + * @return Whether the event field is set. + */ + boolean hasEvent(); + + /** + * .context.Event event = 1; + * @return The event. + */ + context.ContextOuterClass.Event getEvent(); + + /** + * .context.Event event = 1; + */ + context.ContextOuterClass.EventOrBuilder getEventOrBuilder(); + + /** + * .context.TopologyId topology_id = 2; + * @return Whether the topologyId field is set. + */ + boolean hasTopologyId(); + + /** + * .context.TopologyId topology_id = 2; + * @return The topologyId. + */ + context.ContextOuterClass.TopologyId getTopologyId(); + + /** + * .context.TopologyId topology_id = 2; + */ + context.ContextOuterClass.TopologyIdOrBuilder getTopologyIdOrBuilder(); + } + + /** + * Protobuf type {@code context.TopologyEvent} + */ + public static final class TopologyEvent extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.TopologyEvent) + TopologyEventOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use TopologyEvent.newBuilder() to construct. + private TopologyEvent(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private TopologyEvent() { + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new TopologyEvent(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_TopologyEvent_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_TopologyEvent_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.TopologyEvent.class, context.ContextOuterClass.TopologyEvent.Builder.class); + } + + public static final int EVENT_FIELD_NUMBER = 1; + + private context.ContextOuterClass.Event event_; + + /** + * .context.Event event = 1; + * @return Whether the event field is set. + */ + @java.lang.Override + public boolean hasEvent() { + return event_ != null; + } + + /** + * .context.Event event = 1; + * @return The event. + */ + @java.lang.Override + public context.ContextOuterClass.Event getEvent() { + return event_ == null ? context.ContextOuterClass.Event.getDefaultInstance() : event_; + } + + /** + * .context.Event event = 1; + */ + @java.lang.Override + public context.ContextOuterClass.EventOrBuilder getEventOrBuilder() { + return event_ == null ? context.ContextOuterClass.Event.getDefaultInstance() : event_; + } + + public static final int TOPOLOGY_ID_FIELD_NUMBER = 2; + + private context.ContextOuterClass.TopologyId topologyId_; + + /** + * .context.TopologyId topology_id = 2; + * @return Whether the topologyId field is set. + */ + @java.lang.Override + public boolean hasTopologyId() { + return topologyId_ != null; + } + + /** + * .context.TopologyId topology_id = 2; + * @return The topologyId. + */ + @java.lang.Override + public context.ContextOuterClass.TopologyId getTopologyId() { + return topologyId_ == null ? context.ContextOuterClass.TopologyId.getDefaultInstance() : topologyId_; + } + + /** + * .context.TopologyId topology_id = 2; + */ + @java.lang.Override + public context.ContextOuterClass.TopologyIdOrBuilder getTopologyIdOrBuilder() { + return topologyId_ == null ? context.ContextOuterClass.TopologyId.getDefaultInstance() : topologyId_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (event_ != null) { + output.writeMessage(1, getEvent()); + } + if (topologyId_ != null) { + output.writeMessage(2, getTopologyId()); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + if (event_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getEvent()); + } + if (topologyId_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getTopologyId()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.TopologyEvent)) { + return super.equals(obj); + } + context.ContextOuterClass.TopologyEvent other = (context.ContextOuterClass.TopologyEvent) obj; + if (hasEvent() != other.hasEvent()) + return false; + if (hasEvent()) { + if (!getEvent().equals(other.getEvent())) + return false; + } + if (hasTopologyId() != other.hasTopologyId()) + return false; + if (hasTopologyId()) { + if (!getTopologyId().equals(other.getTopologyId())) + return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasEvent()) { + hash = (37 * hash) + EVENT_FIELD_NUMBER; + hash = (53 * hash) + getEvent().hashCode(); + } + if (hasTopologyId()) { + hash = (37 * hash) + TOPOLOGY_ID_FIELD_NUMBER; + hash = (53 * hash) + getTopologyId().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.TopologyEvent parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.TopologyEvent parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.TopologyEvent parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.TopologyEvent parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.TopologyEvent parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.TopologyEvent parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.TopologyEvent parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.TopologyEvent parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.TopologyEvent parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.TopologyEvent parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.TopologyEvent parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.TopologyEvent parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.TopologyEvent prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code context.TopologyEvent} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.TopologyEvent) + context.ContextOuterClass.TopologyEventOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_TopologyEvent_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_TopologyEvent_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.TopologyEvent.class, context.ContextOuterClass.TopologyEvent.Builder.class); + } + + // Construct using context.ContextOuterClass.TopologyEvent.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + event_ = null; + if (eventBuilder_ != null) { + eventBuilder_.dispose(); + eventBuilder_ = null; + } + topologyId_ = null; + if (topologyIdBuilder_ != null) { + topologyIdBuilder_.dispose(); + topologyIdBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_TopologyEvent_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.TopologyEvent getDefaultInstanceForType() { + return context.ContextOuterClass.TopologyEvent.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.TopologyEvent build() { + context.ContextOuterClass.TopologyEvent result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.TopologyEvent buildPartial() { + context.ContextOuterClass.TopologyEvent result = new context.ContextOuterClass.TopologyEvent(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(context.ContextOuterClass.TopologyEvent result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.event_ = eventBuilder_ == null ? event_ : eventBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.topologyId_ = topologyIdBuilder_ == null ? topologyId_ : topologyIdBuilder_.build(); + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.TopologyEvent) { + return mergeFrom((context.ContextOuterClass.TopologyEvent) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.TopologyEvent other) { + if (other == context.ContextOuterClass.TopologyEvent.getDefaultInstance()) + return this; + if (other.hasEvent()) { + mergeEvent(other.getEvent()); + } + if (other.hasTopologyId()) { + mergeTopologyId(other.getTopologyId()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getEventFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + input.readMessage(getTopologyIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000002; + break; + } + // case 18 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private context.ContextOuterClass.Event event_; + + private com.google.protobuf.SingleFieldBuilderV3 eventBuilder_; + + /** + * .context.Event event = 1; + * @return Whether the event field is set. + */ + public boolean hasEvent() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * .context.Event event = 1; + * @return The event. + */ + public context.ContextOuterClass.Event getEvent() { + if (eventBuilder_ == null) { + return event_ == null ? context.ContextOuterClass.Event.getDefaultInstance() : event_; + } else { + return eventBuilder_.getMessage(); + } + } + + /** + * .context.Event event = 1; + */ + public Builder setEvent(context.ContextOuterClass.Event value) { + if (eventBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + event_ = value; + } else { + eventBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.Event event = 1; + */ + public Builder setEvent(context.ContextOuterClass.Event.Builder builderForValue) { + if (eventBuilder_ == null) { + event_ = builderForValue.build(); + } else { + eventBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.Event event = 1; + */ + public Builder mergeEvent(context.ContextOuterClass.Event value) { + if (eventBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && event_ != null && event_ != context.ContextOuterClass.Event.getDefaultInstance()) { + getEventBuilder().mergeFrom(value); + } else { + event_ = value; + } + } else { + eventBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.Event event = 1; + */ + public Builder clearEvent() { + bitField0_ = (bitField0_ & ~0x00000001); + event_ = null; + if (eventBuilder_ != null) { + eventBuilder_.dispose(); + eventBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.Event event = 1; + */ + public context.ContextOuterClass.Event.Builder getEventBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getEventFieldBuilder().getBuilder(); + } + + /** + * .context.Event event = 1; + */ + public context.ContextOuterClass.EventOrBuilder getEventOrBuilder() { + if (eventBuilder_ != null) { + return eventBuilder_.getMessageOrBuilder(); + } else { + return event_ == null ? context.ContextOuterClass.Event.getDefaultInstance() : event_; + } + } + + /** + * .context.Event event = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3 getEventFieldBuilder() { + if (eventBuilder_ == null) { + eventBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getEvent(), getParentForChildren(), isClean()); + event_ = null; + } + return eventBuilder_; + } + + private context.ContextOuterClass.TopologyId topologyId_; + + private com.google.protobuf.SingleFieldBuilderV3 topologyIdBuilder_; + + /** + * .context.TopologyId topology_id = 2; + * @return Whether the topologyId field is set. + */ + public boolean hasTopologyId() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * .context.TopologyId topology_id = 2; + * @return The topologyId. + */ + public context.ContextOuterClass.TopologyId getTopologyId() { + if (topologyIdBuilder_ == null) { + return topologyId_ == null ? context.ContextOuterClass.TopologyId.getDefaultInstance() : topologyId_; + } else { + return topologyIdBuilder_.getMessage(); + } + } + + /** + * .context.TopologyId topology_id = 2; + */ + public Builder setTopologyId(context.ContextOuterClass.TopologyId value) { + if (topologyIdBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + topologyId_ = value; + } else { + topologyIdBuilder_.setMessage(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * .context.TopologyId topology_id = 2; + */ + public Builder setTopologyId(context.ContextOuterClass.TopologyId.Builder builderForValue) { + if (topologyIdBuilder_ == null) { + topologyId_ = builderForValue.build(); + } else { + topologyIdBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * .context.TopologyId topology_id = 2; + */ + public Builder mergeTopologyId(context.ContextOuterClass.TopologyId value) { + if (topologyIdBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0) && topologyId_ != null && topologyId_ != context.ContextOuterClass.TopologyId.getDefaultInstance()) { + getTopologyIdBuilder().mergeFrom(value); + } else { + topologyId_ = value; + } + } else { + topologyIdBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * .context.TopologyId topology_id = 2; + */ + public Builder clearTopologyId() { + bitField0_ = (bitField0_ & ~0x00000002); + topologyId_ = null; + if (topologyIdBuilder_ != null) { + topologyIdBuilder_.dispose(); + topologyIdBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.TopologyId topology_id = 2; + */ + public context.ContextOuterClass.TopologyId.Builder getTopologyIdBuilder() { + bitField0_ |= 0x00000002; + onChanged(); + return getTopologyIdFieldBuilder().getBuilder(); + } + + /** + * .context.TopologyId topology_id = 2; + */ + public context.ContextOuterClass.TopologyIdOrBuilder getTopologyIdOrBuilder() { + if (topologyIdBuilder_ != null) { + return topologyIdBuilder_.getMessageOrBuilder(); + } else { + return topologyId_ == null ? context.ContextOuterClass.TopologyId.getDefaultInstance() : topologyId_; + } + } + + /** + * .context.TopologyId topology_id = 2; + */ + private com.google.protobuf.SingleFieldBuilderV3 getTopologyIdFieldBuilder() { + if (topologyIdBuilder_ == null) { + topologyIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getTopologyId(), getParentForChildren(), isClean()); + topologyId_ = null; + } + return topologyIdBuilder_; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.TopologyEvent) + } + + // @@protoc_insertion_point(class_scope:context.TopologyEvent) + private static final context.ContextOuterClass.TopologyEvent DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.TopologyEvent(); + } + + public static context.ContextOuterClass.TopologyEvent getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public TopologyEvent parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.TopologyEvent getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface DeviceIdOrBuilder extends // @@protoc_insertion_point(interface_extends:context.DeviceId) + com.google.protobuf.MessageOrBuilder { + + /** + * .context.Uuid device_uuid = 1; + * @return Whether the deviceUuid field is set. + */ + boolean hasDeviceUuid(); + + /** + * .context.Uuid device_uuid = 1; + * @return The deviceUuid. + */ + context.ContextOuterClass.Uuid getDeviceUuid(); + + /** + * .context.Uuid device_uuid = 1; + */ + context.ContextOuterClass.UuidOrBuilder getDeviceUuidOrBuilder(); + } + + /** + *
+     * ----- Device --------------------------------------------------------------------------------------------------------
+     * 
+ * + * Protobuf type {@code context.DeviceId} + */ + public static final class DeviceId extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.DeviceId) + DeviceIdOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use DeviceId.newBuilder() to construct. + private DeviceId(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private DeviceId() { + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new DeviceId(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_DeviceId_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_DeviceId_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.DeviceId.class, context.ContextOuterClass.DeviceId.Builder.class); + } + + public static final int DEVICE_UUID_FIELD_NUMBER = 1; + + private context.ContextOuterClass.Uuid deviceUuid_; + + /** + * .context.Uuid device_uuid = 1; + * @return Whether the deviceUuid field is set. + */ + @java.lang.Override + public boolean hasDeviceUuid() { + return deviceUuid_ != null; + } + + /** + * .context.Uuid device_uuid = 1; + * @return The deviceUuid. + */ + @java.lang.Override + public context.ContextOuterClass.Uuid getDeviceUuid() { + return deviceUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : deviceUuid_; + } + + /** + * .context.Uuid device_uuid = 1; + */ + @java.lang.Override + public context.ContextOuterClass.UuidOrBuilder getDeviceUuidOrBuilder() { + return deviceUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : deviceUuid_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (deviceUuid_ != null) { + output.writeMessage(1, getDeviceUuid()); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + if (deviceUuid_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getDeviceUuid()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.DeviceId)) { + return super.equals(obj); + } + context.ContextOuterClass.DeviceId other = (context.ContextOuterClass.DeviceId) obj; + if (hasDeviceUuid() != other.hasDeviceUuid()) + return false; + if (hasDeviceUuid()) { + if (!getDeviceUuid().equals(other.getDeviceUuid())) + return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasDeviceUuid()) { + hash = (37 * hash) + DEVICE_UUID_FIELD_NUMBER; + hash = (53 * hash) + getDeviceUuid().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.DeviceId parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.DeviceId parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.DeviceId parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.DeviceId parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.DeviceId parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.DeviceId parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.DeviceId parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.DeviceId parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.DeviceId parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.DeviceId parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.DeviceId parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.DeviceId parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.DeviceId prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + *
+         * ----- Device --------------------------------------------------------------------------------------------------------
+         * 
+ * + * Protobuf type {@code context.DeviceId} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.DeviceId) + context.ContextOuterClass.DeviceIdOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_DeviceId_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_DeviceId_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.DeviceId.class, context.ContextOuterClass.DeviceId.Builder.class); + } + + // Construct using context.ContextOuterClass.DeviceId.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + deviceUuid_ = null; + if (deviceUuidBuilder_ != null) { + deviceUuidBuilder_.dispose(); + deviceUuidBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_DeviceId_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.DeviceId getDefaultInstanceForType() { + return context.ContextOuterClass.DeviceId.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.DeviceId build() { + context.ContextOuterClass.DeviceId result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.DeviceId buildPartial() { + context.ContextOuterClass.DeviceId result = new context.ContextOuterClass.DeviceId(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(context.ContextOuterClass.DeviceId result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.deviceUuid_ = deviceUuidBuilder_ == null ? deviceUuid_ : deviceUuidBuilder_.build(); + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.DeviceId) { + return mergeFrom((context.ContextOuterClass.DeviceId) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.DeviceId other) { + if (other == context.ContextOuterClass.DeviceId.getDefaultInstance()) + return this; + if (other.hasDeviceUuid()) { + mergeDeviceUuid(other.getDeviceUuid()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getDeviceUuidFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private context.ContextOuterClass.Uuid deviceUuid_; + + private com.google.protobuf.SingleFieldBuilderV3 deviceUuidBuilder_; + + /** + * .context.Uuid device_uuid = 1; + * @return Whether the deviceUuid field is set. + */ + public boolean hasDeviceUuid() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * .context.Uuid device_uuid = 1; + * @return The deviceUuid. + */ + public context.ContextOuterClass.Uuid getDeviceUuid() { + if (deviceUuidBuilder_ == null) { + return deviceUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : deviceUuid_; + } else { + return deviceUuidBuilder_.getMessage(); + } + } + + /** + * .context.Uuid device_uuid = 1; + */ + public Builder setDeviceUuid(context.ContextOuterClass.Uuid value) { + if (deviceUuidBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + deviceUuid_ = value; + } else { + deviceUuidBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.Uuid device_uuid = 1; + */ + public Builder setDeviceUuid(context.ContextOuterClass.Uuid.Builder builderForValue) { + if (deviceUuidBuilder_ == null) { + deviceUuid_ = builderForValue.build(); + } else { + deviceUuidBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.Uuid device_uuid = 1; + */ + public Builder mergeDeviceUuid(context.ContextOuterClass.Uuid value) { + if (deviceUuidBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && deviceUuid_ != null && deviceUuid_ != context.ContextOuterClass.Uuid.getDefaultInstance()) { + getDeviceUuidBuilder().mergeFrom(value); + } else { + deviceUuid_ = value; + } + } else { + deviceUuidBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.Uuid device_uuid = 1; + */ + public Builder clearDeviceUuid() { + bitField0_ = (bitField0_ & ~0x00000001); + deviceUuid_ = null; + if (deviceUuidBuilder_ != null) { + deviceUuidBuilder_.dispose(); + deviceUuidBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.Uuid device_uuid = 1; + */ + public context.ContextOuterClass.Uuid.Builder getDeviceUuidBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getDeviceUuidFieldBuilder().getBuilder(); + } + + /** + * .context.Uuid device_uuid = 1; + */ + public context.ContextOuterClass.UuidOrBuilder getDeviceUuidOrBuilder() { + if (deviceUuidBuilder_ != null) { + return deviceUuidBuilder_.getMessageOrBuilder(); + } else { + return deviceUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : deviceUuid_; + } + } + + /** + * .context.Uuid device_uuid = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3 getDeviceUuidFieldBuilder() { + if (deviceUuidBuilder_ == null) { + deviceUuidBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getDeviceUuid(), getParentForChildren(), isClean()); + deviceUuid_ = null; + } + return deviceUuidBuilder_; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.DeviceId) + } + + // @@protoc_insertion_point(class_scope:context.DeviceId) + private static final context.ContextOuterClass.DeviceId DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.DeviceId(); + } + + public static context.ContextOuterClass.DeviceId getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public DeviceId parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.DeviceId getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface DeviceOrBuilder extends // @@protoc_insertion_point(interface_extends:context.Device) + com.google.protobuf.MessageOrBuilder { + + /** + * .context.DeviceId device_id = 1; + * @return Whether the deviceId field is set. + */ + boolean hasDeviceId(); + + /** + * .context.DeviceId device_id = 1; + * @return The deviceId. + */ + context.ContextOuterClass.DeviceId getDeviceId(); + + /** + * .context.DeviceId device_id = 1; + */ + context.ContextOuterClass.DeviceIdOrBuilder getDeviceIdOrBuilder(); + + /** + * string name = 2; + * @return The name. + */ + java.lang.String getName(); + + /** + * string name = 2; + * @return The bytes for name. + */ + com.google.protobuf.ByteString getNameBytes(); + + /** + * string device_type = 3; + * @return The deviceType. + */ + java.lang.String getDeviceType(); + + /** + * string device_type = 3; + * @return The bytes for deviceType. + */ + com.google.protobuf.ByteString getDeviceTypeBytes(); + + /** + * .context.DeviceConfig device_config = 4; + * @return Whether the deviceConfig field is set. + */ + boolean hasDeviceConfig(); + + /** + * .context.DeviceConfig device_config = 4; + * @return The deviceConfig. + */ + context.ContextOuterClass.DeviceConfig getDeviceConfig(); + + /** + * .context.DeviceConfig device_config = 4; + */ + context.ContextOuterClass.DeviceConfigOrBuilder getDeviceConfigOrBuilder(); + + /** + * .context.DeviceOperationalStatusEnum device_operational_status = 5; + * @return The enum numeric value on the wire for deviceOperationalStatus. + */ + int getDeviceOperationalStatusValue(); + + /** + * .context.DeviceOperationalStatusEnum device_operational_status = 5; + * @return The deviceOperationalStatus. + */ + context.ContextOuterClass.DeviceOperationalStatusEnum getDeviceOperationalStatus(); + + /** + * repeated .context.DeviceDriverEnum device_drivers = 6; + * @return A list containing the deviceDrivers. + */ + java.util.List getDeviceDriversList(); + + /** + * repeated .context.DeviceDriverEnum device_drivers = 6; + * @return The count of deviceDrivers. + */ + int getDeviceDriversCount(); + + /** + * repeated .context.DeviceDriverEnum device_drivers = 6; + * @param index The index of the element to return. + * @return The deviceDrivers at the given index. + */ + context.ContextOuterClass.DeviceDriverEnum getDeviceDrivers(int index); + + /** + * repeated .context.DeviceDriverEnum device_drivers = 6; + * @return A list containing the enum numeric values on the wire for deviceDrivers. + */ + java.util.List getDeviceDriversValueList(); + + /** + * repeated .context.DeviceDriverEnum device_drivers = 6; + * @param index The index of the value to return. + * @return The enum numeric value on the wire of deviceDrivers at the given index. + */ + int getDeviceDriversValue(int index); + + /** + * repeated .context.EndPoint device_endpoints = 7; + */ + java.util.List getDeviceEndpointsList(); + + /** + * repeated .context.EndPoint device_endpoints = 7; + */ + context.ContextOuterClass.EndPoint getDeviceEndpoints(int index); + + /** + * repeated .context.EndPoint device_endpoints = 7; + */ + int getDeviceEndpointsCount(); + + /** + * repeated .context.EndPoint device_endpoints = 7; + */ + java.util.List getDeviceEndpointsOrBuilderList(); + + /** + * repeated .context.EndPoint device_endpoints = 7; + */ + context.ContextOuterClass.EndPointOrBuilder getDeviceEndpointsOrBuilder(int index); + + /** + *
+         * Used for inventory
+         * 
+ * + * repeated .context.Component components = 8; + */ + java.util.List getComponentsList(); + + /** + *
+         * Used for inventory
+         * 
+ * + * repeated .context.Component components = 8; + */ + context.ContextOuterClass.Component getComponents(int index); + + /** + *
+         * Used for inventory
+         * 
+ * + * repeated .context.Component components = 8; + */ + int getComponentsCount(); + + /** + *
+         * Used for inventory
+         * 
+ * + * repeated .context.Component components = 8; + */ + java.util.List getComponentsOrBuilderList(); + + /** + *
+         * Used for inventory
+         * 
+ * + * repeated .context.Component components = 8; + */ + context.ContextOuterClass.ComponentOrBuilder getComponentsOrBuilder(int index); + + /** + *
+         * Identifier of node controlling the actual device
+         * 
+ * + * .context.DeviceId controller_id = 9; + * @return Whether the controllerId field is set. + */ + boolean hasControllerId(); + + /** + *
+         * Identifier of node controlling the actual device
+         * 
+ * + * .context.DeviceId controller_id = 9; + * @return The controllerId. + */ + context.ContextOuterClass.DeviceId getControllerId(); + + /** + *
+         * Identifier of node controlling the actual device
+         * 
+ * + * .context.DeviceId controller_id = 9; + */ + context.ContextOuterClass.DeviceIdOrBuilder getControllerIdOrBuilder(); + } + + /** + * Protobuf type {@code context.Device} + */ + public static final class Device extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.Device) + DeviceOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use Device.newBuilder() to construct. + private Device(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private Device() { + name_ = ""; + deviceType_ = ""; + deviceOperationalStatus_ = 0; + deviceDrivers_ = java.util.Collections.emptyList(); + deviceEndpoints_ = java.util.Collections.emptyList(); + components_ = java.util.Collections.emptyList(); + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new Device(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_Device_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_Device_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.Device.class, context.ContextOuterClass.Device.Builder.class); + } + + public static final int DEVICE_ID_FIELD_NUMBER = 1; + + private context.ContextOuterClass.DeviceId deviceId_; + + /** + * .context.DeviceId device_id = 1; + * @return Whether the deviceId field is set. + */ + @java.lang.Override + public boolean hasDeviceId() { + return deviceId_ != null; + } + + /** + * .context.DeviceId device_id = 1; + * @return The deviceId. + */ + @java.lang.Override + public context.ContextOuterClass.DeviceId getDeviceId() { + return deviceId_ == null ? context.ContextOuterClass.DeviceId.getDefaultInstance() : deviceId_; + } + + /** + * .context.DeviceId device_id = 1; + */ + @java.lang.Override + public context.ContextOuterClass.DeviceIdOrBuilder getDeviceIdOrBuilder() { + return deviceId_ == null ? context.ContextOuterClass.DeviceId.getDefaultInstance() : deviceId_; + } + + public static final int NAME_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object name_ = ""; + + /** + * string name = 2; + * @return The name. + */ + @java.lang.Override + public java.lang.String getName() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + name_ = s; + return s; + } + } + + /** + * string name = 2; + * @return The bytes for name. + */ + @java.lang.Override + public com.google.protobuf.ByteString getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int DEVICE_TYPE_FIELD_NUMBER = 3; + + @SuppressWarnings("serial") + private volatile java.lang.Object deviceType_ = ""; + + /** + * string device_type = 3; + * @return The deviceType. + */ + @java.lang.Override + public java.lang.String getDeviceType() { + java.lang.Object ref = deviceType_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + deviceType_ = s; + return s; + } + } + + /** + * string device_type = 3; + * @return The bytes for deviceType. + */ + @java.lang.Override + public com.google.protobuf.ByteString getDeviceTypeBytes() { + java.lang.Object ref = deviceType_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + deviceType_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int DEVICE_CONFIG_FIELD_NUMBER = 4; + + private context.ContextOuterClass.DeviceConfig deviceConfig_; + + /** + * .context.DeviceConfig device_config = 4; + * @return Whether the deviceConfig field is set. + */ + @java.lang.Override + public boolean hasDeviceConfig() { + return deviceConfig_ != null; + } + + /** + * .context.DeviceConfig device_config = 4; + * @return The deviceConfig. + */ + @java.lang.Override + public context.ContextOuterClass.DeviceConfig getDeviceConfig() { + return deviceConfig_ == null ? context.ContextOuterClass.DeviceConfig.getDefaultInstance() : deviceConfig_; + } + + /** + * .context.DeviceConfig device_config = 4; + */ + @java.lang.Override + public context.ContextOuterClass.DeviceConfigOrBuilder getDeviceConfigOrBuilder() { + return deviceConfig_ == null ? context.ContextOuterClass.DeviceConfig.getDefaultInstance() : deviceConfig_; + } + + public static final int DEVICE_OPERATIONAL_STATUS_FIELD_NUMBER = 5; + + private int deviceOperationalStatus_ = 0; + + /** + * .context.DeviceOperationalStatusEnum device_operational_status = 5; + * @return The enum numeric value on the wire for deviceOperationalStatus. + */ + @java.lang.Override + public int getDeviceOperationalStatusValue() { + return deviceOperationalStatus_; + } + + /** + * .context.DeviceOperationalStatusEnum device_operational_status = 5; + * @return The deviceOperationalStatus. + */ + @java.lang.Override + public context.ContextOuterClass.DeviceOperationalStatusEnum getDeviceOperationalStatus() { + context.ContextOuterClass.DeviceOperationalStatusEnum result = context.ContextOuterClass.DeviceOperationalStatusEnum.forNumber(deviceOperationalStatus_); + return result == null ? context.ContextOuterClass.DeviceOperationalStatusEnum.UNRECOGNIZED : result; + } + + public static final int DEVICE_DRIVERS_FIELD_NUMBER = 6; + + @SuppressWarnings("serial") + private java.util.List deviceDrivers_; + + private static final com.google.protobuf.Internal.ListAdapter.Converter deviceDrivers_converter_ = new com.google.protobuf.Internal.ListAdapter.Converter() { + + public context.ContextOuterClass.DeviceDriverEnum convert(java.lang.Integer from) { + context.ContextOuterClass.DeviceDriverEnum result = context.ContextOuterClass.DeviceDriverEnum.forNumber(from); + return result == null ? context.ContextOuterClass.DeviceDriverEnum.UNRECOGNIZED : result; + } + }; + + /** + * repeated .context.DeviceDriverEnum device_drivers = 6; + * @return A list containing the deviceDrivers. + */ + @java.lang.Override + public java.util.List getDeviceDriversList() { + return new com.google.protobuf.Internal.ListAdapter(deviceDrivers_, deviceDrivers_converter_); + } + + /** + * repeated .context.DeviceDriverEnum device_drivers = 6; + * @return The count of deviceDrivers. + */ + @java.lang.Override + public int getDeviceDriversCount() { + return deviceDrivers_.size(); + } + + /** + * repeated .context.DeviceDriverEnum device_drivers = 6; + * @param index The index of the element to return. + * @return The deviceDrivers at the given index. + */ + @java.lang.Override + public context.ContextOuterClass.DeviceDriverEnum getDeviceDrivers(int index) { + return deviceDrivers_converter_.convert(deviceDrivers_.get(index)); + } + + /** + * repeated .context.DeviceDriverEnum device_drivers = 6; + * @return A list containing the enum numeric values on the wire for deviceDrivers. + */ + @java.lang.Override + public java.util.List getDeviceDriversValueList() { + return deviceDrivers_; + } + + /** + * repeated .context.DeviceDriverEnum device_drivers = 6; + * @param index The index of the value to return. + * @return The enum numeric value on the wire of deviceDrivers at the given index. + */ + @java.lang.Override + public int getDeviceDriversValue(int index) { + return deviceDrivers_.get(index); + } + + private int deviceDriversMemoizedSerializedSize; + + public static final int DEVICE_ENDPOINTS_FIELD_NUMBER = 7; + + @SuppressWarnings("serial") + private java.util.List deviceEndpoints_; + + /** + * repeated .context.EndPoint device_endpoints = 7; + */ + @java.lang.Override + public java.util.List getDeviceEndpointsList() { + return deviceEndpoints_; + } + + /** + * repeated .context.EndPoint device_endpoints = 7; + */ + @java.lang.Override + public java.util.List getDeviceEndpointsOrBuilderList() { + return deviceEndpoints_; + } + + /** + * repeated .context.EndPoint device_endpoints = 7; + */ + @java.lang.Override + public int getDeviceEndpointsCount() { + return deviceEndpoints_.size(); + } + + /** + * repeated .context.EndPoint device_endpoints = 7; + */ + @java.lang.Override + public context.ContextOuterClass.EndPoint getDeviceEndpoints(int index) { + return deviceEndpoints_.get(index); + } + + /** + * repeated .context.EndPoint device_endpoints = 7; + */ + @java.lang.Override + public context.ContextOuterClass.EndPointOrBuilder getDeviceEndpointsOrBuilder(int index) { + return deviceEndpoints_.get(index); + } + + public static final int COMPONENTS_FIELD_NUMBER = 8; + + @SuppressWarnings("serial") + private java.util.List components_; + + /** + *
+         * Used for inventory
+         * 
+ * + * repeated .context.Component components = 8; + */ + @java.lang.Override + public java.util.List getComponentsList() { + return components_; + } + + /** + *
+         * Used for inventory
+         * 
+ * + * repeated .context.Component components = 8; + */ + @java.lang.Override + public java.util.List getComponentsOrBuilderList() { + return components_; + } + + /** + *
+         * Used for inventory
+         * 
+ * + * repeated .context.Component components = 8; + */ + @java.lang.Override + public int getComponentsCount() { + return components_.size(); + } + + /** + *
+         * Used for inventory
+         * 
+ * + * repeated .context.Component components = 8; + */ + @java.lang.Override + public context.ContextOuterClass.Component getComponents(int index) { + return components_.get(index); + } + + /** + *
+         * Used for inventory
+         * 
+ * + * repeated .context.Component components = 8; + */ + @java.lang.Override + public context.ContextOuterClass.ComponentOrBuilder getComponentsOrBuilder(int index) { + return components_.get(index); + } + + public static final int CONTROLLER_ID_FIELD_NUMBER = 9; + + private context.ContextOuterClass.DeviceId controllerId_; + + /** + *
+         * Identifier of node controlling the actual device
+         * 
+ * + * .context.DeviceId controller_id = 9; + * @return Whether the controllerId field is set. + */ + @java.lang.Override + public boolean hasControllerId() { + return controllerId_ != null; + } + + /** + *
+         * Identifier of node controlling the actual device
+         * 
+ * + * .context.DeviceId controller_id = 9; + * @return The controllerId. + */ + @java.lang.Override + public context.ContextOuterClass.DeviceId getControllerId() { + return controllerId_ == null ? context.ContextOuterClass.DeviceId.getDefaultInstance() : controllerId_; + } + + /** + *
+         * Identifier of node controlling the actual device
+         * 
+ * + * .context.DeviceId controller_id = 9; + */ + @java.lang.Override + public context.ContextOuterClass.DeviceIdOrBuilder getControllerIdOrBuilder() { + return controllerId_ == null ? context.ContextOuterClass.DeviceId.getDefaultInstance() : controllerId_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + getSerializedSize(); + if (deviceId_ != null) { + output.writeMessage(1, getDeviceId()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, name_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(deviceType_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, deviceType_); + } + if (deviceConfig_ != null) { + output.writeMessage(4, getDeviceConfig()); + } + if (deviceOperationalStatus_ != context.ContextOuterClass.DeviceOperationalStatusEnum.DEVICEOPERATIONALSTATUS_UNDEFINED.getNumber()) { + output.writeEnum(5, deviceOperationalStatus_); + } + if (getDeviceDriversList().size() > 0) { + output.writeUInt32NoTag(50); + output.writeUInt32NoTag(deviceDriversMemoizedSerializedSize); + } + for (int i = 0; i < deviceDrivers_.size(); i++) { + output.writeEnumNoTag(deviceDrivers_.get(i)); + } + for (int i = 0; i < deviceEndpoints_.size(); i++) { + output.writeMessage(7, deviceEndpoints_.get(i)); + } + for (int i = 0; i < components_.size(); i++) { + output.writeMessage(8, components_.get(i)); + } + if (controllerId_ != null) { + output.writeMessage(9, getControllerId()); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + if (deviceId_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getDeviceId()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, name_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(deviceType_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, deviceType_); + } + if (deviceConfig_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, getDeviceConfig()); + } + if (deviceOperationalStatus_ != context.ContextOuterClass.DeviceOperationalStatusEnum.DEVICEOPERATIONALSTATUS_UNDEFINED.getNumber()) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(5, deviceOperationalStatus_); + } + { + int dataSize = 0; + for (int i = 0; i < deviceDrivers_.size(); i++) { + dataSize += com.google.protobuf.CodedOutputStream.computeEnumSizeNoTag(deviceDrivers_.get(i)); + } + size += dataSize; + if (!getDeviceDriversList().isEmpty()) { + size += 1; + size += com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(dataSize); + } + deviceDriversMemoizedSerializedSize = dataSize; + } + for (int i = 0; i < deviceEndpoints_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(7, deviceEndpoints_.get(i)); + } + for (int i = 0; i < components_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(8, components_.get(i)); + } + if (controllerId_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(9, getControllerId()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.Device)) { + return super.equals(obj); + } + context.ContextOuterClass.Device other = (context.ContextOuterClass.Device) obj; + if (hasDeviceId() != other.hasDeviceId()) + return false; + if (hasDeviceId()) { + if (!getDeviceId().equals(other.getDeviceId())) + return false; + } + if (!getName().equals(other.getName())) + return false; + if (!getDeviceType().equals(other.getDeviceType())) + return false; + if (hasDeviceConfig() != other.hasDeviceConfig()) + return false; + if (hasDeviceConfig()) { + if (!getDeviceConfig().equals(other.getDeviceConfig())) + return false; + } + if (deviceOperationalStatus_ != other.deviceOperationalStatus_) + return false; + if (!deviceDrivers_.equals(other.deviceDrivers_)) + return false; + if (!getDeviceEndpointsList().equals(other.getDeviceEndpointsList())) + return false; + if (!getComponentsList().equals(other.getComponentsList())) + return false; + if (hasControllerId() != other.hasControllerId()) + return false; + if (hasControllerId()) { + if (!getControllerId().equals(other.getControllerId())) + return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasDeviceId()) { + hash = (37 * hash) + DEVICE_ID_FIELD_NUMBER; + hash = (53 * hash) + getDeviceId().hashCode(); + } + hash = (37 * hash) + NAME_FIELD_NUMBER; + hash = (53 * hash) + getName().hashCode(); + hash = (37 * hash) + DEVICE_TYPE_FIELD_NUMBER; + hash = (53 * hash) + getDeviceType().hashCode(); + if (hasDeviceConfig()) { + hash = (37 * hash) + DEVICE_CONFIG_FIELD_NUMBER; + hash = (53 * hash) + getDeviceConfig().hashCode(); + } + hash = (37 * hash) + DEVICE_OPERATIONAL_STATUS_FIELD_NUMBER; + hash = (53 * hash) + deviceOperationalStatus_; + if (getDeviceDriversCount() > 0) { + hash = (37 * hash) + DEVICE_DRIVERS_FIELD_NUMBER; + hash = (53 * hash) + deviceDrivers_.hashCode(); + } + if (getDeviceEndpointsCount() > 0) { + hash = (37 * hash) + DEVICE_ENDPOINTS_FIELD_NUMBER; + hash = (53 * hash) + getDeviceEndpointsList().hashCode(); + } + if (getComponentsCount() > 0) { + hash = (37 * hash) + COMPONENTS_FIELD_NUMBER; + hash = (53 * hash) + getComponentsList().hashCode(); + } + if (hasControllerId()) { + hash = (37 * hash) + CONTROLLER_ID_FIELD_NUMBER; + hash = (53 * hash) + getControllerId().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.Device parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.Device parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.Device parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.Device parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.Device parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.Device parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.Device parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.Device parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.Device parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.Device parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.Device parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.Device parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.Device prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code context.Device} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.Device) + context.ContextOuterClass.DeviceOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_Device_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_Device_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.Device.class, context.ContextOuterClass.Device.Builder.class); + } + + // Construct using context.ContextOuterClass.Device.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + deviceId_ = null; + if (deviceIdBuilder_ != null) { + deviceIdBuilder_.dispose(); + deviceIdBuilder_ = null; + } + name_ = ""; + deviceType_ = ""; + deviceConfig_ = null; + if (deviceConfigBuilder_ != null) { + deviceConfigBuilder_.dispose(); + deviceConfigBuilder_ = null; + } + deviceOperationalStatus_ = 0; + deviceDrivers_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000020); + if (deviceEndpointsBuilder_ == null) { + deviceEndpoints_ = java.util.Collections.emptyList(); + } else { + deviceEndpoints_ = null; + deviceEndpointsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000040); + if (componentsBuilder_ == null) { + components_ = java.util.Collections.emptyList(); + } else { + components_ = null; + componentsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000080); + controllerId_ = null; + if (controllerIdBuilder_ != null) { + controllerIdBuilder_.dispose(); + controllerIdBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_Device_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.Device getDefaultInstanceForType() { + return context.ContextOuterClass.Device.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.Device build() { + context.ContextOuterClass.Device result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.Device buildPartial() { + context.ContextOuterClass.Device result = new context.ContextOuterClass.Device(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(context.ContextOuterClass.Device result) { + if (((bitField0_ & 0x00000020) != 0)) { + deviceDrivers_ = java.util.Collections.unmodifiableList(deviceDrivers_); + bitField0_ = (bitField0_ & ~0x00000020); + } + result.deviceDrivers_ = deviceDrivers_; + if (deviceEndpointsBuilder_ == null) { + if (((bitField0_ & 0x00000040) != 0)) { + deviceEndpoints_ = java.util.Collections.unmodifiableList(deviceEndpoints_); + bitField0_ = (bitField0_ & ~0x00000040); + } + result.deviceEndpoints_ = deviceEndpoints_; + } else { + result.deviceEndpoints_ = deviceEndpointsBuilder_.build(); + } + if (componentsBuilder_ == null) { + if (((bitField0_ & 0x00000080) != 0)) { + components_ = java.util.Collections.unmodifiableList(components_); + bitField0_ = (bitField0_ & ~0x00000080); + } + result.components_ = components_; + } else { + result.components_ = componentsBuilder_.build(); + } + } + + private void buildPartial0(context.ContextOuterClass.Device result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.deviceId_ = deviceIdBuilder_ == null ? deviceId_ : deviceIdBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.name_ = name_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.deviceType_ = deviceType_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.deviceConfig_ = deviceConfigBuilder_ == null ? deviceConfig_ : deviceConfigBuilder_.build(); + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.deviceOperationalStatus_ = deviceOperationalStatus_; + } + if (((from_bitField0_ & 0x00000100) != 0)) { + result.controllerId_ = controllerIdBuilder_ == null ? controllerId_ : controllerIdBuilder_.build(); + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.Device) { + return mergeFrom((context.ContextOuterClass.Device) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.Device other) { + if (other == context.ContextOuterClass.Device.getDefaultInstance()) + return this; + if (other.hasDeviceId()) { + mergeDeviceId(other.getDeviceId()); + } + if (!other.getName().isEmpty()) { + name_ = other.name_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (!other.getDeviceType().isEmpty()) { + deviceType_ = other.deviceType_; + bitField0_ |= 0x00000004; + onChanged(); + } + if (other.hasDeviceConfig()) { + mergeDeviceConfig(other.getDeviceConfig()); + } + if (other.deviceOperationalStatus_ != 0) { + setDeviceOperationalStatusValue(other.getDeviceOperationalStatusValue()); + } + if (!other.deviceDrivers_.isEmpty()) { + if (deviceDrivers_.isEmpty()) { + deviceDrivers_ = other.deviceDrivers_; + bitField0_ = (bitField0_ & ~0x00000020); + } else { + ensureDeviceDriversIsMutable(); + deviceDrivers_.addAll(other.deviceDrivers_); + } + onChanged(); + } + if (deviceEndpointsBuilder_ == null) { + if (!other.deviceEndpoints_.isEmpty()) { + if (deviceEndpoints_.isEmpty()) { + deviceEndpoints_ = other.deviceEndpoints_; + bitField0_ = (bitField0_ & ~0x00000040); + } else { + ensureDeviceEndpointsIsMutable(); + deviceEndpoints_.addAll(other.deviceEndpoints_); + } + onChanged(); + } + } else { + if (!other.deviceEndpoints_.isEmpty()) { + if (deviceEndpointsBuilder_.isEmpty()) { + deviceEndpointsBuilder_.dispose(); + deviceEndpointsBuilder_ = null; + deviceEndpoints_ = other.deviceEndpoints_; + bitField0_ = (bitField0_ & ~0x00000040); + deviceEndpointsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getDeviceEndpointsFieldBuilder() : null; + } else { + deviceEndpointsBuilder_.addAllMessages(other.deviceEndpoints_); + } + } + } + if (componentsBuilder_ == null) { + if (!other.components_.isEmpty()) { + if (components_.isEmpty()) { + components_ = other.components_; + bitField0_ = (bitField0_ & ~0x00000080); + } else { + ensureComponentsIsMutable(); + components_.addAll(other.components_); + } + onChanged(); + } + } else { + if (!other.components_.isEmpty()) { + if (componentsBuilder_.isEmpty()) { + componentsBuilder_.dispose(); + componentsBuilder_ = null; + components_ = other.components_; + bitField0_ = (bitField0_ & ~0x00000080); + componentsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getComponentsFieldBuilder() : null; + } else { + componentsBuilder_.addAllMessages(other.components_); + } + } + } + if (other.hasControllerId()) { + mergeControllerId(other.getControllerId()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getDeviceIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + name_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } + // case 18 + case 26: + { + deviceType_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } + // case 26 + case 34: + { + input.readMessage(getDeviceConfigFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000008; + break; + } + // case 34 + case 40: + { + deviceOperationalStatus_ = input.readEnum(); + bitField0_ |= 0x00000010; + break; + } + // case 40 + case 48: + { + int tmpRaw = input.readEnum(); + ensureDeviceDriversIsMutable(); + deviceDrivers_.add(tmpRaw); + break; + } + // case 48 + case 50: + { + int length = input.readRawVarint32(); + int oldLimit = input.pushLimit(length); + while (input.getBytesUntilLimit() > 0) { + int tmpRaw = input.readEnum(); + ensureDeviceDriversIsMutable(); + deviceDrivers_.add(tmpRaw); + } + input.popLimit(oldLimit); + break; + } + // case 50 + case 58: + { + context.ContextOuterClass.EndPoint m = input.readMessage(context.ContextOuterClass.EndPoint.parser(), extensionRegistry); + if (deviceEndpointsBuilder_ == null) { + ensureDeviceEndpointsIsMutable(); + deviceEndpoints_.add(m); + } else { + deviceEndpointsBuilder_.addMessage(m); + } + break; + } + // case 58 + case 66: + { + context.ContextOuterClass.Component m = input.readMessage(context.ContextOuterClass.Component.parser(), extensionRegistry); + if (componentsBuilder_ == null) { + ensureComponentsIsMutable(); + components_.add(m); + } else { + componentsBuilder_.addMessage(m); + } + break; + } + // case 66 + case 74: + { + input.readMessage(getControllerIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000100; + break; + } + // case 74 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private context.ContextOuterClass.DeviceId deviceId_; + + private com.google.protobuf.SingleFieldBuilderV3 deviceIdBuilder_; + + /** + * .context.DeviceId device_id = 1; + * @return Whether the deviceId field is set. + */ + public boolean hasDeviceId() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * .context.DeviceId device_id = 1; + * @return The deviceId. + */ + public context.ContextOuterClass.DeviceId getDeviceId() { + if (deviceIdBuilder_ == null) { + return deviceId_ == null ? context.ContextOuterClass.DeviceId.getDefaultInstance() : deviceId_; + } else { + return deviceIdBuilder_.getMessage(); + } + } + + /** + * .context.DeviceId device_id = 1; + */ + public Builder setDeviceId(context.ContextOuterClass.DeviceId value) { + if (deviceIdBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + deviceId_ = value; + } else { + deviceIdBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.DeviceId device_id = 1; + */ + public Builder setDeviceId(context.ContextOuterClass.DeviceId.Builder builderForValue) { + if (deviceIdBuilder_ == null) { + deviceId_ = builderForValue.build(); + } else { + deviceIdBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.DeviceId device_id = 1; + */ + public Builder mergeDeviceId(context.ContextOuterClass.DeviceId value) { + if (deviceIdBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && deviceId_ != null && deviceId_ != context.ContextOuterClass.DeviceId.getDefaultInstance()) { + getDeviceIdBuilder().mergeFrom(value); + } else { + deviceId_ = value; + } + } else { + deviceIdBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.DeviceId device_id = 1; + */ + public Builder clearDeviceId() { + bitField0_ = (bitField0_ & ~0x00000001); + deviceId_ = null; + if (deviceIdBuilder_ != null) { + deviceIdBuilder_.dispose(); + deviceIdBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.DeviceId device_id = 1; + */ + public context.ContextOuterClass.DeviceId.Builder getDeviceIdBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getDeviceIdFieldBuilder().getBuilder(); + } + + /** + * .context.DeviceId device_id = 1; + */ + public context.ContextOuterClass.DeviceIdOrBuilder getDeviceIdOrBuilder() { + if (deviceIdBuilder_ != null) { + return deviceIdBuilder_.getMessageOrBuilder(); + } else { + return deviceId_ == null ? context.ContextOuterClass.DeviceId.getDefaultInstance() : deviceId_; + } + } + + /** + * .context.DeviceId device_id = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3 getDeviceIdFieldBuilder() { + if (deviceIdBuilder_ == null) { + deviceIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getDeviceId(), getParentForChildren(), isClean()); + deviceId_ = null; + } + return deviceIdBuilder_; + } + + private java.lang.Object name_ = ""; + + /** + * string name = 2; + * @return The name. + */ + public java.lang.String getName() { + java.lang.Object ref = name_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + name_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * string name = 2; + * @return The bytes for name. + */ + public com.google.protobuf.ByteString getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * string name = 2; + * @param value The name to set. + * @return This builder for chaining. + */ + public Builder setName(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + name_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * string name = 2; + * @return This builder for chaining. + */ + public Builder clearName() { + name_ = getDefaultInstance().getName(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * string name = 2; + * @param value The bytes for name to set. + * @return This builder for chaining. + */ + public Builder setNameBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + name_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private java.lang.Object deviceType_ = ""; + + /** + * string device_type = 3; + * @return The deviceType. + */ + public java.lang.String getDeviceType() { + java.lang.Object ref = deviceType_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + deviceType_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * string device_type = 3; + * @return The bytes for deviceType. + */ + public com.google.protobuf.ByteString getDeviceTypeBytes() { + java.lang.Object ref = deviceType_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + deviceType_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * string device_type = 3; + * @param value The deviceType to set. + * @return This builder for chaining. + */ + public Builder setDeviceType(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + deviceType_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * string device_type = 3; + * @return This builder for chaining. + */ + public Builder clearDeviceType() { + deviceType_ = getDefaultInstance().getDeviceType(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + + /** + * string device_type = 3; + * @param value The bytes for deviceType to set. + * @return This builder for chaining. + */ + public Builder setDeviceTypeBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + deviceType_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + private context.ContextOuterClass.DeviceConfig deviceConfig_; + + private com.google.protobuf.SingleFieldBuilderV3 deviceConfigBuilder_; + + /** + * .context.DeviceConfig device_config = 4; + * @return Whether the deviceConfig field is set. + */ + public boolean hasDeviceConfig() { + return ((bitField0_ & 0x00000008) != 0); + } + + /** + * .context.DeviceConfig device_config = 4; + * @return The deviceConfig. + */ + public context.ContextOuterClass.DeviceConfig getDeviceConfig() { + if (deviceConfigBuilder_ == null) { + return deviceConfig_ == null ? context.ContextOuterClass.DeviceConfig.getDefaultInstance() : deviceConfig_; + } else { + return deviceConfigBuilder_.getMessage(); + } + } + + /** + * .context.DeviceConfig device_config = 4; + */ + public Builder setDeviceConfig(context.ContextOuterClass.DeviceConfig value) { + if (deviceConfigBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + deviceConfig_ = value; + } else { + deviceConfigBuilder_.setMessage(value); + } + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * .context.DeviceConfig device_config = 4; + */ + public Builder setDeviceConfig(context.ContextOuterClass.DeviceConfig.Builder builderForValue) { + if (deviceConfigBuilder_ == null) { + deviceConfig_ = builderForValue.build(); + } else { + deviceConfigBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * .context.DeviceConfig device_config = 4; + */ + public Builder mergeDeviceConfig(context.ContextOuterClass.DeviceConfig value) { + if (deviceConfigBuilder_ == null) { + if (((bitField0_ & 0x00000008) != 0) && deviceConfig_ != null && deviceConfig_ != context.ContextOuterClass.DeviceConfig.getDefaultInstance()) { + getDeviceConfigBuilder().mergeFrom(value); + } else { + deviceConfig_ = value; + } + } else { + deviceConfigBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * .context.DeviceConfig device_config = 4; + */ + public Builder clearDeviceConfig() { + bitField0_ = (bitField0_ & ~0x00000008); + deviceConfig_ = null; + if (deviceConfigBuilder_ != null) { + deviceConfigBuilder_.dispose(); + deviceConfigBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.DeviceConfig device_config = 4; + */ + public context.ContextOuterClass.DeviceConfig.Builder getDeviceConfigBuilder() { + bitField0_ |= 0x00000008; + onChanged(); + return getDeviceConfigFieldBuilder().getBuilder(); + } + + /** + * .context.DeviceConfig device_config = 4; + */ + public context.ContextOuterClass.DeviceConfigOrBuilder getDeviceConfigOrBuilder() { + if (deviceConfigBuilder_ != null) { + return deviceConfigBuilder_.getMessageOrBuilder(); + } else { + return deviceConfig_ == null ? context.ContextOuterClass.DeviceConfig.getDefaultInstance() : deviceConfig_; + } + } + + /** + * .context.DeviceConfig device_config = 4; + */ + private com.google.protobuf.SingleFieldBuilderV3 getDeviceConfigFieldBuilder() { + if (deviceConfigBuilder_ == null) { + deviceConfigBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getDeviceConfig(), getParentForChildren(), isClean()); + deviceConfig_ = null; + } + return deviceConfigBuilder_; + } + + private int deviceOperationalStatus_ = 0; + + /** + * .context.DeviceOperationalStatusEnum device_operational_status = 5; + * @return The enum numeric value on the wire for deviceOperationalStatus. + */ + @java.lang.Override + public int getDeviceOperationalStatusValue() { + return deviceOperationalStatus_; + } + + /** + * .context.DeviceOperationalStatusEnum device_operational_status = 5; + * @param value The enum numeric value on the wire for deviceOperationalStatus to set. + * @return This builder for chaining. + */ + public Builder setDeviceOperationalStatusValue(int value) { + deviceOperationalStatus_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + /** + * .context.DeviceOperationalStatusEnum device_operational_status = 5; + * @return The deviceOperationalStatus. + */ + @java.lang.Override + public context.ContextOuterClass.DeviceOperationalStatusEnum getDeviceOperationalStatus() { + context.ContextOuterClass.DeviceOperationalStatusEnum result = context.ContextOuterClass.DeviceOperationalStatusEnum.forNumber(deviceOperationalStatus_); + return result == null ? context.ContextOuterClass.DeviceOperationalStatusEnum.UNRECOGNIZED : result; + } + + /** + * .context.DeviceOperationalStatusEnum device_operational_status = 5; + * @param value The deviceOperationalStatus to set. + * @return This builder for chaining. + */ + public Builder setDeviceOperationalStatus(context.ContextOuterClass.DeviceOperationalStatusEnum value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000010; + deviceOperationalStatus_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * .context.DeviceOperationalStatusEnum device_operational_status = 5; + * @return This builder for chaining. + */ + public Builder clearDeviceOperationalStatus() { + bitField0_ = (bitField0_ & ~0x00000010); + deviceOperationalStatus_ = 0; + onChanged(); + return this; + } + + private java.util.List deviceDrivers_ = java.util.Collections.emptyList(); + + private void ensureDeviceDriversIsMutable() { + if (!((bitField0_ & 0x00000020) != 0)) { + deviceDrivers_ = new java.util.ArrayList(deviceDrivers_); + bitField0_ |= 0x00000020; + } + } + + /** + * repeated .context.DeviceDriverEnum device_drivers = 6; + * @return A list containing the deviceDrivers. + */ + public java.util.List getDeviceDriversList() { + return new com.google.protobuf.Internal.ListAdapter(deviceDrivers_, deviceDrivers_converter_); + } + + /** + * repeated .context.DeviceDriverEnum device_drivers = 6; + * @return The count of deviceDrivers. + */ + public int getDeviceDriversCount() { + return deviceDrivers_.size(); + } + + /** + * repeated .context.DeviceDriverEnum device_drivers = 6; + * @param index The index of the element to return. + * @return The deviceDrivers at the given index. + */ + public context.ContextOuterClass.DeviceDriverEnum getDeviceDrivers(int index) { + return deviceDrivers_converter_.convert(deviceDrivers_.get(index)); + } + + /** + * repeated .context.DeviceDriverEnum device_drivers = 6; + * @param index The index to set the value at. + * @param value The deviceDrivers to set. + * @return This builder for chaining. + */ + public Builder setDeviceDrivers(int index, context.ContextOuterClass.DeviceDriverEnum value) { + if (value == null) { + throw new NullPointerException(); + } + ensureDeviceDriversIsMutable(); + deviceDrivers_.set(index, value.getNumber()); + onChanged(); + return this; + } + + /** + * repeated .context.DeviceDriverEnum device_drivers = 6; + * @param value The deviceDrivers to add. + * @return This builder for chaining. + */ + public Builder addDeviceDrivers(context.ContextOuterClass.DeviceDriverEnum value) { + if (value == null) { + throw new NullPointerException(); + } + ensureDeviceDriversIsMutable(); + deviceDrivers_.add(value.getNumber()); + onChanged(); + return this; + } + + /** + * repeated .context.DeviceDriverEnum device_drivers = 6; + * @param values The deviceDrivers to add. + * @return This builder for chaining. + */ + public Builder addAllDeviceDrivers(java.lang.Iterable values) { + ensureDeviceDriversIsMutable(); + for (context.ContextOuterClass.DeviceDriverEnum value : values) { + deviceDrivers_.add(value.getNumber()); + } + onChanged(); + return this; + } + + /** + * repeated .context.DeviceDriverEnum device_drivers = 6; + * @return This builder for chaining. + */ + public Builder clearDeviceDrivers() { + deviceDrivers_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000020); + onChanged(); + return this; + } + + /** + * repeated .context.DeviceDriverEnum device_drivers = 6; + * @return A list containing the enum numeric values on the wire for deviceDrivers. + */ + public java.util.List getDeviceDriversValueList() { + return java.util.Collections.unmodifiableList(deviceDrivers_); + } + + /** + * repeated .context.DeviceDriverEnum device_drivers = 6; + * @param index The index of the value to return. + * @return The enum numeric value on the wire of deviceDrivers at the given index. + */ + public int getDeviceDriversValue(int index) { + return deviceDrivers_.get(index); + } + + /** + * repeated .context.DeviceDriverEnum device_drivers = 6; + * @param index The index to set the value at. + * @param value The enum numeric value on the wire for deviceDrivers to set. + * @return This builder for chaining. + */ + public Builder setDeviceDriversValue(int index, int value) { + ensureDeviceDriversIsMutable(); + deviceDrivers_.set(index, value); + onChanged(); + return this; + } + + /** + * repeated .context.DeviceDriverEnum device_drivers = 6; + * @param value The enum numeric value on the wire for deviceDrivers to add. + * @return This builder for chaining. + */ + public Builder addDeviceDriversValue(int value) { + ensureDeviceDriversIsMutable(); + deviceDrivers_.add(value); + onChanged(); + return this; + } + + /** + * repeated .context.DeviceDriverEnum device_drivers = 6; + * @param values The enum numeric values on the wire for deviceDrivers to add. + * @return This builder for chaining. + */ + public Builder addAllDeviceDriversValue(java.lang.Iterable values) { + ensureDeviceDriversIsMutable(); + for (int value : values) { + deviceDrivers_.add(value); + } + onChanged(); + return this; + } + + private java.util.List deviceEndpoints_ = java.util.Collections.emptyList(); + + private void ensureDeviceEndpointsIsMutable() { + if (!((bitField0_ & 0x00000040) != 0)) { + deviceEndpoints_ = new java.util.ArrayList(deviceEndpoints_); + bitField0_ |= 0x00000040; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3 deviceEndpointsBuilder_; + + /** + * repeated .context.EndPoint device_endpoints = 7; + */ + public java.util.List getDeviceEndpointsList() { + if (deviceEndpointsBuilder_ == null) { + return java.util.Collections.unmodifiableList(deviceEndpoints_); + } else { + return deviceEndpointsBuilder_.getMessageList(); + } + } + + /** + * repeated .context.EndPoint device_endpoints = 7; + */ + public int getDeviceEndpointsCount() { + if (deviceEndpointsBuilder_ == null) { + return deviceEndpoints_.size(); + } else { + return deviceEndpointsBuilder_.getCount(); + } + } + + /** + * repeated .context.EndPoint device_endpoints = 7; + */ + public context.ContextOuterClass.EndPoint getDeviceEndpoints(int index) { + if (deviceEndpointsBuilder_ == null) { + return deviceEndpoints_.get(index); + } else { + return deviceEndpointsBuilder_.getMessage(index); + } + } + + /** + * repeated .context.EndPoint device_endpoints = 7; + */ + public Builder setDeviceEndpoints(int index, context.ContextOuterClass.EndPoint value) { + if (deviceEndpointsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureDeviceEndpointsIsMutable(); + deviceEndpoints_.set(index, value); + onChanged(); + } else { + deviceEndpointsBuilder_.setMessage(index, value); + } + return this; + } + + /** + * repeated .context.EndPoint device_endpoints = 7; + */ + public Builder setDeviceEndpoints(int index, context.ContextOuterClass.EndPoint.Builder builderForValue) { + if (deviceEndpointsBuilder_ == null) { + ensureDeviceEndpointsIsMutable(); + deviceEndpoints_.set(index, builderForValue.build()); + onChanged(); + } else { + deviceEndpointsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.EndPoint device_endpoints = 7; + */ + public Builder addDeviceEndpoints(context.ContextOuterClass.EndPoint value) { + if (deviceEndpointsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureDeviceEndpointsIsMutable(); + deviceEndpoints_.add(value); + onChanged(); + } else { + deviceEndpointsBuilder_.addMessage(value); + } + return this; + } + + /** + * repeated .context.EndPoint device_endpoints = 7; + */ + public Builder addDeviceEndpoints(int index, context.ContextOuterClass.EndPoint value) { + if (deviceEndpointsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureDeviceEndpointsIsMutable(); + deviceEndpoints_.add(index, value); + onChanged(); + } else { + deviceEndpointsBuilder_.addMessage(index, value); + } + return this; + } + + /** + * repeated .context.EndPoint device_endpoints = 7; + */ + public Builder addDeviceEndpoints(context.ContextOuterClass.EndPoint.Builder builderForValue) { + if (deviceEndpointsBuilder_ == null) { + ensureDeviceEndpointsIsMutable(); + deviceEndpoints_.add(builderForValue.build()); + onChanged(); + } else { + deviceEndpointsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * repeated .context.EndPoint device_endpoints = 7; + */ + public Builder addDeviceEndpoints(int index, context.ContextOuterClass.EndPoint.Builder builderForValue) { + if (deviceEndpointsBuilder_ == null) { + ensureDeviceEndpointsIsMutable(); + deviceEndpoints_.add(index, builderForValue.build()); + onChanged(); + } else { + deviceEndpointsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.EndPoint device_endpoints = 7; + */ + public Builder addAllDeviceEndpoints(java.lang.Iterable values) { + if (deviceEndpointsBuilder_ == null) { + ensureDeviceEndpointsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, deviceEndpoints_); + onChanged(); + } else { + deviceEndpointsBuilder_.addAllMessages(values); + } + return this; + } + + /** + * repeated .context.EndPoint device_endpoints = 7; + */ + public Builder clearDeviceEndpoints() { + if (deviceEndpointsBuilder_ == null) { + deviceEndpoints_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000040); + onChanged(); + } else { + deviceEndpointsBuilder_.clear(); + } + return this; + } + + /** + * repeated .context.EndPoint device_endpoints = 7; + */ + public Builder removeDeviceEndpoints(int index) { + if (deviceEndpointsBuilder_ == null) { + ensureDeviceEndpointsIsMutable(); + deviceEndpoints_.remove(index); + onChanged(); + } else { + deviceEndpointsBuilder_.remove(index); + } + return this; + } + + /** + * repeated .context.EndPoint device_endpoints = 7; + */ + public context.ContextOuterClass.EndPoint.Builder getDeviceEndpointsBuilder(int index) { + return getDeviceEndpointsFieldBuilder().getBuilder(index); + } + + /** + * repeated .context.EndPoint device_endpoints = 7; + */ + public context.ContextOuterClass.EndPointOrBuilder getDeviceEndpointsOrBuilder(int index) { + if (deviceEndpointsBuilder_ == null) { + return deviceEndpoints_.get(index); + } else { + return deviceEndpointsBuilder_.getMessageOrBuilder(index); + } + } + + /** + * repeated .context.EndPoint device_endpoints = 7; + */ + public java.util.List getDeviceEndpointsOrBuilderList() { + if (deviceEndpointsBuilder_ != null) { + return deviceEndpointsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(deviceEndpoints_); + } + } + + /** + * repeated .context.EndPoint device_endpoints = 7; + */ + public context.ContextOuterClass.EndPoint.Builder addDeviceEndpointsBuilder() { + return getDeviceEndpointsFieldBuilder().addBuilder(context.ContextOuterClass.EndPoint.getDefaultInstance()); + } + + /** + * repeated .context.EndPoint device_endpoints = 7; + */ + public context.ContextOuterClass.EndPoint.Builder addDeviceEndpointsBuilder(int index) { + return getDeviceEndpointsFieldBuilder().addBuilder(index, context.ContextOuterClass.EndPoint.getDefaultInstance()); + } + + /** + * repeated .context.EndPoint device_endpoints = 7; + */ + public java.util.List getDeviceEndpointsBuilderList() { + return getDeviceEndpointsFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3 getDeviceEndpointsFieldBuilder() { + if (deviceEndpointsBuilder_ == null) { + deviceEndpointsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3(deviceEndpoints_, ((bitField0_ & 0x00000040) != 0), getParentForChildren(), isClean()); + deviceEndpoints_ = null; + } + return deviceEndpointsBuilder_; + } + + private java.util.List components_ = java.util.Collections.emptyList(); + + private void ensureComponentsIsMutable() { + if (!((bitField0_ & 0x00000080) != 0)) { + components_ = new java.util.ArrayList(components_); + bitField0_ |= 0x00000080; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3 componentsBuilder_; + + /** + *
+             * Used for inventory
+             * 
+ * + * repeated .context.Component components = 8; + */ + public java.util.List getComponentsList() { + if (componentsBuilder_ == null) { + return java.util.Collections.unmodifiableList(components_); + } else { + return componentsBuilder_.getMessageList(); + } + } + + /** + *
+             * Used for inventory
+             * 
+ * + * repeated .context.Component components = 8; + */ + public int getComponentsCount() { + if (componentsBuilder_ == null) { + return components_.size(); + } else { + return componentsBuilder_.getCount(); + } + } + + /** + *
+             * Used for inventory
+             * 
+ * + * repeated .context.Component components = 8; + */ + public context.ContextOuterClass.Component getComponents(int index) { + if (componentsBuilder_ == null) { + return components_.get(index); + } else { + return componentsBuilder_.getMessage(index); + } + } + + /** + *
+             * Used for inventory
+             * 
+ * + * repeated .context.Component components = 8; + */ + public Builder setComponents(int index, context.ContextOuterClass.Component value) { + if (componentsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureComponentsIsMutable(); + components_.set(index, value); + onChanged(); + } else { + componentsBuilder_.setMessage(index, value); + } + return this; + } + + /** + *
+             * Used for inventory
+             * 
+ * + * repeated .context.Component components = 8; + */ + public Builder setComponents(int index, context.ContextOuterClass.Component.Builder builderForValue) { + if (componentsBuilder_ == null) { + ensureComponentsIsMutable(); + components_.set(index, builderForValue.build()); + onChanged(); + } else { + componentsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + *
+             * Used for inventory
+             * 
+ * + * repeated .context.Component components = 8; + */ + public Builder addComponents(context.ContextOuterClass.Component value) { + if (componentsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureComponentsIsMutable(); + components_.add(value); + onChanged(); + } else { + componentsBuilder_.addMessage(value); + } + return this; + } + + /** + *
+             * Used for inventory
+             * 
+ * + * repeated .context.Component components = 8; + */ + public Builder addComponents(int index, context.ContextOuterClass.Component value) { + if (componentsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureComponentsIsMutable(); + components_.add(index, value); + onChanged(); + } else { + componentsBuilder_.addMessage(index, value); + } + return this; + } + + /** + *
+             * Used for inventory
+             * 
+ * + * repeated .context.Component components = 8; + */ + public Builder addComponents(context.ContextOuterClass.Component.Builder builderForValue) { + if (componentsBuilder_ == null) { + ensureComponentsIsMutable(); + components_.add(builderForValue.build()); + onChanged(); + } else { + componentsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + *
+             * Used for inventory
+             * 
+ * + * repeated .context.Component components = 8; + */ + public Builder addComponents(int index, context.ContextOuterClass.Component.Builder builderForValue) { + if (componentsBuilder_ == null) { + ensureComponentsIsMutable(); + components_.add(index, builderForValue.build()); + onChanged(); + } else { + componentsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + *
+             * Used for inventory
+             * 
+ * + * repeated .context.Component components = 8; + */ + public Builder addAllComponents(java.lang.Iterable values) { + if (componentsBuilder_ == null) { + ensureComponentsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, components_); + onChanged(); + } else { + componentsBuilder_.addAllMessages(values); + } + return this; + } + + /** + *
+             * Used for inventory
+             * 
+ * + * repeated .context.Component components = 8; + */ + public Builder clearComponents() { + if (componentsBuilder_ == null) { + components_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000080); + onChanged(); + } else { + componentsBuilder_.clear(); + } + return this; + } + + /** + *
+             * Used for inventory
+             * 
+ * + * repeated .context.Component components = 8; + */ + public Builder removeComponents(int index) { + if (componentsBuilder_ == null) { + ensureComponentsIsMutable(); + components_.remove(index); + onChanged(); + } else { + componentsBuilder_.remove(index); + } + return this; + } + + /** + *
+             * Used for inventory
+             * 
+ * + * repeated .context.Component components = 8; + */ + public context.ContextOuterClass.Component.Builder getComponentsBuilder(int index) { + return getComponentsFieldBuilder().getBuilder(index); + } + + /** + *
+             * Used for inventory
+             * 
+ * + * repeated .context.Component components = 8; + */ + public context.ContextOuterClass.ComponentOrBuilder getComponentsOrBuilder(int index) { + if (componentsBuilder_ == null) { + return components_.get(index); + } else { + return componentsBuilder_.getMessageOrBuilder(index); + } + } + + /** + *
+             * Used for inventory
+             * 
+ * + * repeated .context.Component components = 8; + */ + public java.util.List getComponentsOrBuilderList() { + if (componentsBuilder_ != null) { + return componentsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(components_); + } + } + + /** + *
+             * Used for inventory
+             * 
+ * + * repeated .context.Component components = 8; + */ + public context.ContextOuterClass.Component.Builder addComponentsBuilder() { + return getComponentsFieldBuilder().addBuilder(context.ContextOuterClass.Component.getDefaultInstance()); + } + + /** + *
+             * Used for inventory
+             * 
+ * + * repeated .context.Component components = 8; + */ + public context.ContextOuterClass.Component.Builder addComponentsBuilder(int index) { + return getComponentsFieldBuilder().addBuilder(index, context.ContextOuterClass.Component.getDefaultInstance()); + } + + /** + *
+             * Used for inventory
+             * 
+ * + * repeated .context.Component components = 8; + */ + public java.util.List getComponentsBuilderList() { + return getComponentsFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3 getComponentsFieldBuilder() { + if (componentsBuilder_ == null) { + componentsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3(components_, ((bitField0_ & 0x00000080) != 0), getParentForChildren(), isClean()); + components_ = null; + } + return componentsBuilder_; + } + + private context.ContextOuterClass.DeviceId controllerId_; + + private com.google.protobuf.SingleFieldBuilderV3 controllerIdBuilder_; + + /** + *
+             * Identifier of node controlling the actual device
+             * 
+ * + * .context.DeviceId controller_id = 9; + * @return Whether the controllerId field is set. + */ + public boolean hasControllerId() { + return ((bitField0_ & 0x00000100) != 0); + } + + /** + *
+             * Identifier of node controlling the actual device
+             * 
+ * + * .context.DeviceId controller_id = 9; + * @return The controllerId. + */ + public context.ContextOuterClass.DeviceId getControllerId() { + if (controllerIdBuilder_ == null) { + return controllerId_ == null ? context.ContextOuterClass.DeviceId.getDefaultInstance() : controllerId_; + } else { + return controllerIdBuilder_.getMessage(); + } + } + + /** + *
+             * Identifier of node controlling the actual device
+             * 
+ * + * .context.DeviceId controller_id = 9; + */ + public Builder setControllerId(context.ContextOuterClass.DeviceId value) { + if (controllerIdBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + controllerId_ = value; + } else { + controllerIdBuilder_.setMessage(value); + } + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + + /** + *
+             * Identifier of node controlling the actual device
+             * 
+ * + * .context.DeviceId controller_id = 9; + */ + public Builder setControllerId(context.ContextOuterClass.DeviceId.Builder builderForValue) { + if (controllerIdBuilder_ == null) { + controllerId_ = builderForValue.build(); + } else { + controllerIdBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + + /** + *
+             * Identifier of node controlling the actual device
+             * 
+ * + * .context.DeviceId controller_id = 9; + */ + public Builder mergeControllerId(context.ContextOuterClass.DeviceId value) { + if (controllerIdBuilder_ == null) { + if (((bitField0_ & 0x00000100) != 0) && controllerId_ != null && controllerId_ != context.ContextOuterClass.DeviceId.getDefaultInstance()) { + getControllerIdBuilder().mergeFrom(value); + } else { + controllerId_ = value; + } + } else { + controllerIdBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + + /** + *
+             * Identifier of node controlling the actual device
+             * 
+ * + * .context.DeviceId controller_id = 9; + */ + public Builder clearControllerId() { + bitField0_ = (bitField0_ & ~0x00000100); + controllerId_ = null; + if (controllerIdBuilder_ != null) { + controllerIdBuilder_.dispose(); + controllerIdBuilder_ = null; + } + onChanged(); + return this; + } + + /** + *
+             * Identifier of node controlling the actual device
+             * 
+ * + * .context.DeviceId controller_id = 9; + */ + public context.ContextOuterClass.DeviceId.Builder getControllerIdBuilder() { + bitField0_ |= 0x00000100; + onChanged(); + return getControllerIdFieldBuilder().getBuilder(); + } + + /** + *
+             * Identifier of node controlling the actual device
+             * 
+ * + * .context.DeviceId controller_id = 9; + */ + public context.ContextOuterClass.DeviceIdOrBuilder getControllerIdOrBuilder() { + if (controllerIdBuilder_ != null) { + return controllerIdBuilder_.getMessageOrBuilder(); + } else { + return controllerId_ == null ? context.ContextOuterClass.DeviceId.getDefaultInstance() : controllerId_; + } + } + + /** + *
+             * Identifier of node controlling the actual device
+             * 
+ * + * .context.DeviceId controller_id = 9; + */ + private com.google.protobuf.SingleFieldBuilderV3 getControllerIdFieldBuilder() { + if (controllerIdBuilder_ == null) { + controllerIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getControllerId(), getParentForChildren(), isClean()); + controllerId_ = null; + } + return controllerIdBuilder_; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.Device) + } + + // @@protoc_insertion_point(class_scope:context.Device) + private static final context.ContextOuterClass.Device DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.Device(); + } + + public static context.ContextOuterClass.Device getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public Device parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.Device getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface ComponentOrBuilder extends // @@protoc_insertion_point(interface_extends:context.Component) + com.google.protobuf.MessageOrBuilder { + + /** + * .context.Uuid component_uuid = 1; + * @return Whether the componentUuid field is set. + */ + boolean hasComponentUuid(); + + /** + * .context.Uuid component_uuid = 1; + * @return The componentUuid. + */ + context.ContextOuterClass.Uuid getComponentUuid(); + + /** + * .context.Uuid component_uuid = 1; + */ + context.ContextOuterClass.UuidOrBuilder getComponentUuidOrBuilder(); + + /** + * string name = 2; + * @return The name. + */ + java.lang.String getName(); + + /** + * string name = 2; + * @return The bytes for name. + */ + com.google.protobuf.ByteString getNameBytes(); + + /** + * string type = 3; + * @return The type. + */ + java.lang.String getType(); + + /** + * string type = 3; + * @return The bytes for type. + */ + com.google.protobuf.ByteString getTypeBytes(); + + /** + *
+         * dict[attr.name => json.dumps(attr.value)]
+         * 
+ * + * map<string, string> attributes = 4; + */ + int getAttributesCount(); + + /** + *
+         * dict[attr.name => json.dumps(attr.value)]
+         * 
+ * + * map<string, string> attributes = 4; + */ + boolean containsAttributes(java.lang.String key); + + /** + * Use {@link #getAttributesMap()} instead. + */ + @java.lang.Deprecated + java.util.Map getAttributes(); + + /** + *
+         * dict[attr.name => json.dumps(attr.value)]
+         * 
+ * + * map<string, string> attributes = 4; + */ + java.util.Map getAttributesMap(); + + /** + *
+         * dict[attr.name => json.dumps(attr.value)]
+         * 
+ * + * map<string, string> attributes = 4; + */ + /* nullable */ + java.lang.String getAttributesOrDefault(java.lang.String key, /* nullable */ + java.lang.String defaultValue); + + /** + *
+         * dict[attr.name => json.dumps(attr.value)]
+         * 
+ * + * map<string, string> attributes = 4; + */ + java.lang.String getAttributesOrThrow(java.lang.String key); + + /** + * string parent = 5; + * @return The parent. + */ + java.lang.String getParent(); + + /** + * string parent = 5; + * @return The bytes for parent. + */ + com.google.protobuf.ByteString getParentBytes(); + } + + /** + *
+     * Defined previously to this section - Tested OK
+     *  
+ * + * Protobuf type {@code context.Component} + */ + public static final class Component extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.Component) + ComponentOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use Component.newBuilder() to construct. + private Component(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private Component() { + name_ = ""; + type_ = ""; + parent_ = ""; + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new Component(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_Component_descriptor; + } + + @SuppressWarnings({ "rawtypes" }) + @java.lang.Override + protected com.google.protobuf.MapField internalGetMapField(int number) { + switch(number) { + case 4: + return internalGetAttributes(); + default: + throw new RuntimeException("Invalid map field number: " + number); + } + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_Component_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.Component.class, context.ContextOuterClass.Component.Builder.class); + } + + public static final int COMPONENT_UUID_FIELD_NUMBER = 1; + + private context.ContextOuterClass.Uuid componentUuid_; + + /** + * .context.Uuid component_uuid = 1; + * @return Whether the componentUuid field is set. + */ + @java.lang.Override + public boolean hasComponentUuid() { + return componentUuid_ != null; + } + + /** + * .context.Uuid component_uuid = 1; + * @return The componentUuid. + */ + @java.lang.Override + public context.ContextOuterClass.Uuid getComponentUuid() { + return componentUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : componentUuid_; + } + + /** + * .context.Uuid component_uuid = 1; + */ + @java.lang.Override + public context.ContextOuterClass.UuidOrBuilder getComponentUuidOrBuilder() { + return componentUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : componentUuid_; + } + + public static final int NAME_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object name_ = ""; + + /** + * string name = 2; + * @return The name. + */ + @java.lang.Override + public java.lang.String getName() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + name_ = s; + return s; + } + } + + /** + * string name = 2; + * @return The bytes for name. + */ + @java.lang.Override + public com.google.protobuf.ByteString getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int TYPE_FIELD_NUMBER = 3; + + @SuppressWarnings("serial") + private volatile java.lang.Object type_ = ""; + + /** + * string type = 3; + * @return The type. + */ + @java.lang.Override + public java.lang.String getType() { + java.lang.Object ref = type_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + type_ = s; + return s; + } + } + + /** + * string type = 3; + * @return The bytes for type. + */ + @java.lang.Override + public com.google.protobuf.ByteString getTypeBytes() { + java.lang.Object ref = type_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + type_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int ATTRIBUTES_FIELD_NUMBER = 4; + + private static final class AttributesDefaultEntryHolder { + + static final com.google.protobuf.MapEntry defaultEntry = com.google.protobuf.MapEntry.newDefaultInstance(context.ContextOuterClass.internal_static_context_Component_AttributesEntry_descriptor, com.google.protobuf.WireFormat.FieldType.STRING, "", com.google.protobuf.WireFormat.FieldType.STRING, ""); + } + + @SuppressWarnings("serial") + private com.google.protobuf.MapField attributes_; + + private com.google.protobuf.MapField internalGetAttributes() { + if (attributes_ == null) { + return com.google.protobuf.MapField.emptyMapField(AttributesDefaultEntryHolder.defaultEntry); + } + return attributes_; + } + + public int getAttributesCount() { + return internalGetAttributes().getMap().size(); + } + + /** + *
+         * dict[attr.name => json.dumps(attr.value)]
+         * 
+ * + * map<string, string> attributes = 4; + */ + @java.lang.Override + public boolean containsAttributes(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + return internalGetAttributes().getMap().containsKey(key); + } + + /** + * Use {@link #getAttributesMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getAttributes() { + return getAttributesMap(); + } + + /** + *
+         * dict[attr.name => json.dumps(attr.value)]
+         * 
+ * + * map<string, string> attributes = 4; + */ + @java.lang.Override + public java.util.Map getAttributesMap() { + return internalGetAttributes().getMap(); + } + + /** + *
+         * dict[attr.name => json.dumps(attr.value)]
+         * 
+ * + * map<string, string> attributes = 4; + */ + @java.lang.Override + public /* nullable */ + java.lang.String getAttributesOrDefault(java.lang.String key, /* nullable */ + java.lang.String defaultValue) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map map = internalGetAttributes().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + + /** + *
+         * dict[attr.name => json.dumps(attr.value)]
+         * 
+ * + * map<string, string> attributes = 4; + */ + @java.lang.Override + public java.lang.String getAttributesOrThrow(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map map = internalGetAttributes().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + + public static final int PARENT_FIELD_NUMBER = 5; + + @SuppressWarnings("serial") + private volatile java.lang.Object parent_ = ""; + + /** + * string parent = 5; + * @return The parent. + */ + @java.lang.Override + public java.lang.String getParent() { + java.lang.Object ref = parent_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + parent_ = s; + return s; + } + } + + /** + * string parent = 5; + * @return The bytes for parent. + */ + @java.lang.Override + public com.google.protobuf.ByteString getParentBytes() { + java.lang.Object ref = parent_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + parent_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (componentUuid_ != null) { + output.writeMessage(1, getComponentUuid()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, name_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(type_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, type_); + } + com.google.protobuf.GeneratedMessageV3.serializeStringMapTo(output, internalGetAttributes(), AttributesDefaultEntryHolder.defaultEntry, 4); + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(parent_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 5, parent_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + if (componentUuid_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getComponentUuid()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, name_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(type_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, type_); + } + for (java.util.Map.Entry entry : internalGetAttributes().getMap().entrySet()) { + com.google.protobuf.MapEntry attributes__ = AttributesDefaultEntryHolder.defaultEntry.newBuilderForType().setKey(entry.getKey()).setValue(entry.getValue()).build(); + size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, attributes__); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(parent_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, parent_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.Component)) { + return super.equals(obj); + } + context.ContextOuterClass.Component other = (context.ContextOuterClass.Component) obj; + if (hasComponentUuid() != other.hasComponentUuid()) + return false; + if (hasComponentUuid()) { + if (!getComponentUuid().equals(other.getComponentUuid())) + return false; + } + if (!getName().equals(other.getName())) + return false; + if (!getType().equals(other.getType())) + return false; + if (!internalGetAttributes().equals(other.internalGetAttributes())) + return false; + if (!getParent().equals(other.getParent())) + return false; + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasComponentUuid()) { + hash = (37 * hash) + COMPONENT_UUID_FIELD_NUMBER; + hash = (53 * hash) + getComponentUuid().hashCode(); + } + hash = (37 * hash) + NAME_FIELD_NUMBER; + hash = (53 * hash) + getName().hashCode(); + hash = (37 * hash) + TYPE_FIELD_NUMBER; + hash = (53 * hash) + getType().hashCode(); + if (!internalGetAttributes().getMap().isEmpty()) { + hash = (37 * hash) + ATTRIBUTES_FIELD_NUMBER; + hash = (53 * hash) + internalGetAttributes().hashCode(); + } + hash = (37 * hash) + PARENT_FIELD_NUMBER; + hash = (53 * hash) + getParent().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.Component parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.Component parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.Component parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.Component parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.Component parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.Component parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.Component parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.Component parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.Component parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.Component parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.Component parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.Component parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.Component prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + *
+         * Defined previously to this section - Tested OK
+         *  
+ * + * Protobuf type {@code context.Component} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.Component) + context.ContextOuterClass.ComponentOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_Component_descriptor; + } + + @SuppressWarnings({ "rawtypes" }) + protected com.google.protobuf.MapField internalGetMapField(int number) { + switch(number) { + case 4: + return internalGetAttributes(); + default: + throw new RuntimeException("Invalid map field number: " + number); + } + } + + @SuppressWarnings({ "rawtypes" }) + protected com.google.protobuf.MapField internalGetMutableMapField(int number) { + switch(number) { + case 4: + return internalGetMutableAttributes(); + default: + throw new RuntimeException("Invalid map field number: " + number); + } + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_Component_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.Component.class, context.ContextOuterClass.Component.Builder.class); + } + + // Construct using context.ContextOuterClass.Component.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + componentUuid_ = null; + if (componentUuidBuilder_ != null) { + componentUuidBuilder_.dispose(); + componentUuidBuilder_ = null; + } + name_ = ""; + type_ = ""; + internalGetMutableAttributes().clear(); + parent_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_Component_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.Component getDefaultInstanceForType() { + return context.ContextOuterClass.Component.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.Component build() { + context.ContextOuterClass.Component result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.Component buildPartial() { + context.ContextOuterClass.Component result = new context.ContextOuterClass.Component(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(context.ContextOuterClass.Component result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.componentUuid_ = componentUuidBuilder_ == null ? componentUuid_ : componentUuidBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.name_ = name_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.type_ = type_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.attributes_ = internalGetAttributes(); + result.attributes_.makeImmutable(); + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.parent_ = parent_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.Component) { + return mergeFrom((context.ContextOuterClass.Component) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.Component other) { + if (other == context.ContextOuterClass.Component.getDefaultInstance()) + return this; + if (other.hasComponentUuid()) { + mergeComponentUuid(other.getComponentUuid()); + } + if (!other.getName().isEmpty()) { + name_ = other.name_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (!other.getType().isEmpty()) { + type_ = other.type_; + bitField0_ |= 0x00000004; + onChanged(); + } + internalGetMutableAttributes().mergeFrom(other.internalGetAttributes()); + bitField0_ |= 0x00000008; + if (!other.getParent().isEmpty()) { + parent_ = other.parent_; + bitField0_ |= 0x00000010; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getComponentUuidFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + name_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } + // case 18 + case 26: + { + type_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } + // case 26 + case 34: + { + com.google.protobuf.MapEntry attributes__ = input.readMessage(AttributesDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry); + internalGetMutableAttributes().getMutableMap().put(attributes__.getKey(), attributes__.getValue()); + bitField0_ |= 0x00000008; + break; + } + // case 34 + case 42: + { + parent_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000010; + break; + } + // case 42 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private context.ContextOuterClass.Uuid componentUuid_; + + private com.google.protobuf.SingleFieldBuilderV3 componentUuidBuilder_; + + /** + * .context.Uuid component_uuid = 1; + * @return Whether the componentUuid field is set. + */ + public boolean hasComponentUuid() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * .context.Uuid component_uuid = 1; + * @return The componentUuid. + */ + public context.ContextOuterClass.Uuid getComponentUuid() { + if (componentUuidBuilder_ == null) { + return componentUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : componentUuid_; + } else { + return componentUuidBuilder_.getMessage(); + } + } + + /** + * .context.Uuid component_uuid = 1; + */ + public Builder setComponentUuid(context.ContextOuterClass.Uuid value) { + if (componentUuidBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + componentUuid_ = value; + } else { + componentUuidBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.Uuid component_uuid = 1; + */ + public Builder setComponentUuid(context.ContextOuterClass.Uuid.Builder builderForValue) { + if (componentUuidBuilder_ == null) { + componentUuid_ = builderForValue.build(); + } else { + componentUuidBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.Uuid component_uuid = 1; + */ + public Builder mergeComponentUuid(context.ContextOuterClass.Uuid value) { + if (componentUuidBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && componentUuid_ != null && componentUuid_ != context.ContextOuterClass.Uuid.getDefaultInstance()) { + getComponentUuidBuilder().mergeFrom(value); + } else { + componentUuid_ = value; + } + } else { + componentUuidBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.Uuid component_uuid = 1; + */ + public Builder clearComponentUuid() { + bitField0_ = (bitField0_ & ~0x00000001); + componentUuid_ = null; + if (componentUuidBuilder_ != null) { + componentUuidBuilder_.dispose(); + componentUuidBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.Uuid component_uuid = 1; + */ + public context.ContextOuterClass.Uuid.Builder getComponentUuidBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getComponentUuidFieldBuilder().getBuilder(); + } + + /** + * .context.Uuid component_uuid = 1; + */ + public context.ContextOuterClass.UuidOrBuilder getComponentUuidOrBuilder() { + if (componentUuidBuilder_ != null) { + return componentUuidBuilder_.getMessageOrBuilder(); + } else { + return componentUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : componentUuid_; + } + } + + /** + * .context.Uuid component_uuid = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3 getComponentUuidFieldBuilder() { + if (componentUuidBuilder_ == null) { + componentUuidBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getComponentUuid(), getParentForChildren(), isClean()); + componentUuid_ = null; + } + return componentUuidBuilder_; + } + + private java.lang.Object name_ = ""; + + /** + * string name = 2; + * @return The name. + */ + public java.lang.String getName() { + java.lang.Object ref = name_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + name_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * string name = 2; + * @return The bytes for name. + */ + public com.google.protobuf.ByteString getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * string name = 2; + * @param value The name to set. + * @return This builder for chaining. + */ + public Builder setName(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + name_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * string name = 2; + * @return This builder for chaining. + */ + public Builder clearName() { + name_ = getDefaultInstance().getName(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * string name = 2; + * @param value The bytes for name to set. + * @return This builder for chaining. + */ + public Builder setNameBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + name_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private java.lang.Object type_ = ""; + + /** + * string type = 3; + * @return The type. + */ + public java.lang.String getType() { + java.lang.Object ref = type_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + type_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * string type = 3; + * @return The bytes for type. + */ + public com.google.protobuf.ByteString getTypeBytes() { + java.lang.Object ref = type_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + type_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * string type = 3; + * @param value The type to set. + * @return This builder for chaining. + */ + public Builder setType(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + type_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * string type = 3; + * @return This builder for chaining. + */ + public Builder clearType() { + type_ = getDefaultInstance().getType(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + + /** + * string type = 3; + * @param value The bytes for type to set. + * @return This builder for chaining. + */ + public Builder setTypeBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + type_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + private com.google.protobuf.MapField attributes_; + + private com.google.protobuf.MapField internalGetAttributes() { + if (attributes_ == null) { + return com.google.protobuf.MapField.emptyMapField(AttributesDefaultEntryHolder.defaultEntry); + } + return attributes_; + } + + private com.google.protobuf.MapField internalGetMutableAttributes() { + if (attributes_ == null) { + attributes_ = com.google.protobuf.MapField.newMapField(AttributesDefaultEntryHolder.defaultEntry); + } + if (!attributes_.isMutable()) { + attributes_ = attributes_.copy(); + } + bitField0_ |= 0x00000008; + onChanged(); + return attributes_; + } + + public int getAttributesCount() { + return internalGetAttributes().getMap().size(); + } + + /** + *
+             * dict[attr.name => json.dumps(attr.value)]
+             * 
+ * + * map<string, string> attributes = 4; + */ + @java.lang.Override + public boolean containsAttributes(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + return internalGetAttributes().getMap().containsKey(key); + } + + /** + * Use {@link #getAttributesMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getAttributes() { + return getAttributesMap(); + } + + /** + *
+             * dict[attr.name => json.dumps(attr.value)]
+             * 
+ * + * map<string, string> attributes = 4; + */ + @java.lang.Override + public java.util.Map getAttributesMap() { + return internalGetAttributes().getMap(); + } + + /** + *
+             * dict[attr.name => json.dumps(attr.value)]
+             * 
+ * + * map<string, string> attributes = 4; + */ + @java.lang.Override + public /* nullable */ + java.lang.String getAttributesOrDefault(java.lang.String key, /* nullable */ + java.lang.String defaultValue) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map map = internalGetAttributes().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + + /** + *
+             * dict[attr.name => json.dumps(attr.value)]
+             * 
+ * + * map<string, string> attributes = 4; + */ + @java.lang.Override + public java.lang.String getAttributesOrThrow(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map map = internalGetAttributes().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + + public Builder clearAttributes() { + bitField0_ = (bitField0_ & ~0x00000008); + internalGetMutableAttributes().getMutableMap().clear(); + return this; + } + + /** + *
+             * dict[attr.name => json.dumps(attr.value)]
+             * 
+ * + * map<string, string> attributes = 4; + */ + public Builder removeAttributes(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + internalGetMutableAttributes().getMutableMap().remove(key); + return this; + } + + /** + * Use alternate mutation accessors instead. + */ + @java.lang.Deprecated + public java.util.Map getMutableAttributes() { + bitField0_ |= 0x00000008; + return internalGetMutableAttributes().getMutableMap(); + } + + /** + *
+             * dict[attr.name => json.dumps(attr.value)]
+             * 
+ * + * map<string, string> attributes = 4; + */ + public Builder putAttributes(java.lang.String key, java.lang.String value) { + if (key == null) { + throw new NullPointerException("map key"); + } + if (value == null) { + throw new NullPointerException("map value"); + } + internalGetMutableAttributes().getMutableMap().put(key, value); + bitField0_ |= 0x00000008; + return this; + } + + /** + *
+             * dict[attr.name => json.dumps(attr.value)]
+             * 
+ * + * map<string, string> attributes = 4; + */ + public Builder putAllAttributes(java.util.Map values) { + internalGetMutableAttributes().getMutableMap().putAll(values); + bitField0_ |= 0x00000008; + return this; + } + + private java.lang.Object parent_ = ""; + + /** + * string parent = 5; + * @return The parent. + */ + public java.lang.String getParent() { + java.lang.Object ref = parent_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + parent_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * string parent = 5; + * @return The bytes for parent. + */ + public com.google.protobuf.ByteString getParentBytes() { + java.lang.Object ref = parent_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + parent_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * string parent = 5; + * @param value The parent to set. + * @return This builder for chaining. + */ + public Builder setParent(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + parent_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + /** + * string parent = 5; + * @return This builder for chaining. + */ + public Builder clearParent() { + parent_ = getDefaultInstance().getParent(); + bitField0_ = (bitField0_ & ~0x00000010); + onChanged(); + return this; + } + + /** + * string parent = 5; + * @param value The bytes for parent to set. + * @return This builder for chaining. + */ + public Builder setParentBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + parent_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.Component) + } + + // @@protoc_insertion_point(class_scope:context.Component) + private static final context.ContextOuterClass.Component DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.Component(); + } + + public static context.ContextOuterClass.Component getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public Component parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.Component getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface DeviceConfigOrBuilder extends // @@protoc_insertion_point(interface_extends:context.DeviceConfig) + com.google.protobuf.MessageOrBuilder { + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + java.util.List getConfigRulesList(); + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + context.ContextOuterClass.ConfigRule getConfigRules(int index); + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + int getConfigRulesCount(); + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + java.util.List getConfigRulesOrBuilderList(); + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + context.ContextOuterClass.ConfigRuleOrBuilder getConfigRulesOrBuilder(int index); + } + + /** + * Protobuf type {@code context.DeviceConfig} + */ + public static final class DeviceConfig extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.DeviceConfig) + DeviceConfigOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use DeviceConfig.newBuilder() to construct. + private DeviceConfig(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private DeviceConfig() { + configRules_ = java.util.Collections.emptyList(); + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new DeviceConfig(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_DeviceConfig_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_DeviceConfig_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.DeviceConfig.class, context.ContextOuterClass.DeviceConfig.Builder.class); + } + + public static final int CONFIG_RULES_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private java.util.List configRules_; + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + @java.lang.Override + public java.util.List getConfigRulesList() { + return configRules_; + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + @java.lang.Override + public java.util.List getConfigRulesOrBuilderList() { + return configRules_; + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + @java.lang.Override + public int getConfigRulesCount() { + return configRules_.size(); + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + @java.lang.Override + public context.ContextOuterClass.ConfigRule getConfigRules(int index) { + return configRules_.get(index); + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + @java.lang.Override + public context.ContextOuterClass.ConfigRuleOrBuilder getConfigRulesOrBuilder(int index) { + return configRules_.get(index); + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + for (int i = 0; i < configRules_.size(); i++) { + output.writeMessage(1, configRules_.get(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + for (int i = 0; i < configRules_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, configRules_.get(i)); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.DeviceConfig)) { + return super.equals(obj); + } + context.ContextOuterClass.DeviceConfig other = (context.ContextOuterClass.DeviceConfig) obj; + if (!getConfigRulesList().equals(other.getConfigRulesList())) + return false; + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getConfigRulesCount() > 0) { + hash = (37 * hash) + CONFIG_RULES_FIELD_NUMBER; + hash = (53 * hash) + getConfigRulesList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.DeviceConfig parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.DeviceConfig parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.DeviceConfig parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.DeviceConfig parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.DeviceConfig parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.DeviceConfig parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.DeviceConfig parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.DeviceConfig parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.DeviceConfig parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.DeviceConfig parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.DeviceConfig parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.DeviceConfig parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.DeviceConfig prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code context.DeviceConfig} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.DeviceConfig) + context.ContextOuterClass.DeviceConfigOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_DeviceConfig_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_DeviceConfig_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.DeviceConfig.class, context.ContextOuterClass.DeviceConfig.Builder.class); + } + + // Construct using context.ContextOuterClass.DeviceConfig.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + if (configRulesBuilder_ == null) { + configRules_ = java.util.Collections.emptyList(); + } else { + configRules_ = null; + configRulesBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_DeviceConfig_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.DeviceConfig getDefaultInstanceForType() { + return context.ContextOuterClass.DeviceConfig.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.DeviceConfig build() { + context.ContextOuterClass.DeviceConfig result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.DeviceConfig buildPartial() { + context.ContextOuterClass.DeviceConfig result = new context.ContextOuterClass.DeviceConfig(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(context.ContextOuterClass.DeviceConfig result) { + if (configRulesBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + configRules_ = java.util.Collections.unmodifiableList(configRules_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.configRules_ = configRules_; + } else { + result.configRules_ = configRulesBuilder_.build(); + } + } + + private void buildPartial0(context.ContextOuterClass.DeviceConfig result) { + int from_bitField0_ = bitField0_; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.DeviceConfig) { + return mergeFrom((context.ContextOuterClass.DeviceConfig) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.DeviceConfig other) { + if (other == context.ContextOuterClass.DeviceConfig.getDefaultInstance()) + return this; + if (configRulesBuilder_ == null) { + if (!other.configRules_.isEmpty()) { + if (configRules_.isEmpty()) { + configRules_ = other.configRules_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureConfigRulesIsMutable(); + configRules_.addAll(other.configRules_); + } + onChanged(); + } + } else { + if (!other.configRules_.isEmpty()) { + if (configRulesBuilder_.isEmpty()) { + configRulesBuilder_.dispose(); + configRulesBuilder_ = null; + configRules_ = other.configRules_; + bitField0_ = (bitField0_ & ~0x00000001); + configRulesBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getConfigRulesFieldBuilder() : null; + } else { + configRulesBuilder_.addAllMessages(other.configRules_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + context.ContextOuterClass.ConfigRule m = input.readMessage(context.ContextOuterClass.ConfigRule.parser(), extensionRegistry); + if (configRulesBuilder_ == null) { + ensureConfigRulesIsMutable(); + configRules_.add(m); + } else { + configRulesBuilder_.addMessage(m); + } + break; + } + // case 10 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private java.util.List configRules_ = java.util.Collections.emptyList(); + + private void ensureConfigRulesIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + configRules_ = new java.util.ArrayList(configRules_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3 configRulesBuilder_; + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + public java.util.List getConfigRulesList() { + if (configRulesBuilder_ == null) { + return java.util.Collections.unmodifiableList(configRules_); + } else { + return configRulesBuilder_.getMessageList(); + } + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + public int getConfigRulesCount() { + if (configRulesBuilder_ == null) { + return configRules_.size(); + } else { + return configRulesBuilder_.getCount(); + } + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + public context.ContextOuterClass.ConfigRule getConfigRules(int index) { + if (configRulesBuilder_ == null) { + return configRules_.get(index); + } else { + return configRulesBuilder_.getMessage(index); + } + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + public Builder setConfigRules(int index, context.ContextOuterClass.ConfigRule value) { + if (configRulesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureConfigRulesIsMutable(); + configRules_.set(index, value); + onChanged(); + } else { + configRulesBuilder_.setMessage(index, value); + } + return this; + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + public Builder setConfigRules(int index, context.ContextOuterClass.ConfigRule.Builder builderForValue) { + if (configRulesBuilder_ == null) { + ensureConfigRulesIsMutable(); + configRules_.set(index, builderForValue.build()); + onChanged(); + } else { + configRulesBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + public Builder addConfigRules(context.ContextOuterClass.ConfigRule value) { + if (configRulesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureConfigRulesIsMutable(); + configRules_.add(value); + onChanged(); + } else { + configRulesBuilder_.addMessage(value); + } + return this; + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + public Builder addConfigRules(int index, context.ContextOuterClass.ConfigRule value) { + if (configRulesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureConfigRulesIsMutable(); + configRules_.add(index, value); + onChanged(); + } else { + configRulesBuilder_.addMessage(index, value); + } + return this; + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + public Builder addConfigRules(context.ContextOuterClass.ConfigRule.Builder builderForValue) { + if (configRulesBuilder_ == null) { + ensureConfigRulesIsMutable(); + configRules_.add(builderForValue.build()); + onChanged(); + } else { + configRulesBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + public Builder addConfigRules(int index, context.ContextOuterClass.ConfigRule.Builder builderForValue) { + if (configRulesBuilder_ == null) { + ensureConfigRulesIsMutable(); + configRules_.add(index, builderForValue.build()); + onChanged(); + } else { + configRulesBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + public Builder addAllConfigRules(java.lang.Iterable values) { + if (configRulesBuilder_ == null) { + ensureConfigRulesIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, configRules_); + onChanged(); + } else { + configRulesBuilder_.addAllMessages(values); + } + return this; + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + public Builder clearConfigRules() { + if (configRulesBuilder_ == null) { + configRules_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + configRulesBuilder_.clear(); + } + return this; + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + public Builder removeConfigRules(int index) { + if (configRulesBuilder_ == null) { + ensureConfigRulesIsMutable(); + configRules_.remove(index); + onChanged(); + } else { + configRulesBuilder_.remove(index); + } + return this; + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + public context.ContextOuterClass.ConfigRule.Builder getConfigRulesBuilder(int index) { + return getConfigRulesFieldBuilder().getBuilder(index); + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + public context.ContextOuterClass.ConfigRuleOrBuilder getConfigRulesOrBuilder(int index) { + if (configRulesBuilder_ == null) { + return configRules_.get(index); + } else { + return configRulesBuilder_.getMessageOrBuilder(index); + } + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + public java.util.List getConfigRulesOrBuilderList() { + if (configRulesBuilder_ != null) { + return configRulesBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(configRules_); + } + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + public context.ContextOuterClass.ConfigRule.Builder addConfigRulesBuilder() { + return getConfigRulesFieldBuilder().addBuilder(context.ContextOuterClass.ConfigRule.getDefaultInstance()); + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + public context.ContextOuterClass.ConfigRule.Builder addConfigRulesBuilder(int index) { + return getConfigRulesFieldBuilder().addBuilder(index, context.ContextOuterClass.ConfigRule.getDefaultInstance()); + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + public java.util.List getConfigRulesBuilderList() { + return getConfigRulesFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3 getConfigRulesFieldBuilder() { + if (configRulesBuilder_ == null) { + configRulesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3(configRules_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean()); + configRules_ = null; + } + return configRulesBuilder_; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.DeviceConfig) + } + + // @@protoc_insertion_point(class_scope:context.DeviceConfig) + private static final context.ContextOuterClass.DeviceConfig DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.DeviceConfig(); + } + + public static context.ContextOuterClass.DeviceConfig getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public DeviceConfig parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.DeviceConfig getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface DeviceIdListOrBuilder extends // @@protoc_insertion_point(interface_extends:context.DeviceIdList) + com.google.protobuf.MessageOrBuilder { + + /** + * repeated .context.DeviceId device_ids = 1; + */ + java.util.List getDeviceIdsList(); + + /** + * repeated .context.DeviceId device_ids = 1; + */ + context.ContextOuterClass.DeviceId getDeviceIds(int index); + + /** + * repeated .context.DeviceId device_ids = 1; + */ + int getDeviceIdsCount(); + + /** + * repeated .context.DeviceId device_ids = 1; + */ + java.util.List getDeviceIdsOrBuilderList(); + + /** + * repeated .context.DeviceId device_ids = 1; + */ + context.ContextOuterClass.DeviceIdOrBuilder getDeviceIdsOrBuilder(int index); + } + + /** + * Protobuf type {@code context.DeviceIdList} + */ + public static final class DeviceIdList extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.DeviceIdList) + DeviceIdListOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use DeviceIdList.newBuilder() to construct. + private DeviceIdList(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private DeviceIdList() { + deviceIds_ = java.util.Collections.emptyList(); + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new DeviceIdList(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_DeviceIdList_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_DeviceIdList_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.DeviceIdList.class, context.ContextOuterClass.DeviceIdList.Builder.class); + } + + public static final int DEVICE_IDS_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private java.util.List deviceIds_; + + /** + * repeated .context.DeviceId device_ids = 1; + */ + @java.lang.Override + public java.util.List getDeviceIdsList() { + return deviceIds_; + } + + /** + * repeated .context.DeviceId device_ids = 1; + */ + @java.lang.Override + public java.util.List getDeviceIdsOrBuilderList() { + return deviceIds_; + } + + /** + * repeated .context.DeviceId device_ids = 1; + */ + @java.lang.Override + public int getDeviceIdsCount() { + return deviceIds_.size(); + } + + /** + * repeated .context.DeviceId device_ids = 1; + */ + @java.lang.Override + public context.ContextOuterClass.DeviceId getDeviceIds(int index) { + return deviceIds_.get(index); + } + + /** + * repeated .context.DeviceId device_ids = 1; + */ + @java.lang.Override + public context.ContextOuterClass.DeviceIdOrBuilder getDeviceIdsOrBuilder(int index) { + return deviceIds_.get(index); + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + for (int i = 0; i < deviceIds_.size(); i++) { + output.writeMessage(1, deviceIds_.get(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + for (int i = 0; i < deviceIds_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, deviceIds_.get(i)); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.DeviceIdList)) { + return super.equals(obj); + } + context.ContextOuterClass.DeviceIdList other = (context.ContextOuterClass.DeviceIdList) obj; + if (!getDeviceIdsList().equals(other.getDeviceIdsList())) + return false; + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getDeviceIdsCount() > 0) { + hash = (37 * hash) + DEVICE_IDS_FIELD_NUMBER; + hash = (53 * hash) + getDeviceIdsList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.DeviceIdList parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.DeviceIdList parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.DeviceIdList parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.DeviceIdList parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.DeviceIdList parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.DeviceIdList parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.DeviceIdList parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.DeviceIdList parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.DeviceIdList parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.DeviceIdList parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.DeviceIdList parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.DeviceIdList parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.DeviceIdList prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code context.DeviceIdList} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.DeviceIdList) + context.ContextOuterClass.DeviceIdListOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_DeviceIdList_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_DeviceIdList_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.DeviceIdList.class, context.ContextOuterClass.DeviceIdList.Builder.class); + } + + // Construct using context.ContextOuterClass.DeviceIdList.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + if (deviceIdsBuilder_ == null) { + deviceIds_ = java.util.Collections.emptyList(); + } else { + deviceIds_ = null; + deviceIdsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_DeviceIdList_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.DeviceIdList getDefaultInstanceForType() { + return context.ContextOuterClass.DeviceIdList.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.DeviceIdList build() { + context.ContextOuterClass.DeviceIdList result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.DeviceIdList buildPartial() { + context.ContextOuterClass.DeviceIdList result = new context.ContextOuterClass.DeviceIdList(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(context.ContextOuterClass.DeviceIdList result) { + if (deviceIdsBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + deviceIds_ = java.util.Collections.unmodifiableList(deviceIds_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.deviceIds_ = deviceIds_; + } else { + result.deviceIds_ = deviceIdsBuilder_.build(); + } + } + + private void buildPartial0(context.ContextOuterClass.DeviceIdList result) { + int from_bitField0_ = bitField0_; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.DeviceIdList) { + return mergeFrom((context.ContextOuterClass.DeviceIdList) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.DeviceIdList other) { + if (other == context.ContextOuterClass.DeviceIdList.getDefaultInstance()) + return this; + if (deviceIdsBuilder_ == null) { + if (!other.deviceIds_.isEmpty()) { + if (deviceIds_.isEmpty()) { + deviceIds_ = other.deviceIds_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureDeviceIdsIsMutable(); + deviceIds_.addAll(other.deviceIds_); + } + onChanged(); + } + } else { + if (!other.deviceIds_.isEmpty()) { + if (deviceIdsBuilder_.isEmpty()) { + deviceIdsBuilder_.dispose(); + deviceIdsBuilder_ = null; + deviceIds_ = other.deviceIds_; + bitField0_ = (bitField0_ & ~0x00000001); + deviceIdsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getDeviceIdsFieldBuilder() : null; + } else { + deviceIdsBuilder_.addAllMessages(other.deviceIds_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + context.ContextOuterClass.DeviceId m = input.readMessage(context.ContextOuterClass.DeviceId.parser(), extensionRegistry); + if (deviceIdsBuilder_ == null) { + ensureDeviceIdsIsMutable(); + deviceIds_.add(m); + } else { + deviceIdsBuilder_.addMessage(m); + } + break; + } + // case 10 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private java.util.List deviceIds_ = java.util.Collections.emptyList(); + + private void ensureDeviceIdsIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + deviceIds_ = new java.util.ArrayList(deviceIds_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3 deviceIdsBuilder_; + + /** + * repeated .context.DeviceId device_ids = 1; + */ + public java.util.List getDeviceIdsList() { + if (deviceIdsBuilder_ == null) { + return java.util.Collections.unmodifiableList(deviceIds_); + } else { + return deviceIdsBuilder_.getMessageList(); + } + } + + /** + * repeated .context.DeviceId device_ids = 1; + */ + public int getDeviceIdsCount() { + if (deviceIdsBuilder_ == null) { + return deviceIds_.size(); + } else { + return deviceIdsBuilder_.getCount(); + } + } + + /** + * repeated .context.DeviceId device_ids = 1; + */ + public context.ContextOuterClass.DeviceId getDeviceIds(int index) { + if (deviceIdsBuilder_ == null) { + return deviceIds_.get(index); + } else { + return deviceIdsBuilder_.getMessage(index); + } + } + + /** + * repeated .context.DeviceId device_ids = 1; + */ + public Builder setDeviceIds(int index, context.ContextOuterClass.DeviceId value) { + if (deviceIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureDeviceIdsIsMutable(); + deviceIds_.set(index, value); + onChanged(); + } else { + deviceIdsBuilder_.setMessage(index, value); + } + return this; + } + + /** + * repeated .context.DeviceId device_ids = 1; + */ + public Builder setDeviceIds(int index, context.ContextOuterClass.DeviceId.Builder builderForValue) { + if (deviceIdsBuilder_ == null) { + ensureDeviceIdsIsMutable(); + deviceIds_.set(index, builderForValue.build()); + onChanged(); + } else { + deviceIdsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.DeviceId device_ids = 1; + */ + public Builder addDeviceIds(context.ContextOuterClass.DeviceId value) { + if (deviceIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureDeviceIdsIsMutable(); + deviceIds_.add(value); + onChanged(); + } else { + deviceIdsBuilder_.addMessage(value); + } + return this; + } + + /** + * repeated .context.DeviceId device_ids = 1; + */ + public Builder addDeviceIds(int index, context.ContextOuterClass.DeviceId value) { + if (deviceIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureDeviceIdsIsMutable(); + deviceIds_.add(index, value); + onChanged(); + } else { + deviceIdsBuilder_.addMessage(index, value); + } + return this; + } + + /** + * repeated .context.DeviceId device_ids = 1; + */ + public Builder addDeviceIds(context.ContextOuterClass.DeviceId.Builder builderForValue) { + if (deviceIdsBuilder_ == null) { + ensureDeviceIdsIsMutable(); + deviceIds_.add(builderForValue.build()); + onChanged(); + } else { + deviceIdsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * repeated .context.DeviceId device_ids = 1; + */ + public Builder addDeviceIds(int index, context.ContextOuterClass.DeviceId.Builder builderForValue) { + if (deviceIdsBuilder_ == null) { + ensureDeviceIdsIsMutable(); + deviceIds_.add(index, builderForValue.build()); + onChanged(); + } else { + deviceIdsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.DeviceId device_ids = 1; + */ + public Builder addAllDeviceIds(java.lang.Iterable values) { + if (deviceIdsBuilder_ == null) { + ensureDeviceIdsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, deviceIds_); + onChanged(); + } else { + deviceIdsBuilder_.addAllMessages(values); + } + return this; + } + + /** + * repeated .context.DeviceId device_ids = 1; + */ + public Builder clearDeviceIds() { + if (deviceIdsBuilder_ == null) { + deviceIds_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + deviceIdsBuilder_.clear(); + } + return this; + } + + /** + * repeated .context.DeviceId device_ids = 1; + */ + public Builder removeDeviceIds(int index) { + if (deviceIdsBuilder_ == null) { + ensureDeviceIdsIsMutable(); + deviceIds_.remove(index); + onChanged(); + } else { + deviceIdsBuilder_.remove(index); + } + return this; + } + + /** + * repeated .context.DeviceId device_ids = 1; + */ + public context.ContextOuterClass.DeviceId.Builder getDeviceIdsBuilder(int index) { + return getDeviceIdsFieldBuilder().getBuilder(index); + } + + /** + * repeated .context.DeviceId device_ids = 1; + */ + public context.ContextOuterClass.DeviceIdOrBuilder getDeviceIdsOrBuilder(int index) { + if (deviceIdsBuilder_ == null) { + return deviceIds_.get(index); + } else { + return deviceIdsBuilder_.getMessageOrBuilder(index); + } + } + + /** + * repeated .context.DeviceId device_ids = 1; + */ + public java.util.List getDeviceIdsOrBuilderList() { + if (deviceIdsBuilder_ != null) { + return deviceIdsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(deviceIds_); + } + } + + /** + * repeated .context.DeviceId device_ids = 1; + */ + public context.ContextOuterClass.DeviceId.Builder addDeviceIdsBuilder() { + return getDeviceIdsFieldBuilder().addBuilder(context.ContextOuterClass.DeviceId.getDefaultInstance()); + } + + /** + * repeated .context.DeviceId device_ids = 1; + */ + public context.ContextOuterClass.DeviceId.Builder addDeviceIdsBuilder(int index) { + return getDeviceIdsFieldBuilder().addBuilder(index, context.ContextOuterClass.DeviceId.getDefaultInstance()); + } + + /** + * repeated .context.DeviceId device_ids = 1; + */ + public java.util.List getDeviceIdsBuilderList() { + return getDeviceIdsFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3 getDeviceIdsFieldBuilder() { + if (deviceIdsBuilder_ == null) { + deviceIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3(deviceIds_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean()); + deviceIds_ = null; + } + return deviceIdsBuilder_; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.DeviceIdList) + } + + // @@protoc_insertion_point(class_scope:context.DeviceIdList) + private static final context.ContextOuterClass.DeviceIdList DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.DeviceIdList(); + } + + public static context.ContextOuterClass.DeviceIdList getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public DeviceIdList parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.DeviceIdList getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface DeviceListOrBuilder extends // @@protoc_insertion_point(interface_extends:context.DeviceList) + com.google.protobuf.MessageOrBuilder { + + /** + * repeated .context.Device devices = 1; + */ + java.util.List getDevicesList(); + + /** + * repeated .context.Device devices = 1; + */ + context.ContextOuterClass.Device getDevices(int index); + + /** + * repeated .context.Device devices = 1; + */ + int getDevicesCount(); + + /** + * repeated .context.Device devices = 1; + */ + java.util.List getDevicesOrBuilderList(); + + /** + * repeated .context.Device devices = 1; + */ + context.ContextOuterClass.DeviceOrBuilder getDevicesOrBuilder(int index); + } + + /** + * Protobuf type {@code context.DeviceList} + */ + public static final class DeviceList extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.DeviceList) + DeviceListOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use DeviceList.newBuilder() to construct. + private DeviceList(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private DeviceList() { + devices_ = java.util.Collections.emptyList(); + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new DeviceList(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_DeviceList_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_DeviceList_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.DeviceList.class, context.ContextOuterClass.DeviceList.Builder.class); + } + + public static final int DEVICES_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private java.util.List devices_; + + /** + * repeated .context.Device devices = 1; + */ + @java.lang.Override + public java.util.List getDevicesList() { + return devices_; + } + + /** + * repeated .context.Device devices = 1; + */ + @java.lang.Override + public java.util.List getDevicesOrBuilderList() { + return devices_; + } + + /** + * repeated .context.Device devices = 1; + */ + @java.lang.Override + public int getDevicesCount() { + return devices_.size(); + } + + /** + * repeated .context.Device devices = 1; + */ + @java.lang.Override + public context.ContextOuterClass.Device getDevices(int index) { + return devices_.get(index); + } + + /** + * repeated .context.Device devices = 1; + */ + @java.lang.Override + public context.ContextOuterClass.DeviceOrBuilder getDevicesOrBuilder(int index) { + return devices_.get(index); + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + for (int i = 0; i < devices_.size(); i++) { + output.writeMessage(1, devices_.get(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + for (int i = 0; i < devices_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, devices_.get(i)); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.DeviceList)) { + return super.equals(obj); + } + context.ContextOuterClass.DeviceList other = (context.ContextOuterClass.DeviceList) obj; + if (!getDevicesList().equals(other.getDevicesList())) + return false; + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getDevicesCount() > 0) { + hash = (37 * hash) + DEVICES_FIELD_NUMBER; + hash = (53 * hash) + getDevicesList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.DeviceList parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.DeviceList parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.DeviceList parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.DeviceList parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.DeviceList parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.DeviceList parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.DeviceList parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.DeviceList parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.DeviceList parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.DeviceList parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.DeviceList parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.DeviceList parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.DeviceList prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code context.DeviceList} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.DeviceList) + context.ContextOuterClass.DeviceListOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_DeviceList_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_DeviceList_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.DeviceList.class, context.ContextOuterClass.DeviceList.Builder.class); + } + + // Construct using context.ContextOuterClass.DeviceList.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + if (devicesBuilder_ == null) { + devices_ = java.util.Collections.emptyList(); + } else { + devices_ = null; + devicesBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_DeviceList_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.DeviceList getDefaultInstanceForType() { + return context.ContextOuterClass.DeviceList.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.DeviceList build() { + context.ContextOuterClass.DeviceList result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.DeviceList buildPartial() { + context.ContextOuterClass.DeviceList result = new context.ContextOuterClass.DeviceList(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(context.ContextOuterClass.DeviceList result) { + if (devicesBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + devices_ = java.util.Collections.unmodifiableList(devices_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.devices_ = devices_; + } else { + result.devices_ = devicesBuilder_.build(); + } + } + + private void buildPartial0(context.ContextOuterClass.DeviceList result) { + int from_bitField0_ = bitField0_; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.DeviceList) { + return mergeFrom((context.ContextOuterClass.DeviceList) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.DeviceList other) { + if (other == context.ContextOuterClass.DeviceList.getDefaultInstance()) + return this; + if (devicesBuilder_ == null) { + if (!other.devices_.isEmpty()) { + if (devices_.isEmpty()) { + devices_ = other.devices_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureDevicesIsMutable(); + devices_.addAll(other.devices_); + } + onChanged(); + } + } else { + if (!other.devices_.isEmpty()) { + if (devicesBuilder_.isEmpty()) { + devicesBuilder_.dispose(); + devicesBuilder_ = null; + devices_ = other.devices_; + bitField0_ = (bitField0_ & ~0x00000001); + devicesBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getDevicesFieldBuilder() : null; + } else { + devicesBuilder_.addAllMessages(other.devices_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + context.ContextOuterClass.Device m = input.readMessage(context.ContextOuterClass.Device.parser(), extensionRegistry); + if (devicesBuilder_ == null) { + ensureDevicesIsMutable(); + devices_.add(m); + } else { + devicesBuilder_.addMessage(m); + } + break; + } + // case 10 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private java.util.List devices_ = java.util.Collections.emptyList(); + + private void ensureDevicesIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + devices_ = new java.util.ArrayList(devices_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3 devicesBuilder_; + + /** + * repeated .context.Device devices = 1; + */ + public java.util.List getDevicesList() { + if (devicesBuilder_ == null) { + return java.util.Collections.unmodifiableList(devices_); + } else { + return devicesBuilder_.getMessageList(); + } + } + + /** + * repeated .context.Device devices = 1; + */ + public int getDevicesCount() { + if (devicesBuilder_ == null) { + return devices_.size(); + } else { + return devicesBuilder_.getCount(); + } + } + + /** + * repeated .context.Device devices = 1; + */ + public context.ContextOuterClass.Device getDevices(int index) { + if (devicesBuilder_ == null) { + return devices_.get(index); + } else { + return devicesBuilder_.getMessage(index); + } + } + + /** + * repeated .context.Device devices = 1; + */ + public Builder setDevices(int index, context.ContextOuterClass.Device value) { + if (devicesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureDevicesIsMutable(); + devices_.set(index, value); + onChanged(); + } else { + devicesBuilder_.setMessage(index, value); + } + return this; + } + + /** + * repeated .context.Device devices = 1; + */ + public Builder setDevices(int index, context.ContextOuterClass.Device.Builder builderForValue) { + if (devicesBuilder_ == null) { + ensureDevicesIsMutable(); + devices_.set(index, builderForValue.build()); + onChanged(); + } else { + devicesBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.Device devices = 1; + */ + public Builder addDevices(context.ContextOuterClass.Device value) { + if (devicesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureDevicesIsMutable(); + devices_.add(value); + onChanged(); + } else { + devicesBuilder_.addMessage(value); + } + return this; + } + + /** + * repeated .context.Device devices = 1; + */ + public Builder addDevices(int index, context.ContextOuterClass.Device value) { + if (devicesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureDevicesIsMutable(); + devices_.add(index, value); + onChanged(); + } else { + devicesBuilder_.addMessage(index, value); + } + return this; + } + + /** + * repeated .context.Device devices = 1; + */ + public Builder addDevices(context.ContextOuterClass.Device.Builder builderForValue) { + if (devicesBuilder_ == null) { + ensureDevicesIsMutable(); + devices_.add(builderForValue.build()); + onChanged(); + } else { + devicesBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * repeated .context.Device devices = 1; + */ + public Builder addDevices(int index, context.ContextOuterClass.Device.Builder builderForValue) { + if (devicesBuilder_ == null) { + ensureDevicesIsMutable(); + devices_.add(index, builderForValue.build()); + onChanged(); + } else { + devicesBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.Device devices = 1; + */ + public Builder addAllDevices(java.lang.Iterable values) { + if (devicesBuilder_ == null) { + ensureDevicesIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, devices_); + onChanged(); + } else { + devicesBuilder_.addAllMessages(values); + } + return this; + } + + /** + * repeated .context.Device devices = 1; + */ + public Builder clearDevices() { + if (devicesBuilder_ == null) { + devices_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + devicesBuilder_.clear(); + } + return this; + } + + /** + * repeated .context.Device devices = 1; + */ + public Builder removeDevices(int index) { + if (devicesBuilder_ == null) { + ensureDevicesIsMutable(); + devices_.remove(index); + onChanged(); + } else { + devicesBuilder_.remove(index); + } + return this; + } + + /** + * repeated .context.Device devices = 1; + */ + public context.ContextOuterClass.Device.Builder getDevicesBuilder(int index) { + return getDevicesFieldBuilder().getBuilder(index); + } + + /** + * repeated .context.Device devices = 1; + */ + public context.ContextOuterClass.DeviceOrBuilder getDevicesOrBuilder(int index) { + if (devicesBuilder_ == null) { + return devices_.get(index); + } else { + return devicesBuilder_.getMessageOrBuilder(index); + } + } + + /** + * repeated .context.Device devices = 1; + */ + public java.util.List getDevicesOrBuilderList() { + if (devicesBuilder_ != null) { + return devicesBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(devices_); + } + } + + /** + * repeated .context.Device devices = 1; + */ + public context.ContextOuterClass.Device.Builder addDevicesBuilder() { + return getDevicesFieldBuilder().addBuilder(context.ContextOuterClass.Device.getDefaultInstance()); + } + + /** + * repeated .context.Device devices = 1; + */ + public context.ContextOuterClass.Device.Builder addDevicesBuilder(int index) { + return getDevicesFieldBuilder().addBuilder(index, context.ContextOuterClass.Device.getDefaultInstance()); + } + + /** + * repeated .context.Device devices = 1; + */ + public java.util.List getDevicesBuilderList() { + return getDevicesFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3 getDevicesFieldBuilder() { + if (devicesBuilder_ == null) { + devicesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3(devices_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean()); + devices_ = null; + } + return devicesBuilder_; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.DeviceList) + } + + // @@protoc_insertion_point(class_scope:context.DeviceList) + private static final context.ContextOuterClass.DeviceList DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.DeviceList(); + } + + public static context.ContextOuterClass.DeviceList getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public DeviceList parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.DeviceList getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface DeviceFilterOrBuilder extends // @@protoc_insertion_point(interface_extends:context.DeviceFilter) + com.google.protobuf.MessageOrBuilder { + + /** + * .context.DeviceIdList device_ids = 1; + * @return Whether the deviceIds field is set. + */ + boolean hasDeviceIds(); + + /** + * .context.DeviceIdList device_ids = 1; + * @return The deviceIds. + */ + context.ContextOuterClass.DeviceIdList getDeviceIds(); + + /** + * .context.DeviceIdList device_ids = 1; + */ + context.ContextOuterClass.DeviceIdListOrBuilder getDeviceIdsOrBuilder(); + + /** + * bool include_endpoints = 2; + * @return The includeEndpoints. + */ + boolean getIncludeEndpoints(); + + /** + * bool include_config_rules = 3; + * @return The includeConfigRules. + */ + boolean getIncludeConfigRules(); + + /** + * bool include_components = 4; + * @return The includeComponents. + */ + boolean getIncludeComponents(); + } + + /** + * Protobuf type {@code context.DeviceFilter} + */ + public static final class DeviceFilter extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.DeviceFilter) + DeviceFilterOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use DeviceFilter.newBuilder() to construct. + private DeviceFilter(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private DeviceFilter() { + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new DeviceFilter(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_DeviceFilter_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_DeviceFilter_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.DeviceFilter.class, context.ContextOuterClass.DeviceFilter.Builder.class); + } + + public static final int DEVICE_IDS_FIELD_NUMBER = 1; + + private context.ContextOuterClass.DeviceIdList deviceIds_; + + /** + * .context.DeviceIdList device_ids = 1; + * @return Whether the deviceIds field is set. + */ + @java.lang.Override + public boolean hasDeviceIds() { + return deviceIds_ != null; + } + + /** + * .context.DeviceIdList device_ids = 1; + * @return The deviceIds. + */ + @java.lang.Override + public context.ContextOuterClass.DeviceIdList getDeviceIds() { + return deviceIds_ == null ? context.ContextOuterClass.DeviceIdList.getDefaultInstance() : deviceIds_; + } + + /** + * .context.DeviceIdList device_ids = 1; + */ + @java.lang.Override + public context.ContextOuterClass.DeviceIdListOrBuilder getDeviceIdsOrBuilder() { + return deviceIds_ == null ? context.ContextOuterClass.DeviceIdList.getDefaultInstance() : deviceIds_; + } + + public static final int INCLUDE_ENDPOINTS_FIELD_NUMBER = 2; + + private boolean includeEndpoints_ = false; + + /** + * bool include_endpoints = 2; + * @return The includeEndpoints. + */ + @java.lang.Override + public boolean getIncludeEndpoints() { + return includeEndpoints_; + } + + public static final int INCLUDE_CONFIG_RULES_FIELD_NUMBER = 3; + + private boolean includeConfigRules_ = false; + + /** + * bool include_config_rules = 3; + * @return The includeConfigRules. + */ + @java.lang.Override + public boolean getIncludeConfigRules() { + return includeConfigRules_; + } + + public static final int INCLUDE_COMPONENTS_FIELD_NUMBER = 4; + + private boolean includeComponents_ = false; + + /** + * bool include_components = 4; + * @return The includeComponents. + */ + @java.lang.Override + public boolean getIncludeComponents() { + return includeComponents_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (deviceIds_ != null) { + output.writeMessage(1, getDeviceIds()); + } + if (includeEndpoints_ != false) { + output.writeBool(2, includeEndpoints_); + } + if (includeConfigRules_ != false) { + output.writeBool(3, includeConfigRules_); + } + if (includeComponents_ != false) { + output.writeBool(4, includeComponents_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + if (deviceIds_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getDeviceIds()); + } + if (includeEndpoints_ != false) { + size += com.google.protobuf.CodedOutputStream.computeBoolSize(2, includeEndpoints_); + } + if (includeConfigRules_ != false) { + size += com.google.protobuf.CodedOutputStream.computeBoolSize(3, includeConfigRules_); + } + if (includeComponents_ != false) { + size += com.google.protobuf.CodedOutputStream.computeBoolSize(4, includeComponents_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.DeviceFilter)) { + return super.equals(obj); + } + context.ContextOuterClass.DeviceFilter other = (context.ContextOuterClass.DeviceFilter) obj; + if (hasDeviceIds() != other.hasDeviceIds()) + return false; + if (hasDeviceIds()) { + if (!getDeviceIds().equals(other.getDeviceIds())) + return false; + } + if (getIncludeEndpoints() != other.getIncludeEndpoints()) + return false; + if (getIncludeConfigRules() != other.getIncludeConfigRules()) + return false; + if (getIncludeComponents() != other.getIncludeComponents()) + return false; + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasDeviceIds()) { + hash = (37 * hash) + DEVICE_IDS_FIELD_NUMBER; + hash = (53 * hash) + getDeviceIds().hashCode(); + } + hash = (37 * hash) + INCLUDE_ENDPOINTS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getIncludeEndpoints()); + hash = (37 * hash) + INCLUDE_CONFIG_RULES_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getIncludeConfigRules()); + hash = (37 * hash) + INCLUDE_COMPONENTS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getIncludeComponents()); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.DeviceFilter parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.DeviceFilter parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.DeviceFilter parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.DeviceFilter parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.DeviceFilter parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.DeviceFilter parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.DeviceFilter parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.DeviceFilter parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.DeviceFilter parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.DeviceFilter parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.DeviceFilter parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.DeviceFilter parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.DeviceFilter prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code context.DeviceFilter} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.DeviceFilter) + context.ContextOuterClass.DeviceFilterOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_DeviceFilter_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_DeviceFilter_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.DeviceFilter.class, context.ContextOuterClass.DeviceFilter.Builder.class); + } + + // Construct using context.ContextOuterClass.DeviceFilter.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + deviceIds_ = null; + if (deviceIdsBuilder_ != null) { + deviceIdsBuilder_.dispose(); + deviceIdsBuilder_ = null; + } + includeEndpoints_ = false; + includeConfigRules_ = false; + includeComponents_ = false; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_DeviceFilter_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.DeviceFilter getDefaultInstanceForType() { + return context.ContextOuterClass.DeviceFilter.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.DeviceFilter build() { + context.ContextOuterClass.DeviceFilter result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.DeviceFilter buildPartial() { + context.ContextOuterClass.DeviceFilter result = new context.ContextOuterClass.DeviceFilter(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(context.ContextOuterClass.DeviceFilter result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.deviceIds_ = deviceIdsBuilder_ == null ? deviceIds_ : deviceIdsBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.includeEndpoints_ = includeEndpoints_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.includeConfigRules_ = includeConfigRules_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.includeComponents_ = includeComponents_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.DeviceFilter) { + return mergeFrom((context.ContextOuterClass.DeviceFilter) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.DeviceFilter other) { + if (other == context.ContextOuterClass.DeviceFilter.getDefaultInstance()) + return this; + if (other.hasDeviceIds()) { + mergeDeviceIds(other.getDeviceIds()); + } + if (other.getIncludeEndpoints() != false) { + setIncludeEndpoints(other.getIncludeEndpoints()); + } + if (other.getIncludeConfigRules() != false) { + setIncludeConfigRules(other.getIncludeConfigRules()); + } + if (other.getIncludeComponents() != false) { + setIncludeComponents(other.getIncludeComponents()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getDeviceIdsFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 16: + { + includeEndpoints_ = input.readBool(); + bitField0_ |= 0x00000002; + break; + } + // case 16 + case 24: + { + includeConfigRules_ = input.readBool(); + bitField0_ |= 0x00000004; + break; + } + // case 24 + case 32: + { + includeComponents_ = input.readBool(); + bitField0_ |= 0x00000008; + break; + } + // case 32 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private context.ContextOuterClass.DeviceIdList deviceIds_; + + private com.google.protobuf.SingleFieldBuilderV3 deviceIdsBuilder_; + + /** + * .context.DeviceIdList device_ids = 1; + * @return Whether the deviceIds field is set. + */ + public boolean hasDeviceIds() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * .context.DeviceIdList device_ids = 1; + * @return The deviceIds. + */ + public context.ContextOuterClass.DeviceIdList getDeviceIds() { + if (deviceIdsBuilder_ == null) { + return deviceIds_ == null ? context.ContextOuterClass.DeviceIdList.getDefaultInstance() : deviceIds_; + } else { + return deviceIdsBuilder_.getMessage(); + } + } + + /** + * .context.DeviceIdList device_ids = 1; + */ + public Builder setDeviceIds(context.ContextOuterClass.DeviceIdList value) { + if (deviceIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + deviceIds_ = value; + } else { + deviceIdsBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.DeviceIdList device_ids = 1; + */ + public Builder setDeviceIds(context.ContextOuterClass.DeviceIdList.Builder builderForValue) { + if (deviceIdsBuilder_ == null) { + deviceIds_ = builderForValue.build(); + } else { + deviceIdsBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.DeviceIdList device_ids = 1; + */ + public Builder mergeDeviceIds(context.ContextOuterClass.DeviceIdList value) { + if (deviceIdsBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && deviceIds_ != null && deviceIds_ != context.ContextOuterClass.DeviceIdList.getDefaultInstance()) { + getDeviceIdsBuilder().mergeFrom(value); + } else { + deviceIds_ = value; + } + } else { + deviceIdsBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.DeviceIdList device_ids = 1; + */ + public Builder clearDeviceIds() { + bitField0_ = (bitField0_ & ~0x00000001); + deviceIds_ = null; + if (deviceIdsBuilder_ != null) { + deviceIdsBuilder_.dispose(); + deviceIdsBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.DeviceIdList device_ids = 1; + */ + public context.ContextOuterClass.DeviceIdList.Builder getDeviceIdsBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getDeviceIdsFieldBuilder().getBuilder(); + } + + /** + * .context.DeviceIdList device_ids = 1; + */ + public context.ContextOuterClass.DeviceIdListOrBuilder getDeviceIdsOrBuilder() { + if (deviceIdsBuilder_ != null) { + return deviceIdsBuilder_.getMessageOrBuilder(); + } else { + return deviceIds_ == null ? context.ContextOuterClass.DeviceIdList.getDefaultInstance() : deviceIds_; + } + } + + /** + * .context.DeviceIdList device_ids = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3 getDeviceIdsFieldBuilder() { + if (deviceIdsBuilder_ == null) { + deviceIdsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getDeviceIds(), getParentForChildren(), isClean()); + deviceIds_ = null; + } + return deviceIdsBuilder_; + } + + private boolean includeEndpoints_; + + /** + * bool include_endpoints = 2; + * @return The includeEndpoints. + */ + @java.lang.Override + public boolean getIncludeEndpoints() { + return includeEndpoints_; + } + + /** + * bool include_endpoints = 2; + * @param value The includeEndpoints to set. + * @return This builder for chaining. + */ + public Builder setIncludeEndpoints(boolean value) { + includeEndpoints_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * bool include_endpoints = 2; + * @return This builder for chaining. + */ + public Builder clearIncludeEndpoints() { + bitField0_ = (bitField0_ & ~0x00000002); + includeEndpoints_ = false; + onChanged(); + return this; + } + + private boolean includeConfigRules_; + + /** + * bool include_config_rules = 3; + * @return The includeConfigRules. + */ + @java.lang.Override + public boolean getIncludeConfigRules() { + return includeConfigRules_; + } + + /** + * bool include_config_rules = 3; + * @param value The includeConfigRules to set. + * @return This builder for chaining. + */ + public Builder setIncludeConfigRules(boolean value) { + includeConfigRules_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * bool include_config_rules = 3; + * @return This builder for chaining. + */ + public Builder clearIncludeConfigRules() { + bitField0_ = (bitField0_ & ~0x00000004); + includeConfigRules_ = false; + onChanged(); + return this; + } + + private boolean includeComponents_; + + /** + * bool include_components = 4; + * @return The includeComponents. + */ + @java.lang.Override + public boolean getIncludeComponents() { + return includeComponents_; + } + + /** + * bool include_components = 4; + * @param value The includeComponents to set. + * @return This builder for chaining. + */ + public Builder setIncludeComponents(boolean value) { + includeComponents_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * bool include_components = 4; + * @return This builder for chaining. + */ + public Builder clearIncludeComponents() { + bitField0_ = (bitField0_ & ~0x00000008); + includeComponents_ = false; + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.DeviceFilter) + } + + // @@protoc_insertion_point(class_scope:context.DeviceFilter) + private static final context.ContextOuterClass.DeviceFilter DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.DeviceFilter(); + } + + public static context.ContextOuterClass.DeviceFilter getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public DeviceFilter parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.DeviceFilter getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface DeviceEventOrBuilder extends // @@protoc_insertion_point(interface_extends:context.DeviceEvent) + com.google.protobuf.MessageOrBuilder { + + /** + * .context.Event event = 1; + * @return Whether the event field is set. + */ + boolean hasEvent(); + + /** + * .context.Event event = 1; + * @return The event. + */ + context.ContextOuterClass.Event getEvent(); + + /** + * .context.Event event = 1; + */ + context.ContextOuterClass.EventOrBuilder getEventOrBuilder(); + + /** + * .context.DeviceId device_id = 2; + * @return Whether the deviceId field is set. + */ + boolean hasDeviceId(); + + /** + * .context.DeviceId device_id = 2; + * @return The deviceId. + */ + context.ContextOuterClass.DeviceId getDeviceId(); + + /** + * .context.DeviceId device_id = 2; + */ + context.ContextOuterClass.DeviceIdOrBuilder getDeviceIdOrBuilder(); + + /** + * .context.DeviceConfig device_config = 3; + * @return Whether the deviceConfig field is set. + */ + boolean hasDeviceConfig(); + + /** + * .context.DeviceConfig device_config = 3; + * @return The deviceConfig. + */ + context.ContextOuterClass.DeviceConfig getDeviceConfig(); + + /** + * .context.DeviceConfig device_config = 3; + */ + context.ContextOuterClass.DeviceConfigOrBuilder getDeviceConfigOrBuilder(); + } + + /** + * Protobuf type {@code context.DeviceEvent} + */ + public static final class DeviceEvent extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.DeviceEvent) + DeviceEventOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use DeviceEvent.newBuilder() to construct. + private DeviceEvent(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private DeviceEvent() { + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new DeviceEvent(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_DeviceEvent_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_DeviceEvent_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.DeviceEvent.class, context.ContextOuterClass.DeviceEvent.Builder.class); + } + + public static final int EVENT_FIELD_NUMBER = 1; + + private context.ContextOuterClass.Event event_; + + /** + * .context.Event event = 1; + * @return Whether the event field is set. + */ + @java.lang.Override + public boolean hasEvent() { + return event_ != null; + } + + /** + * .context.Event event = 1; + * @return The event. + */ + @java.lang.Override + public context.ContextOuterClass.Event getEvent() { + return event_ == null ? context.ContextOuterClass.Event.getDefaultInstance() : event_; + } + + /** + * .context.Event event = 1; + */ + @java.lang.Override + public context.ContextOuterClass.EventOrBuilder getEventOrBuilder() { + return event_ == null ? context.ContextOuterClass.Event.getDefaultInstance() : event_; + } + + public static final int DEVICE_ID_FIELD_NUMBER = 2; + + private context.ContextOuterClass.DeviceId deviceId_; + + /** + * .context.DeviceId device_id = 2; + * @return Whether the deviceId field is set. + */ + @java.lang.Override + public boolean hasDeviceId() { + return deviceId_ != null; + } + + /** + * .context.DeviceId device_id = 2; + * @return The deviceId. + */ + @java.lang.Override + public context.ContextOuterClass.DeviceId getDeviceId() { + return deviceId_ == null ? context.ContextOuterClass.DeviceId.getDefaultInstance() : deviceId_; + } + + /** + * .context.DeviceId device_id = 2; + */ + @java.lang.Override + public context.ContextOuterClass.DeviceIdOrBuilder getDeviceIdOrBuilder() { + return deviceId_ == null ? context.ContextOuterClass.DeviceId.getDefaultInstance() : deviceId_; + } + + public static final int DEVICE_CONFIG_FIELD_NUMBER = 3; + + private context.ContextOuterClass.DeviceConfig deviceConfig_; + + /** + * .context.DeviceConfig device_config = 3; + * @return Whether the deviceConfig field is set. + */ + @java.lang.Override + public boolean hasDeviceConfig() { + return deviceConfig_ != null; + } + + /** + * .context.DeviceConfig device_config = 3; + * @return The deviceConfig. + */ + @java.lang.Override + public context.ContextOuterClass.DeviceConfig getDeviceConfig() { + return deviceConfig_ == null ? context.ContextOuterClass.DeviceConfig.getDefaultInstance() : deviceConfig_; + } + + /** + * .context.DeviceConfig device_config = 3; + */ + @java.lang.Override + public context.ContextOuterClass.DeviceConfigOrBuilder getDeviceConfigOrBuilder() { + return deviceConfig_ == null ? context.ContextOuterClass.DeviceConfig.getDefaultInstance() : deviceConfig_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (event_ != null) { + output.writeMessage(1, getEvent()); + } + if (deviceId_ != null) { + output.writeMessage(2, getDeviceId()); + } + if (deviceConfig_ != null) { + output.writeMessage(3, getDeviceConfig()); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + if (event_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getEvent()); + } + if (deviceId_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getDeviceId()); + } + if (deviceConfig_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getDeviceConfig()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.DeviceEvent)) { + return super.equals(obj); + } + context.ContextOuterClass.DeviceEvent other = (context.ContextOuterClass.DeviceEvent) obj; + if (hasEvent() != other.hasEvent()) + return false; + if (hasEvent()) { + if (!getEvent().equals(other.getEvent())) + return false; + } + if (hasDeviceId() != other.hasDeviceId()) + return false; + if (hasDeviceId()) { + if (!getDeviceId().equals(other.getDeviceId())) + return false; + } + if (hasDeviceConfig() != other.hasDeviceConfig()) + return false; + if (hasDeviceConfig()) { + if (!getDeviceConfig().equals(other.getDeviceConfig())) + return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasEvent()) { + hash = (37 * hash) + EVENT_FIELD_NUMBER; + hash = (53 * hash) + getEvent().hashCode(); + } + if (hasDeviceId()) { + hash = (37 * hash) + DEVICE_ID_FIELD_NUMBER; + hash = (53 * hash) + getDeviceId().hashCode(); + } + if (hasDeviceConfig()) { + hash = (37 * hash) + DEVICE_CONFIG_FIELD_NUMBER; + hash = (53 * hash) + getDeviceConfig().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.DeviceEvent parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.DeviceEvent parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.DeviceEvent parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.DeviceEvent parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.DeviceEvent parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.DeviceEvent parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.DeviceEvent parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.DeviceEvent parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.DeviceEvent parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.DeviceEvent parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.DeviceEvent parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.DeviceEvent parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.DeviceEvent prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code context.DeviceEvent} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.DeviceEvent) + context.ContextOuterClass.DeviceEventOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_DeviceEvent_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_DeviceEvent_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.DeviceEvent.class, context.ContextOuterClass.DeviceEvent.Builder.class); + } + + // Construct using context.ContextOuterClass.DeviceEvent.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + event_ = null; + if (eventBuilder_ != null) { + eventBuilder_.dispose(); + eventBuilder_ = null; + } + deviceId_ = null; + if (deviceIdBuilder_ != null) { + deviceIdBuilder_.dispose(); + deviceIdBuilder_ = null; + } + deviceConfig_ = null; + if (deviceConfigBuilder_ != null) { + deviceConfigBuilder_.dispose(); + deviceConfigBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_DeviceEvent_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.DeviceEvent getDefaultInstanceForType() { + return context.ContextOuterClass.DeviceEvent.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.DeviceEvent build() { + context.ContextOuterClass.DeviceEvent result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.DeviceEvent buildPartial() { + context.ContextOuterClass.DeviceEvent result = new context.ContextOuterClass.DeviceEvent(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(context.ContextOuterClass.DeviceEvent result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.event_ = eventBuilder_ == null ? event_ : eventBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.deviceId_ = deviceIdBuilder_ == null ? deviceId_ : deviceIdBuilder_.build(); + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.deviceConfig_ = deviceConfigBuilder_ == null ? deviceConfig_ : deviceConfigBuilder_.build(); + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.DeviceEvent) { + return mergeFrom((context.ContextOuterClass.DeviceEvent) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.DeviceEvent other) { + if (other == context.ContextOuterClass.DeviceEvent.getDefaultInstance()) + return this; + if (other.hasEvent()) { + mergeEvent(other.getEvent()); + } + if (other.hasDeviceId()) { + mergeDeviceId(other.getDeviceId()); + } + if (other.hasDeviceConfig()) { + mergeDeviceConfig(other.getDeviceConfig()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getEventFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + input.readMessage(getDeviceIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000002; + break; + } + // case 18 + case 26: + { + input.readMessage(getDeviceConfigFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000004; + break; + } + // case 26 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private context.ContextOuterClass.Event event_; + + private com.google.protobuf.SingleFieldBuilderV3 eventBuilder_; + + /** + * .context.Event event = 1; + * @return Whether the event field is set. + */ + public boolean hasEvent() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * .context.Event event = 1; + * @return The event. + */ + public context.ContextOuterClass.Event getEvent() { + if (eventBuilder_ == null) { + return event_ == null ? context.ContextOuterClass.Event.getDefaultInstance() : event_; + } else { + return eventBuilder_.getMessage(); + } + } + + /** + * .context.Event event = 1; + */ + public Builder setEvent(context.ContextOuterClass.Event value) { + if (eventBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + event_ = value; + } else { + eventBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.Event event = 1; + */ + public Builder setEvent(context.ContextOuterClass.Event.Builder builderForValue) { + if (eventBuilder_ == null) { + event_ = builderForValue.build(); + } else { + eventBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.Event event = 1; + */ + public Builder mergeEvent(context.ContextOuterClass.Event value) { + if (eventBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && event_ != null && event_ != context.ContextOuterClass.Event.getDefaultInstance()) { + getEventBuilder().mergeFrom(value); + } else { + event_ = value; + } + } else { + eventBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.Event event = 1; + */ + public Builder clearEvent() { + bitField0_ = (bitField0_ & ~0x00000001); + event_ = null; + if (eventBuilder_ != null) { + eventBuilder_.dispose(); + eventBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.Event event = 1; + */ + public context.ContextOuterClass.Event.Builder getEventBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getEventFieldBuilder().getBuilder(); + } + + /** + * .context.Event event = 1; + */ + public context.ContextOuterClass.EventOrBuilder getEventOrBuilder() { + if (eventBuilder_ != null) { + return eventBuilder_.getMessageOrBuilder(); + } else { + return event_ == null ? context.ContextOuterClass.Event.getDefaultInstance() : event_; + } + } + + /** + * .context.Event event = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3 getEventFieldBuilder() { + if (eventBuilder_ == null) { + eventBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getEvent(), getParentForChildren(), isClean()); + event_ = null; + } + return eventBuilder_; + } + + private context.ContextOuterClass.DeviceId deviceId_; + + private com.google.protobuf.SingleFieldBuilderV3 deviceIdBuilder_; + + /** + * .context.DeviceId device_id = 2; + * @return Whether the deviceId field is set. + */ + public boolean hasDeviceId() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * .context.DeviceId device_id = 2; + * @return The deviceId. + */ + public context.ContextOuterClass.DeviceId getDeviceId() { + if (deviceIdBuilder_ == null) { + return deviceId_ == null ? context.ContextOuterClass.DeviceId.getDefaultInstance() : deviceId_; + } else { + return deviceIdBuilder_.getMessage(); + } + } + + /** + * .context.DeviceId device_id = 2; + */ + public Builder setDeviceId(context.ContextOuterClass.DeviceId value) { + if (deviceIdBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + deviceId_ = value; + } else { + deviceIdBuilder_.setMessage(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * .context.DeviceId device_id = 2; + */ + public Builder setDeviceId(context.ContextOuterClass.DeviceId.Builder builderForValue) { + if (deviceIdBuilder_ == null) { + deviceId_ = builderForValue.build(); + } else { + deviceIdBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * .context.DeviceId device_id = 2; + */ + public Builder mergeDeviceId(context.ContextOuterClass.DeviceId value) { + if (deviceIdBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0) && deviceId_ != null && deviceId_ != context.ContextOuterClass.DeviceId.getDefaultInstance()) { + getDeviceIdBuilder().mergeFrom(value); + } else { + deviceId_ = value; + } + } else { + deviceIdBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * .context.DeviceId device_id = 2; + */ + public Builder clearDeviceId() { + bitField0_ = (bitField0_ & ~0x00000002); + deviceId_ = null; + if (deviceIdBuilder_ != null) { + deviceIdBuilder_.dispose(); + deviceIdBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.DeviceId device_id = 2; + */ + public context.ContextOuterClass.DeviceId.Builder getDeviceIdBuilder() { + bitField0_ |= 0x00000002; + onChanged(); + return getDeviceIdFieldBuilder().getBuilder(); + } + + /** + * .context.DeviceId device_id = 2; + */ + public context.ContextOuterClass.DeviceIdOrBuilder getDeviceIdOrBuilder() { + if (deviceIdBuilder_ != null) { + return deviceIdBuilder_.getMessageOrBuilder(); + } else { + return deviceId_ == null ? context.ContextOuterClass.DeviceId.getDefaultInstance() : deviceId_; + } + } + + /** + * .context.DeviceId device_id = 2; + */ + private com.google.protobuf.SingleFieldBuilderV3 getDeviceIdFieldBuilder() { + if (deviceIdBuilder_ == null) { + deviceIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getDeviceId(), getParentForChildren(), isClean()); + deviceId_ = null; + } + return deviceIdBuilder_; + } + + private context.ContextOuterClass.DeviceConfig deviceConfig_; + + private com.google.protobuf.SingleFieldBuilderV3 deviceConfigBuilder_; + + /** + * .context.DeviceConfig device_config = 3; + * @return Whether the deviceConfig field is set. + */ + public boolean hasDeviceConfig() { + return ((bitField0_ & 0x00000004) != 0); + } + + /** + * .context.DeviceConfig device_config = 3; + * @return The deviceConfig. + */ + public context.ContextOuterClass.DeviceConfig getDeviceConfig() { + if (deviceConfigBuilder_ == null) { + return deviceConfig_ == null ? context.ContextOuterClass.DeviceConfig.getDefaultInstance() : deviceConfig_; + } else { + return deviceConfigBuilder_.getMessage(); + } + } + + /** + * .context.DeviceConfig device_config = 3; + */ + public Builder setDeviceConfig(context.ContextOuterClass.DeviceConfig value) { + if (deviceConfigBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + deviceConfig_ = value; + } else { + deviceConfigBuilder_.setMessage(value); + } + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * .context.DeviceConfig device_config = 3; + */ + public Builder setDeviceConfig(context.ContextOuterClass.DeviceConfig.Builder builderForValue) { + if (deviceConfigBuilder_ == null) { + deviceConfig_ = builderForValue.build(); + } else { + deviceConfigBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * .context.DeviceConfig device_config = 3; + */ + public Builder mergeDeviceConfig(context.ContextOuterClass.DeviceConfig value) { + if (deviceConfigBuilder_ == null) { + if (((bitField0_ & 0x00000004) != 0) && deviceConfig_ != null && deviceConfig_ != context.ContextOuterClass.DeviceConfig.getDefaultInstance()) { + getDeviceConfigBuilder().mergeFrom(value); + } else { + deviceConfig_ = value; + } + } else { + deviceConfigBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * .context.DeviceConfig device_config = 3; + */ + public Builder clearDeviceConfig() { + bitField0_ = (bitField0_ & ~0x00000004); + deviceConfig_ = null; + if (deviceConfigBuilder_ != null) { + deviceConfigBuilder_.dispose(); + deviceConfigBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.DeviceConfig device_config = 3; + */ + public context.ContextOuterClass.DeviceConfig.Builder getDeviceConfigBuilder() { + bitField0_ |= 0x00000004; + onChanged(); + return getDeviceConfigFieldBuilder().getBuilder(); + } + + /** + * .context.DeviceConfig device_config = 3; + */ + public context.ContextOuterClass.DeviceConfigOrBuilder getDeviceConfigOrBuilder() { + if (deviceConfigBuilder_ != null) { + return deviceConfigBuilder_.getMessageOrBuilder(); + } else { + return deviceConfig_ == null ? context.ContextOuterClass.DeviceConfig.getDefaultInstance() : deviceConfig_; + } + } + + /** + * .context.DeviceConfig device_config = 3; + */ + private com.google.protobuf.SingleFieldBuilderV3 getDeviceConfigFieldBuilder() { + if (deviceConfigBuilder_ == null) { + deviceConfigBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getDeviceConfig(), getParentForChildren(), isClean()); + deviceConfig_ = null; + } + return deviceConfigBuilder_; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.DeviceEvent) + } + + // @@protoc_insertion_point(class_scope:context.DeviceEvent) + private static final context.ContextOuterClass.DeviceEvent DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.DeviceEvent(); + } + + public static context.ContextOuterClass.DeviceEvent getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public DeviceEvent parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.DeviceEvent getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface LinkIdOrBuilder extends // @@protoc_insertion_point(interface_extends:context.LinkId) + com.google.protobuf.MessageOrBuilder { + + /** + * .context.Uuid link_uuid = 1; + * @return Whether the linkUuid field is set. + */ + boolean hasLinkUuid(); + + /** + * .context.Uuid link_uuid = 1; + * @return The linkUuid. + */ + context.ContextOuterClass.Uuid getLinkUuid(); + + /** + * .context.Uuid link_uuid = 1; + */ + context.ContextOuterClass.UuidOrBuilder getLinkUuidOrBuilder(); + } + + /** + *
+     * ----- Link ----------------------------------------------------------------------------------------------------------
+     * 
+ * + * Protobuf type {@code context.LinkId} + */ + public static final class LinkId extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.LinkId) + LinkIdOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use LinkId.newBuilder() to construct. + private LinkId(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private LinkId() { + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new LinkId(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_LinkId_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_LinkId_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.LinkId.class, context.ContextOuterClass.LinkId.Builder.class); + } + + public static final int LINK_UUID_FIELD_NUMBER = 1; + + private context.ContextOuterClass.Uuid linkUuid_; + + /** + * .context.Uuid link_uuid = 1; + * @return Whether the linkUuid field is set. + */ + @java.lang.Override + public boolean hasLinkUuid() { + return linkUuid_ != null; + } + + /** + * .context.Uuid link_uuid = 1; + * @return The linkUuid. + */ + @java.lang.Override + public context.ContextOuterClass.Uuid getLinkUuid() { + return linkUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : linkUuid_; + } + + /** + * .context.Uuid link_uuid = 1; + */ + @java.lang.Override + public context.ContextOuterClass.UuidOrBuilder getLinkUuidOrBuilder() { + return linkUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : linkUuid_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (linkUuid_ != null) { + output.writeMessage(1, getLinkUuid()); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + if (linkUuid_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getLinkUuid()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.LinkId)) { + return super.equals(obj); + } + context.ContextOuterClass.LinkId other = (context.ContextOuterClass.LinkId) obj; + if (hasLinkUuid() != other.hasLinkUuid()) + return false; + if (hasLinkUuid()) { + if (!getLinkUuid().equals(other.getLinkUuid())) + return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasLinkUuid()) { + hash = (37 * hash) + LINK_UUID_FIELD_NUMBER; + hash = (53 * hash) + getLinkUuid().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.LinkId parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.LinkId parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.LinkId parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.LinkId parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.LinkId parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.LinkId parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.LinkId parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.LinkId parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.LinkId parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.LinkId parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.LinkId parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.LinkId parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.LinkId prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + *
+         * ----- Link ----------------------------------------------------------------------------------------------------------
+         * 
+ * + * Protobuf type {@code context.LinkId} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.LinkId) + context.ContextOuterClass.LinkIdOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_LinkId_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_LinkId_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.LinkId.class, context.ContextOuterClass.LinkId.Builder.class); + } + + // Construct using context.ContextOuterClass.LinkId.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + linkUuid_ = null; + if (linkUuidBuilder_ != null) { + linkUuidBuilder_.dispose(); + linkUuidBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_LinkId_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.LinkId getDefaultInstanceForType() { + return context.ContextOuterClass.LinkId.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.LinkId build() { + context.ContextOuterClass.LinkId result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.LinkId buildPartial() { + context.ContextOuterClass.LinkId result = new context.ContextOuterClass.LinkId(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(context.ContextOuterClass.LinkId result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.linkUuid_ = linkUuidBuilder_ == null ? linkUuid_ : linkUuidBuilder_.build(); + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.LinkId) { + return mergeFrom((context.ContextOuterClass.LinkId) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.LinkId other) { + if (other == context.ContextOuterClass.LinkId.getDefaultInstance()) + return this; + if (other.hasLinkUuid()) { + mergeLinkUuid(other.getLinkUuid()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getLinkUuidFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private context.ContextOuterClass.Uuid linkUuid_; + + private com.google.protobuf.SingleFieldBuilderV3 linkUuidBuilder_; + + /** + * .context.Uuid link_uuid = 1; + * @return Whether the linkUuid field is set. + */ + public boolean hasLinkUuid() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * .context.Uuid link_uuid = 1; + * @return The linkUuid. + */ + public context.ContextOuterClass.Uuid getLinkUuid() { + if (linkUuidBuilder_ == null) { + return linkUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : linkUuid_; + } else { + return linkUuidBuilder_.getMessage(); + } + } + + /** + * .context.Uuid link_uuid = 1; + */ + public Builder setLinkUuid(context.ContextOuterClass.Uuid value) { + if (linkUuidBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + linkUuid_ = value; + } else { + linkUuidBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.Uuid link_uuid = 1; + */ + public Builder setLinkUuid(context.ContextOuterClass.Uuid.Builder builderForValue) { + if (linkUuidBuilder_ == null) { + linkUuid_ = builderForValue.build(); + } else { + linkUuidBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.Uuid link_uuid = 1; + */ + public Builder mergeLinkUuid(context.ContextOuterClass.Uuid value) { + if (linkUuidBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && linkUuid_ != null && linkUuid_ != context.ContextOuterClass.Uuid.getDefaultInstance()) { + getLinkUuidBuilder().mergeFrom(value); + } else { + linkUuid_ = value; + } + } else { + linkUuidBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.Uuid link_uuid = 1; + */ + public Builder clearLinkUuid() { + bitField0_ = (bitField0_ & ~0x00000001); + linkUuid_ = null; + if (linkUuidBuilder_ != null) { + linkUuidBuilder_.dispose(); + linkUuidBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.Uuid link_uuid = 1; + */ + public context.ContextOuterClass.Uuid.Builder getLinkUuidBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getLinkUuidFieldBuilder().getBuilder(); + } + + /** + * .context.Uuid link_uuid = 1; + */ + public context.ContextOuterClass.UuidOrBuilder getLinkUuidOrBuilder() { + if (linkUuidBuilder_ != null) { + return linkUuidBuilder_.getMessageOrBuilder(); + } else { + return linkUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : linkUuid_; + } + } + + /** + * .context.Uuid link_uuid = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3 getLinkUuidFieldBuilder() { + if (linkUuidBuilder_ == null) { + linkUuidBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getLinkUuid(), getParentForChildren(), isClean()); + linkUuid_ = null; + } + return linkUuidBuilder_; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.LinkId) + } + + // @@protoc_insertion_point(class_scope:context.LinkId) + private static final context.ContextOuterClass.LinkId DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.LinkId(); + } + + public static context.ContextOuterClass.LinkId getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public LinkId parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.LinkId getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface LinkAttributesOrBuilder extends // @@protoc_insertion_point(interface_extends:context.LinkAttributes) + com.google.protobuf.MessageOrBuilder { + + /** + * float total_capacity_gbps = 1; + * @return The totalCapacityGbps. + */ + float getTotalCapacityGbps(); + + /** + * float used_capacity_gbps = 2; + * @return The usedCapacityGbps. + */ + float getUsedCapacityGbps(); + } + + /** + * Protobuf type {@code context.LinkAttributes} + */ + public static final class LinkAttributes extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.LinkAttributes) + LinkAttributesOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use LinkAttributes.newBuilder() to construct. + private LinkAttributes(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private LinkAttributes() { + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new LinkAttributes(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_LinkAttributes_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_LinkAttributes_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.LinkAttributes.class, context.ContextOuterClass.LinkAttributes.Builder.class); + } + + public static final int TOTAL_CAPACITY_GBPS_FIELD_NUMBER = 1; + + private float totalCapacityGbps_ = 0F; + + /** + * float total_capacity_gbps = 1; + * @return The totalCapacityGbps. + */ + @java.lang.Override + public float getTotalCapacityGbps() { + return totalCapacityGbps_; + } + + public static final int USED_CAPACITY_GBPS_FIELD_NUMBER = 2; + + private float usedCapacityGbps_ = 0F; + + /** + * float used_capacity_gbps = 2; + * @return The usedCapacityGbps. + */ + @java.lang.Override + public float getUsedCapacityGbps() { + return usedCapacityGbps_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (java.lang.Float.floatToRawIntBits(totalCapacityGbps_) != 0) { + output.writeFloat(1, totalCapacityGbps_); + } + if (java.lang.Float.floatToRawIntBits(usedCapacityGbps_) != 0) { + output.writeFloat(2, usedCapacityGbps_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + if (java.lang.Float.floatToRawIntBits(totalCapacityGbps_) != 0) { + size += com.google.protobuf.CodedOutputStream.computeFloatSize(1, totalCapacityGbps_); + } + if (java.lang.Float.floatToRawIntBits(usedCapacityGbps_) != 0) { + size += com.google.protobuf.CodedOutputStream.computeFloatSize(2, usedCapacityGbps_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.LinkAttributes)) { + return super.equals(obj); + } + context.ContextOuterClass.LinkAttributes other = (context.ContextOuterClass.LinkAttributes) obj; + if (java.lang.Float.floatToIntBits(getTotalCapacityGbps()) != java.lang.Float.floatToIntBits(other.getTotalCapacityGbps())) + return false; + if (java.lang.Float.floatToIntBits(getUsedCapacityGbps()) != java.lang.Float.floatToIntBits(other.getUsedCapacityGbps())) + return false; + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + TOTAL_CAPACITY_GBPS_FIELD_NUMBER; + hash = (53 * hash) + java.lang.Float.floatToIntBits(getTotalCapacityGbps()); + hash = (37 * hash) + USED_CAPACITY_GBPS_FIELD_NUMBER; + hash = (53 * hash) + java.lang.Float.floatToIntBits(getUsedCapacityGbps()); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.LinkAttributes parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.LinkAttributes parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.LinkAttributes parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.LinkAttributes parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.LinkAttributes parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.LinkAttributes parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.LinkAttributes parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.LinkAttributes parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.LinkAttributes parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.LinkAttributes parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.LinkAttributes parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.LinkAttributes parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.LinkAttributes prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code context.LinkAttributes} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.LinkAttributes) + context.ContextOuterClass.LinkAttributesOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_LinkAttributes_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_LinkAttributes_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.LinkAttributes.class, context.ContextOuterClass.LinkAttributes.Builder.class); + } + + // Construct using context.ContextOuterClass.LinkAttributes.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + totalCapacityGbps_ = 0F; + usedCapacityGbps_ = 0F; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_LinkAttributes_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.LinkAttributes getDefaultInstanceForType() { + return context.ContextOuterClass.LinkAttributes.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.LinkAttributes build() { + context.ContextOuterClass.LinkAttributes result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.LinkAttributes buildPartial() { + context.ContextOuterClass.LinkAttributes result = new context.ContextOuterClass.LinkAttributes(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(context.ContextOuterClass.LinkAttributes result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.totalCapacityGbps_ = totalCapacityGbps_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.usedCapacityGbps_ = usedCapacityGbps_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.LinkAttributes) { + return mergeFrom((context.ContextOuterClass.LinkAttributes) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.LinkAttributes other) { + if (other == context.ContextOuterClass.LinkAttributes.getDefaultInstance()) + return this; + if (other.getTotalCapacityGbps() != 0F) { + setTotalCapacityGbps(other.getTotalCapacityGbps()); + } + if (other.getUsedCapacityGbps() != 0F) { + setUsedCapacityGbps(other.getUsedCapacityGbps()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 13: + { + totalCapacityGbps_ = input.readFloat(); + bitField0_ |= 0x00000001; + break; + } + // case 13 + case 21: + { + usedCapacityGbps_ = input.readFloat(); + bitField0_ |= 0x00000002; + break; + } + // case 21 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private float totalCapacityGbps_; + + /** + * float total_capacity_gbps = 1; + * @return The totalCapacityGbps. + */ + @java.lang.Override + public float getTotalCapacityGbps() { + return totalCapacityGbps_; + } + + /** + * float total_capacity_gbps = 1; + * @param value The totalCapacityGbps to set. + * @return This builder for chaining. + */ + public Builder setTotalCapacityGbps(float value) { + totalCapacityGbps_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * float total_capacity_gbps = 1; + * @return This builder for chaining. + */ + public Builder clearTotalCapacityGbps() { + bitField0_ = (bitField0_ & ~0x00000001); + totalCapacityGbps_ = 0F; + onChanged(); + return this; + } + + private float usedCapacityGbps_; + + /** + * float used_capacity_gbps = 2; + * @return The usedCapacityGbps. + */ + @java.lang.Override + public float getUsedCapacityGbps() { + return usedCapacityGbps_; + } + + /** + * float used_capacity_gbps = 2; + * @param value The usedCapacityGbps to set. + * @return This builder for chaining. + */ + public Builder setUsedCapacityGbps(float value) { + usedCapacityGbps_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * float used_capacity_gbps = 2; + * @return This builder for chaining. + */ + public Builder clearUsedCapacityGbps() { + bitField0_ = (bitField0_ & ~0x00000002); + usedCapacityGbps_ = 0F; + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.LinkAttributes) + } + + // @@protoc_insertion_point(class_scope:context.LinkAttributes) + private static final context.ContextOuterClass.LinkAttributes DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.LinkAttributes(); + } + + public static context.ContextOuterClass.LinkAttributes getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public LinkAttributes parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.LinkAttributes getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface LinkOrBuilder extends // @@protoc_insertion_point(interface_extends:context.Link) + com.google.protobuf.MessageOrBuilder { + + /** + * .context.LinkId link_id = 1; + * @return Whether the linkId field is set. + */ + boolean hasLinkId(); + + /** + * .context.LinkId link_id = 1; + * @return The linkId. + */ + context.ContextOuterClass.LinkId getLinkId(); + + /** + * .context.LinkId link_id = 1; + */ + context.ContextOuterClass.LinkIdOrBuilder getLinkIdOrBuilder(); + + /** + * string name = 2; + * @return The name. + */ + java.lang.String getName(); + + /** + * string name = 2; + * @return The bytes for name. + */ + com.google.protobuf.ByteString getNameBytes(); + + /** + * repeated .context.EndPointId link_endpoint_ids = 3; + */ + java.util.List getLinkEndpointIdsList(); + + /** + * repeated .context.EndPointId link_endpoint_ids = 3; + */ + context.ContextOuterClass.EndPointId getLinkEndpointIds(int index); + + /** + * repeated .context.EndPointId link_endpoint_ids = 3; + */ + int getLinkEndpointIdsCount(); + + /** + * repeated .context.EndPointId link_endpoint_ids = 3; + */ + java.util.List getLinkEndpointIdsOrBuilderList(); + + /** + * repeated .context.EndPointId link_endpoint_ids = 3; + */ + context.ContextOuterClass.EndPointIdOrBuilder getLinkEndpointIdsOrBuilder(int index); + + /** + * .context.LinkAttributes attributes = 4; + * @return Whether the attributes field is set. + */ + boolean hasAttributes(); + + /** + * .context.LinkAttributes attributes = 4; + * @return The attributes. + */ + context.ContextOuterClass.LinkAttributes getAttributes(); + + /** + * .context.LinkAttributes attributes = 4; + */ + context.ContextOuterClass.LinkAttributesOrBuilder getAttributesOrBuilder(); + } + + /** + * Protobuf type {@code context.Link} + */ + public static final class Link extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.Link) + LinkOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use Link.newBuilder() to construct. + private Link(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private Link() { + name_ = ""; + linkEndpointIds_ = java.util.Collections.emptyList(); + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new Link(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_Link_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_Link_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.Link.class, context.ContextOuterClass.Link.Builder.class); + } + + public static final int LINK_ID_FIELD_NUMBER = 1; + + private context.ContextOuterClass.LinkId linkId_; + + /** + * .context.LinkId link_id = 1; + * @return Whether the linkId field is set. + */ + @java.lang.Override + public boolean hasLinkId() { + return linkId_ != null; + } + + /** + * .context.LinkId link_id = 1; + * @return The linkId. + */ + @java.lang.Override + public context.ContextOuterClass.LinkId getLinkId() { + return linkId_ == null ? context.ContextOuterClass.LinkId.getDefaultInstance() : linkId_; + } + + /** + * .context.LinkId link_id = 1; + */ + @java.lang.Override + public context.ContextOuterClass.LinkIdOrBuilder getLinkIdOrBuilder() { + return linkId_ == null ? context.ContextOuterClass.LinkId.getDefaultInstance() : linkId_; + } + + public static final int NAME_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object name_ = ""; + + /** + * string name = 2; + * @return The name. + */ + @java.lang.Override + public java.lang.String getName() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + name_ = s; + return s; + } + } + + /** + * string name = 2; + * @return The bytes for name. + */ + @java.lang.Override + public com.google.protobuf.ByteString getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int LINK_ENDPOINT_IDS_FIELD_NUMBER = 3; + + @SuppressWarnings("serial") + private java.util.List linkEndpointIds_; + + /** + * repeated .context.EndPointId link_endpoint_ids = 3; + */ + @java.lang.Override + public java.util.List getLinkEndpointIdsList() { + return linkEndpointIds_; + } + + /** + * repeated .context.EndPointId link_endpoint_ids = 3; + */ + @java.lang.Override + public java.util.List getLinkEndpointIdsOrBuilderList() { + return linkEndpointIds_; + } + + /** + * repeated .context.EndPointId link_endpoint_ids = 3; + */ + @java.lang.Override + public int getLinkEndpointIdsCount() { + return linkEndpointIds_.size(); + } + + /** + * repeated .context.EndPointId link_endpoint_ids = 3; + */ + @java.lang.Override + public context.ContextOuterClass.EndPointId getLinkEndpointIds(int index) { + return linkEndpointIds_.get(index); + } + + /** + * repeated .context.EndPointId link_endpoint_ids = 3; + */ + @java.lang.Override + public context.ContextOuterClass.EndPointIdOrBuilder getLinkEndpointIdsOrBuilder(int index) { + return linkEndpointIds_.get(index); + } + + public static final int ATTRIBUTES_FIELD_NUMBER = 4; + + private context.ContextOuterClass.LinkAttributes attributes_; + + /** + * .context.LinkAttributes attributes = 4; + * @return Whether the attributes field is set. + */ + @java.lang.Override + public boolean hasAttributes() { + return attributes_ != null; + } + + /** + * .context.LinkAttributes attributes = 4; + * @return The attributes. + */ + @java.lang.Override + public context.ContextOuterClass.LinkAttributes getAttributes() { + return attributes_ == null ? context.ContextOuterClass.LinkAttributes.getDefaultInstance() : attributes_; + } + + /** + * .context.LinkAttributes attributes = 4; + */ + @java.lang.Override + public context.ContextOuterClass.LinkAttributesOrBuilder getAttributesOrBuilder() { + return attributes_ == null ? context.ContextOuterClass.LinkAttributes.getDefaultInstance() : attributes_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (linkId_ != null) { + output.writeMessage(1, getLinkId()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, name_); + } + for (int i = 0; i < linkEndpointIds_.size(); i++) { + output.writeMessage(3, linkEndpointIds_.get(i)); + } + if (attributes_ != null) { + output.writeMessage(4, getAttributes()); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + if (linkId_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getLinkId()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, name_); + } + for (int i = 0; i < linkEndpointIds_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, linkEndpointIds_.get(i)); + } + if (attributes_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, getAttributes()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.Link)) { + return super.equals(obj); + } + context.ContextOuterClass.Link other = (context.ContextOuterClass.Link) obj; + if (hasLinkId() != other.hasLinkId()) + return false; + if (hasLinkId()) { + if (!getLinkId().equals(other.getLinkId())) + return false; + } + if (!getName().equals(other.getName())) + return false; + if (!getLinkEndpointIdsList().equals(other.getLinkEndpointIdsList())) + return false; + if (hasAttributes() != other.hasAttributes()) + return false; + if (hasAttributes()) { + if (!getAttributes().equals(other.getAttributes())) + return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasLinkId()) { + hash = (37 * hash) + LINK_ID_FIELD_NUMBER; + hash = (53 * hash) + getLinkId().hashCode(); + } + hash = (37 * hash) + NAME_FIELD_NUMBER; + hash = (53 * hash) + getName().hashCode(); + if (getLinkEndpointIdsCount() > 0) { + hash = (37 * hash) + LINK_ENDPOINT_IDS_FIELD_NUMBER; + hash = (53 * hash) + getLinkEndpointIdsList().hashCode(); + } + if (hasAttributes()) { + hash = (37 * hash) + ATTRIBUTES_FIELD_NUMBER; + hash = (53 * hash) + getAttributes().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.Link parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.Link parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.Link parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.Link parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.Link parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.Link parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.Link parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.Link parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.Link parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.Link parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.Link parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.Link parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.Link prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code context.Link} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.Link) + context.ContextOuterClass.LinkOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_Link_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_Link_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.Link.class, context.ContextOuterClass.Link.Builder.class); + } + + // Construct using context.ContextOuterClass.Link.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + linkId_ = null; + if (linkIdBuilder_ != null) { + linkIdBuilder_.dispose(); + linkIdBuilder_ = null; + } + name_ = ""; + if (linkEndpointIdsBuilder_ == null) { + linkEndpointIds_ = java.util.Collections.emptyList(); + } else { + linkEndpointIds_ = null; + linkEndpointIdsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000004); + attributes_ = null; + if (attributesBuilder_ != null) { + attributesBuilder_.dispose(); + attributesBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_Link_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.Link getDefaultInstanceForType() { + return context.ContextOuterClass.Link.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.Link build() { + context.ContextOuterClass.Link result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.Link buildPartial() { + context.ContextOuterClass.Link result = new context.ContextOuterClass.Link(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(context.ContextOuterClass.Link result) { + if (linkEndpointIdsBuilder_ == null) { + if (((bitField0_ & 0x00000004) != 0)) { + linkEndpointIds_ = java.util.Collections.unmodifiableList(linkEndpointIds_); + bitField0_ = (bitField0_ & ~0x00000004); + } + result.linkEndpointIds_ = linkEndpointIds_; + } else { + result.linkEndpointIds_ = linkEndpointIdsBuilder_.build(); + } + } + + private void buildPartial0(context.ContextOuterClass.Link result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.linkId_ = linkIdBuilder_ == null ? linkId_ : linkIdBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.name_ = name_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.attributes_ = attributesBuilder_ == null ? attributes_ : attributesBuilder_.build(); + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.Link) { + return mergeFrom((context.ContextOuterClass.Link) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.Link other) { + if (other == context.ContextOuterClass.Link.getDefaultInstance()) + return this; + if (other.hasLinkId()) { + mergeLinkId(other.getLinkId()); + } + if (!other.getName().isEmpty()) { + name_ = other.name_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (linkEndpointIdsBuilder_ == null) { + if (!other.linkEndpointIds_.isEmpty()) { + if (linkEndpointIds_.isEmpty()) { + linkEndpointIds_ = other.linkEndpointIds_; + bitField0_ = (bitField0_ & ~0x00000004); + } else { + ensureLinkEndpointIdsIsMutable(); + linkEndpointIds_.addAll(other.linkEndpointIds_); + } + onChanged(); + } + } else { + if (!other.linkEndpointIds_.isEmpty()) { + if (linkEndpointIdsBuilder_.isEmpty()) { + linkEndpointIdsBuilder_.dispose(); + linkEndpointIdsBuilder_ = null; + linkEndpointIds_ = other.linkEndpointIds_; + bitField0_ = (bitField0_ & ~0x00000004); + linkEndpointIdsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getLinkEndpointIdsFieldBuilder() : null; + } else { + linkEndpointIdsBuilder_.addAllMessages(other.linkEndpointIds_); + } + } + } + if (other.hasAttributes()) { + mergeAttributes(other.getAttributes()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getLinkIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + name_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } + // case 18 + case 26: + { + context.ContextOuterClass.EndPointId m = input.readMessage(context.ContextOuterClass.EndPointId.parser(), extensionRegistry); + if (linkEndpointIdsBuilder_ == null) { + ensureLinkEndpointIdsIsMutable(); + linkEndpointIds_.add(m); + } else { + linkEndpointIdsBuilder_.addMessage(m); + } + break; + } + // case 26 + case 34: + { + input.readMessage(getAttributesFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000008; + break; + } + // case 34 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private context.ContextOuterClass.LinkId linkId_; + + private com.google.protobuf.SingleFieldBuilderV3 linkIdBuilder_; + + /** + * .context.LinkId link_id = 1; + * @return Whether the linkId field is set. + */ + public boolean hasLinkId() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * .context.LinkId link_id = 1; + * @return The linkId. + */ + public context.ContextOuterClass.LinkId getLinkId() { + if (linkIdBuilder_ == null) { + return linkId_ == null ? context.ContextOuterClass.LinkId.getDefaultInstance() : linkId_; + } else { + return linkIdBuilder_.getMessage(); + } + } + + /** + * .context.LinkId link_id = 1; + */ + public Builder setLinkId(context.ContextOuterClass.LinkId value) { + if (linkIdBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + linkId_ = value; + } else { + linkIdBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.LinkId link_id = 1; + */ + public Builder setLinkId(context.ContextOuterClass.LinkId.Builder builderForValue) { + if (linkIdBuilder_ == null) { + linkId_ = builderForValue.build(); + } else { + linkIdBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.LinkId link_id = 1; + */ + public Builder mergeLinkId(context.ContextOuterClass.LinkId value) { + if (linkIdBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && linkId_ != null && linkId_ != context.ContextOuterClass.LinkId.getDefaultInstance()) { + getLinkIdBuilder().mergeFrom(value); + } else { + linkId_ = value; + } + } else { + linkIdBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.LinkId link_id = 1; + */ + public Builder clearLinkId() { + bitField0_ = (bitField0_ & ~0x00000001); + linkId_ = null; + if (linkIdBuilder_ != null) { + linkIdBuilder_.dispose(); + linkIdBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.LinkId link_id = 1; + */ + public context.ContextOuterClass.LinkId.Builder getLinkIdBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getLinkIdFieldBuilder().getBuilder(); + } + + /** + * .context.LinkId link_id = 1; + */ + public context.ContextOuterClass.LinkIdOrBuilder getLinkIdOrBuilder() { + if (linkIdBuilder_ != null) { + return linkIdBuilder_.getMessageOrBuilder(); + } else { + return linkId_ == null ? context.ContextOuterClass.LinkId.getDefaultInstance() : linkId_; + } + } + + /** + * .context.LinkId link_id = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3 getLinkIdFieldBuilder() { + if (linkIdBuilder_ == null) { + linkIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getLinkId(), getParentForChildren(), isClean()); + linkId_ = null; + } + return linkIdBuilder_; + } + + private java.lang.Object name_ = ""; + + /** + * string name = 2; + * @return The name. + */ + public java.lang.String getName() { + java.lang.Object ref = name_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + name_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * string name = 2; + * @return The bytes for name. + */ + public com.google.protobuf.ByteString getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * string name = 2; + * @param value The name to set. + * @return This builder for chaining. + */ + public Builder setName(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + name_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * string name = 2; + * @return This builder for chaining. + */ + public Builder clearName() { + name_ = getDefaultInstance().getName(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * string name = 2; + * @param value The bytes for name to set. + * @return This builder for chaining. + */ + public Builder setNameBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + name_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private java.util.List linkEndpointIds_ = java.util.Collections.emptyList(); + + private void ensureLinkEndpointIdsIsMutable() { + if (!((bitField0_ & 0x00000004) != 0)) { + linkEndpointIds_ = new java.util.ArrayList(linkEndpointIds_); + bitField0_ |= 0x00000004; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3 linkEndpointIdsBuilder_; + + /** + * repeated .context.EndPointId link_endpoint_ids = 3; + */ + public java.util.List getLinkEndpointIdsList() { + if (linkEndpointIdsBuilder_ == null) { + return java.util.Collections.unmodifiableList(linkEndpointIds_); + } else { + return linkEndpointIdsBuilder_.getMessageList(); + } + } + + /** + * repeated .context.EndPointId link_endpoint_ids = 3; + */ + public int getLinkEndpointIdsCount() { + if (linkEndpointIdsBuilder_ == null) { + return linkEndpointIds_.size(); + } else { + return linkEndpointIdsBuilder_.getCount(); + } + } + + /** + * repeated .context.EndPointId link_endpoint_ids = 3; + */ + public context.ContextOuterClass.EndPointId getLinkEndpointIds(int index) { + if (linkEndpointIdsBuilder_ == null) { + return linkEndpointIds_.get(index); + } else { + return linkEndpointIdsBuilder_.getMessage(index); + } + } + + /** + * repeated .context.EndPointId link_endpoint_ids = 3; + */ + public Builder setLinkEndpointIds(int index, context.ContextOuterClass.EndPointId value) { + if (linkEndpointIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureLinkEndpointIdsIsMutable(); + linkEndpointIds_.set(index, value); + onChanged(); + } else { + linkEndpointIdsBuilder_.setMessage(index, value); + } + return this; + } + + /** + * repeated .context.EndPointId link_endpoint_ids = 3; + */ + public Builder setLinkEndpointIds(int index, context.ContextOuterClass.EndPointId.Builder builderForValue) { + if (linkEndpointIdsBuilder_ == null) { + ensureLinkEndpointIdsIsMutable(); + linkEndpointIds_.set(index, builderForValue.build()); + onChanged(); + } else { + linkEndpointIdsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.EndPointId link_endpoint_ids = 3; + */ + public Builder addLinkEndpointIds(context.ContextOuterClass.EndPointId value) { + if (linkEndpointIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureLinkEndpointIdsIsMutable(); + linkEndpointIds_.add(value); + onChanged(); + } else { + linkEndpointIdsBuilder_.addMessage(value); + } + return this; + } + + /** + * repeated .context.EndPointId link_endpoint_ids = 3; + */ + public Builder addLinkEndpointIds(int index, context.ContextOuterClass.EndPointId value) { + if (linkEndpointIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureLinkEndpointIdsIsMutable(); + linkEndpointIds_.add(index, value); + onChanged(); + } else { + linkEndpointIdsBuilder_.addMessage(index, value); + } + return this; + } + + /** + * repeated .context.EndPointId link_endpoint_ids = 3; + */ + public Builder addLinkEndpointIds(context.ContextOuterClass.EndPointId.Builder builderForValue) { + if (linkEndpointIdsBuilder_ == null) { + ensureLinkEndpointIdsIsMutable(); + linkEndpointIds_.add(builderForValue.build()); + onChanged(); + } else { + linkEndpointIdsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * repeated .context.EndPointId link_endpoint_ids = 3; + */ + public Builder addLinkEndpointIds(int index, context.ContextOuterClass.EndPointId.Builder builderForValue) { + if (linkEndpointIdsBuilder_ == null) { + ensureLinkEndpointIdsIsMutable(); + linkEndpointIds_.add(index, builderForValue.build()); + onChanged(); + } else { + linkEndpointIdsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.EndPointId link_endpoint_ids = 3; + */ + public Builder addAllLinkEndpointIds(java.lang.Iterable values) { + if (linkEndpointIdsBuilder_ == null) { + ensureLinkEndpointIdsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, linkEndpointIds_); + onChanged(); + } else { + linkEndpointIdsBuilder_.addAllMessages(values); + } + return this; + } + + /** + * repeated .context.EndPointId link_endpoint_ids = 3; + */ + public Builder clearLinkEndpointIds() { + if (linkEndpointIdsBuilder_ == null) { + linkEndpointIds_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + } else { + linkEndpointIdsBuilder_.clear(); + } + return this; + } + + /** + * repeated .context.EndPointId link_endpoint_ids = 3; + */ + public Builder removeLinkEndpointIds(int index) { + if (linkEndpointIdsBuilder_ == null) { + ensureLinkEndpointIdsIsMutable(); + linkEndpointIds_.remove(index); + onChanged(); + } else { + linkEndpointIdsBuilder_.remove(index); + } + return this; + } + + /** + * repeated .context.EndPointId link_endpoint_ids = 3; + */ + public context.ContextOuterClass.EndPointId.Builder getLinkEndpointIdsBuilder(int index) { + return getLinkEndpointIdsFieldBuilder().getBuilder(index); + } + + /** + * repeated .context.EndPointId link_endpoint_ids = 3; + */ + public context.ContextOuterClass.EndPointIdOrBuilder getLinkEndpointIdsOrBuilder(int index) { + if (linkEndpointIdsBuilder_ == null) { + return linkEndpointIds_.get(index); + } else { + return linkEndpointIdsBuilder_.getMessageOrBuilder(index); + } + } + + /** + * repeated .context.EndPointId link_endpoint_ids = 3; + */ + public java.util.List getLinkEndpointIdsOrBuilderList() { + if (linkEndpointIdsBuilder_ != null) { + return linkEndpointIdsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(linkEndpointIds_); + } + } + + /** + * repeated .context.EndPointId link_endpoint_ids = 3; + */ + public context.ContextOuterClass.EndPointId.Builder addLinkEndpointIdsBuilder() { + return getLinkEndpointIdsFieldBuilder().addBuilder(context.ContextOuterClass.EndPointId.getDefaultInstance()); + } + + /** + * repeated .context.EndPointId link_endpoint_ids = 3; + */ + public context.ContextOuterClass.EndPointId.Builder addLinkEndpointIdsBuilder(int index) { + return getLinkEndpointIdsFieldBuilder().addBuilder(index, context.ContextOuterClass.EndPointId.getDefaultInstance()); + } + + /** + * repeated .context.EndPointId link_endpoint_ids = 3; + */ + public java.util.List getLinkEndpointIdsBuilderList() { + return getLinkEndpointIdsFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3 getLinkEndpointIdsFieldBuilder() { + if (linkEndpointIdsBuilder_ == null) { + linkEndpointIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3(linkEndpointIds_, ((bitField0_ & 0x00000004) != 0), getParentForChildren(), isClean()); + linkEndpointIds_ = null; + } + return linkEndpointIdsBuilder_; + } + + private context.ContextOuterClass.LinkAttributes attributes_; + + private com.google.protobuf.SingleFieldBuilderV3 attributesBuilder_; + + /** + * .context.LinkAttributes attributes = 4; + * @return Whether the attributes field is set. + */ + public boolean hasAttributes() { + return ((bitField0_ & 0x00000008) != 0); + } + + /** + * .context.LinkAttributes attributes = 4; + * @return The attributes. + */ + public context.ContextOuterClass.LinkAttributes getAttributes() { + if (attributesBuilder_ == null) { + return attributes_ == null ? context.ContextOuterClass.LinkAttributes.getDefaultInstance() : attributes_; + } else { + return attributesBuilder_.getMessage(); + } + } + + /** + * .context.LinkAttributes attributes = 4; + */ + public Builder setAttributes(context.ContextOuterClass.LinkAttributes value) { + if (attributesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + attributes_ = value; + } else { + attributesBuilder_.setMessage(value); + } + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * .context.LinkAttributes attributes = 4; + */ + public Builder setAttributes(context.ContextOuterClass.LinkAttributes.Builder builderForValue) { + if (attributesBuilder_ == null) { + attributes_ = builderForValue.build(); + } else { + attributesBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * .context.LinkAttributes attributes = 4; + */ + public Builder mergeAttributes(context.ContextOuterClass.LinkAttributes value) { + if (attributesBuilder_ == null) { + if (((bitField0_ & 0x00000008) != 0) && attributes_ != null && attributes_ != context.ContextOuterClass.LinkAttributes.getDefaultInstance()) { + getAttributesBuilder().mergeFrom(value); + } else { + attributes_ = value; + } + } else { + attributesBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * .context.LinkAttributes attributes = 4; + */ + public Builder clearAttributes() { + bitField0_ = (bitField0_ & ~0x00000008); + attributes_ = null; + if (attributesBuilder_ != null) { + attributesBuilder_.dispose(); + attributesBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.LinkAttributes attributes = 4; + */ + public context.ContextOuterClass.LinkAttributes.Builder getAttributesBuilder() { + bitField0_ |= 0x00000008; + onChanged(); + return getAttributesFieldBuilder().getBuilder(); + } + + /** + * .context.LinkAttributes attributes = 4; + */ + public context.ContextOuterClass.LinkAttributesOrBuilder getAttributesOrBuilder() { + if (attributesBuilder_ != null) { + return attributesBuilder_.getMessageOrBuilder(); + } else { + return attributes_ == null ? context.ContextOuterClass.LinkAttributes.getDefaultInstance() : attributes_; + } + } + + /** + * .context.LinkAttributes attributes = 4; + */ + private com.google.protobuf.SingleFieldBuilderV3 getAttributesFieldBuilder() { + if (attributesBuilder_ == null) { + attributesBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getAttributes(), getParentForChildren(), isClean()); + attributes_ = null; + } + return attributesBuilder_; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.Link) + } + + // @@protoc_insertion_point(class_scope:context.Link) + private static final context.ContextOuterClass.Link DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.Link(); + } + + public static context.ContextOuterClass.Link getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public Link parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.Link getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface LinkIdListOrBuilder extends // @@protoc_insertion_point(interface_extends:context.LinkIdList) + com.google.protobuf.MessageOrBuilder { + + /** + * repeated .context.LinkId link_ids = 1; + */ + java.util.List getLinkIdsList(); + + /** + * repeated .context.LinkId link_ids = 1; + */ + context.ContextOuterClass.LinkId getLinkIds(int index); + + /** + * repeated .context.LinkId link_ids = 1; + */ + int getLinkIdsCount(); + + /** + * repeated .context.LinkId link_ids = 1; + */ + java.util.List getLinkIdsOrBuilderList(); + + /** + * repeated .context.LinkId link_ids = 1; + */ + context.ContextOuterClass.LinkIdOrBuilder getLinkIdsOrBuilder(int index); + } + + /** + * Protobuf type {@code context.LinkIdList} + */ + public static final class LinkIdList extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.LinkIdList) + LinkIdListOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use LinkIdList.newBuilder() to construct. + private LinkIdList(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private LinkIdList() { + linkIds_ = java.util.Collections.emptyList(); + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new LinkIdList(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_LinkIdList_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_LinkIdList_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.LinkIdList.class, context.ContextOuterClass.LinkIdList.Builder.class); + } + + public static final int LINK_IDS_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private java.util.List linkIds_; + + /** + * repeated .context.LinkId link_ids = 1; + */ + @java.lang.Override + public java.util.List getLinkIdsList() { + return linkIds_; + } + + /** + * repeated .context.LinkId link_ids = 1; + */ + @java.lang.Override + public java.util.List getLinkIdsOrBuilderList() { + return linkIds_; + } + + /** + * repeated .context.LinkId link_ids = 1; + */ + @java.lang.Override + public int getLinkIdsCount() { + return linkIds_.size(); + } + + /** + * repeated .context.LinkId link_ids = 1; + */ + @java.lang.Override + public context.ContextOuterClass.LinkId getLinkIds(int index) { + return linkIds_.get(index); + } + + /** + * repeated .context.LinkId link_ids = 1; + */ + @java.lang.Override + public context.ContextOuterClass.LinkIdOrBuilder getLinkIdsOrBuilder(int index) { + return linkIds_.get(index); + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + for (int i = 0; i < linkIds_.size(); i++) { + output.writeMessage(1, linkIds_.get(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + for (int i = 0; i < linkIds_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, linkIds_.get(i)); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.LinkIdList)) { + return super.equals(obj); + } + context.ContextOuterClass.LinkIdList other = (context.ContextOuterClass.LinkIdList) obj; + if (!getLinkIdsList().equals(other.getLinkIdsList())) + return false; + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getLinkIdsCount() > 0) { + hash = (37 * hash) + LINK_IDS_FIELD_NUMBER; + hash = (53 * hash) + getLinkIdsList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.LinkIdList parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.LinkIdList parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.LinkIdList parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.LinkIdList parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.LinkIdList parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.LinkIdList parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.LinkIdList parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.LinkIdList parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.LinkIdList parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.LinkIdList parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.LinkIdList parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.LinkIdList parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.LinkIdList prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code context.LinkIdList} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.LinkIdList) + context.ContextOuterClass.LinkIdListOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_LinkIdList_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_LinkIdList_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.LinkIdList.class, context.ContextOuterClass.LinkIdList.Builder.class); + } + + // Construct using context.ContextOuterClass.LinkIdList.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + if (linkIdsBuilder_ == null) { + linkIds_ = java.util.Collections.emptyList(); + } else { + linkIds_ = null; + linkIdsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_LinkIdList_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.LinkIdList getDefaultInstanceForType() { + return context.ContextOuterClass.LinkIdList.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.LinkIdList build() { + context.ContextOuterClass.LinkIdList result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.LinkIdList buildPartial() { + context.ContextOuterClass.LinkIdList result = new context.ContextOuterClass.LinkIdList(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(context.ContextOuterClass.LinkIdList result) { + if (linkIdsBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + linkIds_ = java.util.Collections.unmodifiableList(linkIds_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.linkIds_ = linkIds_; + } else { + result.linkIds_ = linkIdsBuilder_.build(); + } + } + + private void buildPartial0(context.ContextOuterClass.LinkIdList result) { + int from_bitField0_ = bitField0_; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.LinkIdList) { + return mergeFrom((context.ContextOuterClass.LinkIdList) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.LinkIdList other) { + if (other == context.ContextOuterClass.LinkIdList.getDefaultInstance()) + return this; + if (linkIdsBuilder_ == null) { + if (!other.linkIds_.isEmpty()) { + if (linkIds_.isEmpty()) { + linkIds_ = other.linkIds_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureLinkIdsIsMutable(); + linkIds_.addAll(other.linkIds_); + } + onChanged(); + } + } else { + if (!other.linkIds_.isEmpty()) { + if (linkIdsBuilder_.isEmpty()) { + linkIdsBuilder_.dispose(); + linkIdsBuilder_ = null; + linkIds_ = other.linkIds_; + bitField0_ = (bitField0_ & ~0x00000001); + linkIdsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getLinkIdsFieldBuilder() : null; + } else { + linkIdsBuilder_.addAllMessages(other.linkIds_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + context.ContextOuterClass.LinkId m = input.readMessage(context.ContextOuterClass.LinkId.parser(), extensionRegistry); + if (linkIdsBuilder_ == null) { + ensureLinkIdsIsMutable(); + linkIds_.add(m); + } else { + linkIdsBuilder_.addMessage(m); + } + break; + } + // case 10 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private java.util.List linkIds_ = java.util.Collections.emptyList(); + + private void ensureLinkIdsIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + linkIds_ = new java.util.ArrayList(linkIds_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3 linkIdsBuilder_; + + /** + * repeated .context.LinkId link_ids = 1; + */ + public java.util.List getLinkIdsList() { + if (linkIdsBuilder_ == null) { + return java.util.Collections.unmodifiableList(linkIds_); + } else { + return linkIdsBuilder_.getMessageList(); + } + } + + /** + * repeated .context.LinkId link_ids = 1; + */ + public int getLinkIdsCount() { + if (linkIdsBuilder_ == null) { + return linkIds_.size(); + } else { + return linkIdsBuilder_.getCount(); + } + } + + /** + * repeated .context.LinkId link_ids = 1; + */ + public context.ContextOuterClass.LinkId getLinkIds(int index) { + if (linkIdsBuilder_ == null) { + return linkIds_.get(index); + } else { + return linkIdsBuilder_.getMessage(index); + } + } + + /** + * repeated .context.LinkId link_ids = 1; + */ + public Builder setLinkIds(int index, context.ContextOuterClass.LinkId value) { + if (linkIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureLinkIdsIsMutable(); + linkIds_.set(index, value); + onChanged(); + } else { + linkIdsBuilder_.setMessage(index, value); + } + return this; + } + + /** + * repeated .context.LinkId link_ids = 1; + */ + public Builder setLinkIds(int index, context.ContextOuterClass.LinkId.Builder builderForValue) { + if (linkIdsBuilder_ == null) { + ensureLinkIdsIsMutable(); + linkIds_.set(index, builderForValue.build()); + onChanged(); + } else { + linkIdsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.LinkId link_ids = 1; + */ + public Builder addLinkIds(context.ContextOuterClass.LinkId value) { + if (linkIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureLinkIdsIsMutable(); + linkIds_.add(value); + onChanged(); + } else { + linkIdsBuilder_.addMessage(value); + } + return this; + } + + /** + * repeated .context.LinkId link_ids = 1; + */ + public Builder addLinkIds(int index, context.ContextOuterClass.LinkId value) { + if (linkIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureLinkIdsIsMutable(); + linkIds_.add(index, value); + onChanged(); + } else { + linkIdsBuilder_.addMessage(index, value); + } + return this; + } + + /** + * repeated .context.LinkId link_ids = 1; + */ + public Builder addLinkIds(context.ContextOuterClass.LinkId.Builder builderForValue) { + if (linkIdsBuilder_ == null) { + ensureLinkIdsIsMutable(); + linkIds_.add(builderForValue.build()); + onChanged(); + } else { + linkIdsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * repeated .context.LinkId link_ids = 1; + */ + public Builder addLinkIds(int index, context.ContextOuterClass.LinkId.Builder builderForValue) { + if (linkIdsBuilder_ == null) { + ensureLinkIdsIsMutable(); + linkIds_.add(index, builderForValue.build()); + onChanged(); + } else { + linkIdsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.LinkId link_ids = 1; + */ + public Builder addAllLinkIds(java.lang.Iterable values) { + if (linkIdsBuilder_ == null) { + ensureLinkIdsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, linkIds_); + onChanged(); + } else { + linkIdsBuilder_.addAllMessages(values); + } + return this; + } + + /** + * repeated .context.LinkId link_ids = 1; + */ + public Builder clearLinkIds() { + if (linkIdsBuilder_ == null) { + linkIds_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + linkIdsBuilder_.clear(); + } + return this; + } + + /** + * repeated .context.LinkId link_ids = 1; + */ + public Builder removeLinkIds(int index) { + if (linkIdsBuilder_ == null) { + ensureLinkIdsIsMutable(); + linkIds_.remove(index); + onChanged(); + } else { + linkIdsBuilder_.remove(index); + } + return this; + } + + /** + * repeated .context.LinkId link_ids = 1; + */ + public context.ContextOuterClass.LinkId.Builder getLinkIdsBuilder(int index) { + return getLinkIdsFieldBuilder().getBuilder(index); + } + + /** + * repeated .context.LinkId link_ids = 1; + */ + public context.ContextOuterClass.LinkIdOrBuilder getLinkIdsOrBuilder(int index) { + if (linkIdsBuilder_ == null) { + return linkIds_.get(index); + } else { + return linkIdsBuilder_.getMessageOrBuilder(index); + } + } + + /** + * repeated .context.LinkId link_ids = 1; + */ + public java.util.List getLinkIdsOrBuilderList() { + if (linkIdsBuilder_ != null) { + return linkIdsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(linkIds_); + } + } + + /** + * repeated .context.LinkId link_ids = 1; + */ + public context.ContextOuterClass.LinkId.Builder addLinkIdsBuilder() { + return getLinkIdsFieldBuilder().addBuilder(context.ContextOuterClass.LinkId.getDefaultInstance()); + } + + /** + * repeated .context.LinkId link_ids = 1; + */ + public context.ContextOuterClass.LinkId.Builder addLinkIdsBuilder(int index) { + return getLinkIdsFieldBuilder().addBuilder(index, context.ContextOuterClass.LinkId.getDefaultInstance()); + } + + /** + * repeated .context.LinkId link_ids = 1; + */ + public java.util.List getLinkIdsBuilderList() { + return getLinkIdsFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3 getLinkIdsFieldBuilder() { + if (linkIdsBuilder_ == null) { + linkIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3(linkIds_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean()); + linkIds_ = null; + } + return linkIdsBuilder_; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.LinkIdList) + } + + // @@protoc_insertion_point(class_scope:context.LinkIdList) + private static final context.ContextOuterClass.LinkIdList DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.LinkIdList(); + } + + public static context.ContextOuterClass.LinkIdList getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public LinkIdList parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.LinkIdList getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface LinkListOrBuilder extends // @@protoc_insertion_point(interface_extends:context.LinkList) + com.google.protobuf.MessageOrBuilder { + + /** + * repeated .context.Link links = 1; + */ + java.util.List getLinksList(); + + /** + * repeated .context.Link links = 1; + */ + context.ContextOuterClass.Link getLinks(int index); + + /** + * repeated .context.Link links = 1; + */ + int getLinksCount(); + + /** + * repeated .context.Link links = 1; + */ + java.util.List getLinksOrBuilderList(); + + /** + * repeated .context.Link links = 1; + */ + context.ContextOuterClass.LinkOrBuilder getLinksOrBuilder(int index); + } + + /** + * Protobuf type {@code context.LinkList} + */ + public static final class LinkList extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.LinkList) + LinkListOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use LinkList.newBuilder() to construct. + private LinkList(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private LinkList() { + links_ = java.util.Collections.emptyList(); + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new LinkList(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_LinkList_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_LinkList_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.LinkList.class, context.ContextOuterClass.LinkList.Builder.class); + } + + public static final int LINKS_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private java.util.List links_; + + /** + * repeated .context.Link links = 1; + */ + @java.lang.Override + public java.util.List getLinksList() { + return links_; + } + + /** + * repeated .context.Link links = 1; + */ + @java.lang.Override + public java.util.List getLinksOrBuilderList() { + return links_; + } + + /** + * repeated .context.Link links = 1; + */ + @java.lang.Override + public int getLinksCount() { + return links_.size(); + } + + /** + * repeated .context.Link links = 1; + */ + @java.lang.Override + public context.ContextOuterClass.Link getLinks(int index) { + return links_.get(index); + } + + /** + * repeated .context.Link links = 1; + */ + @java.lang.Override + public context.ContextOuterClass.LinkOrBuilder getLinksOrBuilder(int index) { + return links_.get(index); + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + for (int i = 0; i < links_.size(); i++) { + output.writeMessage(1, links_.get(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + for (int i = 0; i < links_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, links_.get(i)); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.LinkList)) { + return super.equals(obj); + } + context.ContextOuterClass.LinkList other = (context.ContextOuterClass.LinkList) obj; + if (!getLinksList().equals(other.getLinksList())) + return false; + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getLinksCount() > 0) { + hash = (37 * hash) + LINKS_FIELD_NUMBER; + hash = (53 * hash) + getLinksList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.LinkList parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.LinkList parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.LinkList parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.LinkList parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.LinkList parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.LinkList parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.LinkList parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.LinkList parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.LinkList parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.LinkList parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.LinkList parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.LinkList parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.LinkList prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code context.LinkList} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.LinkList) + context.ContextOuterClass.LinkListOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_LinkList_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_LinkList_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.LinkList.class, context.ContextOuterClass.LinkList.Builder.class); + } + + // Construct using context.ContextOuterClass.LinkList.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + if (linksBuilder_ == null) { + links_ = java.util.Collections.emptyList(); + } else { + links_ = null; + linksBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_LinkList_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.LinkList getDefaultInstanceForType() { + return context.ContextOuterClass.LinkList.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.LinkList build() { + context.ContextOuterClass.LinkList result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.LinkList buildPartial() { + context.ContextOuterClass.LinkList result = new context.ContextOuterClass.LinkList(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(context.ContextOuterClass.LinkList result) { + if (linksBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + links_ = java.util.Collections.unmodifiableList(links_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.links_ = links_; + } else { + result.links_ = linksBuilder_.build(); + } + } + + private void buildPartial0(context.ContextOuterClass.LinkList result) { + int from_bitField0_ = bitField0_; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.LinkList) { + return mergeFrom((context.ContextOuterClass.LinkList) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.LinkList other) { + if (other == context.ContextOuterClass.LinkList.getDefaultInstance()) + return this; + if (linksBuilder_ == null) { + if (!other.links_.isEmpty()) { + if (links_.isEmpty()) { + links_ = other.links_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureLinksIsMutable(); + links_.addAll(other.links_); + } + onChanged(); + } + } else { + if (!other.links_.isEmpty()) { + if (linksBuilder_.isEmpty()) { + linksBuilder_.dispose(); + linksBuilder_ = null; + links_ = other.links_; + bitField0_ = (bitField0_ & ~0x00000001); + linksBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getLinksFieldBuilder() : null; + } else { + linksBuilder_.addAllMessages(other.links_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + context.ContextOuterClass.Link m = input.readMessage(context.ContextOuterClass.Link.parser(), extensionRegistry); + if (linksBuilder_ == null) { + ensureLinksIsMutable(); + links_.add(m); + } else { + linksBuilder_.addMessage(m); + } + break; + } + // case 10 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private java.util.List links_ = java.util.Collections.emptyList(); + + private void ensureLinksIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + links_ = new java.util.ArrayList(links_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3 linksBuilder_; + + /** + * repeated .context.Link links = 1; + */ + public java.util.List getLinksList() { + if (linksBuilder_ == null) { + return java.util.Collections.unmodifiableList(links_); + } else { + return linksBuilder_.getMessageList(); + } + } + + /** + * repeated .context.Link links = 1; + */ + public int getLinksCount() { + if (linksBuilder_ == null) { + return links_.size(); + } else { + return linksBuilder_.getCount(); + } + } + + /** + * repeated .context.Link links = 1; + */ + public context.ContextOuterClass.Link getLinks(int index) { + if (linksBuilder_ == null) { + return links_.get(index); + } else { + return linksBuilder_.getMessage(index); + } + } + + /** + * repeated .context.Link links = 1; + */ + public Builder setLinks(int index, context.ContextOuterClass.Link value) { + if (linksBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureLinksIsMutable(); + links_.set(index, value); + onChanged(); + } else { + linksBuilder_.setMessage(index, value); + } + return this; + } + + /** + * repeated .context.Link links = 1; + */ + public Builder setLinks(int index, context.ContextOuterClass.Link.Builder builderForValue) { + if (linksBuilder_ == null) { + ensureLinksIsMutable(); + links_.set(index, builderForValue.build()); + onChanged(); + } else { + linksBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.Link links = 1; + */ + public Builder addLinks(context.ContextOuterClass.Link value) { + if (linksBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureLinksIsMutable(); + links_.add(value); + onChanged(); + } else { + linksBuilder_.addMessage(value); + } + return this; + } + + /** + * repeated .context.Link links = 1; + */ + public Builder addLinks(int index, context.ContextOuterClass.Link value) { + if (linksBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureLinksIsMutable(); + links_.add(index, value); + onChanged(); + } else { + linksBuilder_.addMessage(index, value); + } + return this; + } + + /** + * repeated .context.Link links = 1; + */ + public Builder addLinks(context.ContextOuterClass.Link.Builder builderForValue) { + if (linksBuilder_ == null) { + ensureLinksIsMutable(); + links_.add(builderForValue.build()); + onChanged(); + } else { + linksBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * repeated .context.Link links = 1; + */ + public Builder addLinks(int index, context.ContextOuterClass.Link.Builder builderForValue) { + if (linksBuilder_ == null) { + ensureLinksIsMutable(); + links_.add(index, builderForValue.build()); + onChanged(); + } else { + linksBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.Link links = 1; + */ + public Builder addAllLinks(java.lang.Iterable values) { + if (linksBuilder_ == null) { + ensureLinksIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, links_); + onChanged(); + } else { + linksBuilder_.addAllMessages(values); + } + return this; + } + + /** + * repeated .context.Link links = 1; + */ + public Builder clearLinks() { + if (linksBuilder_ == null) { + links_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + linksBuilder_.clear(); + } + return this; + } + + /** + * repeated .context.Link links = 1; + */ + public Builder removeLinks(int index) { + if (linksBuilder_ == null) { + ensureLinksIsMutable(); + links_.remove(index); + onChanged(); + } else { + linksBuilder_.remove(index); + } + return this; + } + + /** + * repeated .context.Link links = 1; + */ + public context.ContextOuterClass.Link.Builder getLinksBuilder(int index) { + return getLinksFieldBuilder().getBuilder(index); + } + + /** + * repeated .context.Link links = 1; + */ + public context.ContextOuterClass.LinkOrBuilder getLinksOrBuilder(int index) { + if (linksBuilder_ == null) { + return links_.get(index); + } else { + return linksBuilder_.getMessageOrBuilder(index); + } + } + + /** + * repeated .context.Link links = 1; + */ + public java.util.List getLinksOrBuilderList() { + if (linksBuilder_ != null) { + return linksBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(links_); + } + } + + /** + * repeated .context.Link links = 1; + */ + public context.ContextOuterClass.Link.Builder addLinksBuilder() { + return getLinksFieldBuilder().addBuilder(context.ContextOuterClass.Link.getDefaultInstance()); + } + + /** + * repeated .context.Link links = 1; + */ + public context.ContextOuterClass.Link.Builder addLinksBuilder(int index) { + return getLinksFieldBuilder().addBuilder(index, context.ContextOuterClass.Link.getDefaultInstance()); + } + + /** + * repeated .context.Link links = 1; + */ + public java.util.List getLinksBuilderList() { + return getLinksFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3 getLinksFieldBuilder() { + if (linksBuilder_ == null) { + linksBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3(links_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean()); + links_ = null; + } + return linksBuilder_; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.LinkList) + } + + // @@protoc_insertion_point(class_scope:context.LinkList) + private static final context.ContextOuterClass.LinkList DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.LinkList(); + } + + public static context.ContextOuterClass.LinkList getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public LinkList parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.LinkList getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface LinkEventOrBuilder extends // @@protoc_insertion_point(interface_extends:context.LinkEvent) + com.google.protobuf.MessageOrBuilder { + + /** + * .context.Event event = 1; + * @return Whether the event field is set. + */ + boolean hasEvent(); + + /** + * .context.Event event = 1; + * @return The event. + */ + context.ContextOuterClass.Event getEvent(); + + /** + * .context.Event event = 1; + */ + context.ContextOuterClass.EventOrBuilder getEventOrBuilder(); + + /** + * .context.LinkId link_id = 2; + * @return Whether the linkId field is set. + */ + boolean hasLinkId(); + + /** + * .context.LinkId link_id = 2; + * @return The linkId. + */ + context.ContextOuterClass.LinkId getLinkId(); + + /** + * .context.LinkId link_id = 2; + */ + context.ContextOuterClass.LinkIdOrBuilder getLinkIdOrBuilder(); + } + + /** + * Protobuf type {@code context.LinkEvent} + */ + public static final class LinkEvent extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.LinkEvent) + LinkEventOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use LinkEvent.newBuilder() to construct. + private LinkEvent(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private LinkEvent() { + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new LinkEvent(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_LinkEvent_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_LinkEvent_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.LinkEvent.class, context.ContextOuterClass.LinkEvent.Builder.class); + } + + public static final int EVENT_FIELD_NUMBER = 1; + + private context.ContextOuterClass.Event event_; + + /** + * .context.Event event = 1; + * @return Whether the event field is set. + */ + @java.lang.Override + public boolean hasEvent() { + return event_ != null; + } + + /** + * .context.Event event = 1; + * @return The event. + */ + @java.lang.Override + public context.ContextOuterClass.Event getEvent() { + return event_ == null ? context.ContextOuterClass.Event.getDefaultInstance() : event_; + } + + /** + * .context.Event event = 1; + */ + @java.lang.Override + public context.ContextOuterClass.EventOrBuilder getEventOrBuilder() { + return event_ == null ? context.ContextOuterClass.Event.getDefaultInstance() : event_; + } + + public static final int LINK_ID_FIELD_NUMBER = 2; + + private context.ContextOuterClass.LinkId linkId_; + + /** + * .context.LinkId link_id = 2; + * @return Whether the linkId field is set. + */ + @java.lang.Override + public boolean hasLinkId() { + return linkId_ != null; + } + + /** + * .context.LinkId link_id = 2; + * @return The linkId. + */ + @java.lang.Override + public context.ContextOuterClass.LinkId getLinkId() { + return linkId_ == null ? context.ContextOuterClass.LinkId.getDefaultInstance() : linkId_; + } + + /** + * .context.LinkId link_id = 2; + */ + @java.lang.Override + public context.ContextOuterClass.LinkIdOrBuilder getLinkIdOrBuilder() { + return linkId_ == null ? context.ContextOuterClass.LinkId.getDefaultInstance() : linkId_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (event_ != null) { + output.writeMessage(1, getEvent()); + } + if (linkId_ != null) { + output.writeMessage(2, getLinkId()); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + if (event_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getEvent()); + } + if (linkId_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getLinkId()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.LinkEvent)) { + return super.equals(obj); + } + context.ContextOuterClass.LinkEvent other = (context.ContextOuterClass.LinkEvent) obj; + if (hasEvent() != other.hasEvent()) + return false; + if (hasEvent()) { + if (!getEvent().equals(other.getEvent())) + return false; + } + if (hasLinkId() != other.hasLinkId()) + return false; + if (hasLinkId()) { + if (!getLinkId().equals(other.getLinkId())) + return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasEvent()) { + hash = (37 * hash) + EVENT_FIELD_NUMBER; + hash = (53 * hash) + getEvent().hashCode(); + } + if (hasLinkId()) { + hash = (37 * hash) + LINK_ID_FIELD_NUMBER; + hash = (53 * hash) + getLinkId().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.LinkEvent parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.LinkEvent parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.LinkEvent parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.LinkEvent parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.LinkEvent parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.LinkEvent parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.LinkEvent parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.LinkEvent parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.LinkEvent parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.LinkEvent parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.LinkEvent parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.LinkEvent parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.LinkEvent prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code context.LinkEvent} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.LinkEvent) + context.ContextOuterClass.LinkEventOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_LinkEvent_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_LinkEvent_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.LinkEvent.class, context.ContextOuterClass.LinkEvent.Builder.class); + } + + // Construct using context.ContextOuterClass.LinkEvent.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + event_ = null; + if (eventBuilder_ != null) { + eventBuilder_.dispose(); + eventBuilder_ = null; + } + linkId_ = null; + if (linkIdBuilder_ != null) { + linkIdBuilder_.dispose(); + linkIdBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_LinkEvent_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.LinkEvent getDefaultInstanceForType() { + return context.ContextOuterClass.LinkEvent.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.LinkEvent build() { + context.ContextOuterClass.LinkEvent result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.LinkEvent buildPartial() { + context.ContextOuterClass.LinkEvent result = new context.ContextOuterClass.LinkEvent(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(context.ContextOuterClass.LinkEvent result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.event_ = eventBuilder_ == null ? event_ : eventBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.linkId_ = linkIdBuilder_ == null ? linkId_ : linkIdBuilder_.build(); + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.LinkEvent) { + return mergeFrom((context.ContextOuterClass.LinkEvent) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.LinkEvent other) { + if (other == context.ContextOuterClass.LinkEvent.getDefaultInstance()) + return this; + if (other.hasEvent()) { + mergeEvent(other.getEvent()); + } + if (other.hasLinkId()) { + mergeLinkId(other.getLinkId()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getEventFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + input.readMessage(getLinkIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000002; + break; + } + // case 18 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private context.ContextOuterClass.Event event_; + + private com.google.protobuf.SingleFieldBuilderV3 eventBuilder_; + + /** + * .context.Event event = 1; + * @return Whether the event field is set. + */ + public boolean hasEvent() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * .context.Event event = 1; + * @return The event. + */ + public context.ContextOuterClass.Event getEvent() { + if (eventBuilder_ == null) { + return event_ == null ? context.ContextOuterClass.Event.getDefaultInstance() : event_; + } else { + return eventBuilder_.getMessage(); + } + } + + /** + * .context.Event event = 1; + */ + public Builder setEvent(context.ContextOuterClass.Event value) { + if (eventBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + event_ = value; + } else { + eventBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.Event event = 1; + */ + public Builder setEvent(context.ContextOuterClass.Event.Builder builderForValue) { + if (eventBuilder_ == null) { + event_ = builderForValue.build(); + } else { + eventBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.Event event = 1; + */ + public Builder mergeEvent(context.ContextOuterClass.Event value) { + if (eventBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && event_ != null && event_ != context.ContextOuterClass.Event.getDefaultInstance()) { + getEventBuilder().mergeFrom(value); + } else { + event_ = value; + } + } else { + eventBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.Event event = 1; + */ + public Builder clearEvent() { + bitField0_ = (bitField0_ & ~0x00000001); + event_ = null; + if (eventBuilder_ != null) { + eventBuilder_.dispose(); + eventBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.Event event = 1; + */ + public context.ContextOuterClass.Event.Builder getEventBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getEventFieldBuilder().getBuilder(); + } + + /** + * .context.Event event = 1; + */ + public context.ContextOuterClass.EventOrBuilder getEventOrBuilder() { + if (eventBuilder_ != null) { + return eventBuilder_.getMessageOrBuilder(); + } else { + return event_ == null ? context.ContextOuterClass.Event.getDefaultInstance() : event_; + } + } + + /** + * .context.Event event = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3 getEventFieldBuilder() { + if (eventBuilder_ == null) { + eventBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getEvent(), getParentForChildren(), isClean()); + event_ = null; + } + return eventBuilder_; + } + + private context.ContextOuterClass.LinkId linkId_; + + private com.google.protobuf.SingleFieldBuilderV3 linkIdBuilder_; + + /** + * .context.LinkId link_id = 2; + * @return Whether the linkId field is set. + */ + public boolean hasLinkId() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * .context.LinkId link_id = 2; + * @return The linkId. + */ + public context.ContextOuterClass.LinkId getLinkId() { + if (linkIdBuilder_ == null) { + return linkId_ == null ? context.ContextOuterClass.LinkId.getDefaultInstance() : linkId_; + } else { + return linkIdBuilder_.getMessage(); + } + } + + /** + * .context.LinkId link_id = 2; + */ + public Builder setLinkId(context.ContextOuterClass.LinkId value) { + if (linkIdBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + linkId_ = value; + } else { + linkIdBuilder_.setMessage(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * .context.LinkId link_id = 2; + */ + public Builder setLinkId(context.ContextOuterClass.LinkId.Builder builderForValue) { + if (linkIdBuilder_ == null) { + linkId_ = builderForValue.build(); + } else { + linkIdBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * .context.LinkId link_id = 2; + */ + public Builder mergeLinkId(context.ContextOuterClass.LinkId value) { + if (linkIdBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0) && linkId_ != null && linkId_ != context.ContextOuterClass.LinkId.getDefaultInstance()) { + getLinkIdBuilder().mergeFrom(value); + } else { + linkId_ = value; + } + } else { + linkIdBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * .context.LinkId link_id = 2; + */ + public Builder clearLinkId() { + bitField0_ = (bitField0_ & ~0x00000002); + linkId_ = null; + if (linkIdBuilder_ != null) { + linkIdBuilder_.dispose(); + linkIdBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.LinkId link_id = 2; + */ + public context.ContextOuterClass.LinkId.Builder getLinkIdBuilder() { + bitField0_ |= 0x00000002; + onChanged(); + return getLinkIdFieldBuilder().getBuilder(); + } + + /** + * .context.LinkId link_id = 2; + */ + public context.ContextOuterClass.LinkIdOrBuilder getLinkIdOrBuilder() { + if (linkIdBuilder_ != null) { + return linkIdBuilder_.getMessageOrBuilder(); + } else { + return linkId_ == null ? context.ContextOuterClass.LinkId.getDefaultInstance() : linkId_; + } + } + + /** + * .context.LinkId link_id = 2; + */ + private com.google.protobuf.SingleFieldBuilderV3 getLinkIdFieldBuilder() { + if (linkIdBuilder_ == null) { + linkIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getLinkId(), getParentForChildren(), isClean()); + linkId_ = null; + } + return linkIdBuilder_; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.LinkEvent) + } + + // @@protoc_insertion_point(class_scope:context.LinkEvent) + private static final context.ContextOuterClass.LinkEvent DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.LinkEvent(); + } + + public static context.ContextOuterClass.LinkEvent getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public LinkEvent parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.LinkEvent getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface ServiceIdOrBuilder extends // @@protoc_insertion_point(interface_extends:context.ServiceId) + com.google.protobuf.MessageOrBuilder { + + /** + * .context.ContextId context_id = 1; + * @return Whether the contextId field is set. + */ + boolean hasContextId(); + + /** + * .context.ContextId context_id = 1; + * @return The contextId. + */ + context.ContextOuterClass.ContextId getContextId(); + + /** + * .context.ContextId context_id = 1; + */ + context.ContextOuterClass.ContextIdOrBuilder getContextIdOrBuilder(); + + /** + * .context.Uuid service_uuid = 2; + * @return Whether the serviceUuid field is set. + */ + boolean hasServiceUuid(); + + /** + * .context.Uuid service_uuid = 2; + * @return The serviceUuid. + */ + context.ContextOuterClass.Uuid getServiceUuid(); + + /** + * .context.Uuid service_uuid = 2; + */ + context.ContextOuterClass.UuidOrBuilder getServiceUuidOrBuilder(); + } + + /** + *
+     * ----- Service -------------------------------------------------------------------------------------------------------
+     * 
+ * + * Protobuf type {@code context.ServiceId} + */ + public static final class ServiceId extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.ServiceId) + ServiceIdOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use ServiceId.newBuilder() to construct. + private ServiceId(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private ServiceId() { + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new ServiceId(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_ServiceId_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_ServiceId_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.ServiceId.class, context.ContextOuterClass.ServiceId.Builder.class); + } + + public static final int CONTEXT_ID_FIELD_NUMBER = 1; + + private context.ContextOuterClass.ContextId contextId_; + + /** + * .context.ContextId context_id = 1; + * @return Whether the contextId field is set. + */ + @java.lang.Override + public boolean hasContextId() { + return contextId_ != null; + } + + /** + * .context.ContextId context_id = 1; + * @return The contextId. + */ + @java.lang.Override + public context.ContextOuterClass.ContextId getContextId() { + return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_; + } + + /** + * .context.ContextId context_id = 1; + */ + @java.lang.Override + public context.ContextOuterClass.ContextIdOrBuilder getContextIdOrBuilder() { + return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_; + } + + public static final int SERVICE_UUID_FIELD_NUMBER = 2; + + private context.ContextOuterClass.Uuid serviceUuid_; + + /** + * .context.Uuid service_uuid = 2; + * @return Whether the serviceUuid field is set. + */ + @java.lang.Override + public boolean hasServiceUuid() { + return serviceUuid_ != null; + } + + /** + * .context.Uuid service_uuid = 2; + * @return The serviceUuid. + */ + @java.lang.Override + public context.ContextOuterClass.Uuid getServiceUuid() { + return serviceUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : serviceUuid_; + } + + /** + * .context.Uuid service_uuid = 2; + */ + @java.lang.Override + public context.ContextOuterClass.UuidOrBuilder getServiceUuidOrBuilder() { + return serviceUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : serviceUuid_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (contextId_ != null) { + output.writeMessage(1, getContextId()); + } + if (serviceUuid_ != null) { + output.writeMessage(2, getServiceUuid()); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + if (contextId_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getContextId()); + } + if (serviceUuid_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getServiceUuid()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.ServiceId)) { + return super.equals(obj); + } + context.ContextOuterClass.ServiceId other = (context.ContextOuterClass.ServiceId) obj; + if (hasContextId() != other.hasContextId()) + return false; + if (hasContextId()) { + if (!getContextId().equals(other.getContextId())) + return false; + } + if (hasServiceUuid() != other.hasServiceUuid()) + return false; + if (hasServiceUuid()) { + if (!getServiceUuid().equals(other.getServiceUuid())) + return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasContextId()) { + hash = (37 * hash) + CONTEXT_ID_FIELD_NUMBER; + hash = (53 * hash) + getContextId().hashCode(); + } + if (hasServiceUuid()) { + hash = (37 * hash) + SERVICE_UUID_FIELD_NUMBER; + hash = (53 * hash) + getServiceUuid().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.ServiceId parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ServiceId parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ServiceId parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ServiceId parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ServiceId parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ServiceId parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ServiceId parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ServiceId parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.ServiceId parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ServiceId parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.ServiceId parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ServiceId parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.ServiceId prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + *
+         * ----- Service -------------------------------------------------------------------------------------------------------
+         * 
+ * + * Protobuf type {@code context.ServiceId} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.ServiceId) + context.ContextOuterClass.ServiceIdOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_ServiceId_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_ServiceId_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.ServiceId.class, context.ContextOuterClass.ServiceId.Builder.class); + } + + // Construct using context.ContextOuterClass.ServiceId.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + contextId_ = null; + if (contextIdBuilder_ != null) { + contextIdBuilder_.dispose(); + contextIdBuilder_ = null; + } + serviceUuid_ = null; + if (serviceUuidBuilder_ != null) { + serviceUuidBuilder_.dispose(); + serviceUuidBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_ServiceId_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.ServiceId getDefaultInstanceForType() { + return context.ContextOuterClass.ServiceId.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.ServiceId build() { + context.ContextOuterClass.ServiceId result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.ServiceId buildPartial() { + context.ContextOuterClass.ServiceId result = new context.ContextOuterClass.ServiceId(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(context.ContextOuterClass.ServiceId result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.contextId_ = contextIdBuilder_ == null ? contextId_ : contextIdBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.serviceUuid_ = serviceUuidBuilder_ == null ? serviceUuid_ : serviceUuidBuilder_.build(); + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.ServiceId) { + return mergeFrom((context.ContextOuterClass.ServiceId) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.ServiceId other) { + if (other == context.ContextOuterClass.ServiceId.getDefaultInstance()) + return this; + if (other.hasContextId()) { + mergeContextId(other.getContextId()); + } + if (other.hasServiceUuid()) { + mergeServiceUuid(other.getServiceUuid()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getContextIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + input.readMessage(getServiceUuidFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000002; + break; + } + // case 18 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private context.ContextOuterClass.ContextId contextId_; + + private com.google.protobuf.SingleFieldBuilderV3 contextIdBuilder_; + + /** + * .context.ContextId context_id = 1; + * @return Whether the contextId field is set. + */ + public boolean hasContextId() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * .context.ContextId context_id = 1; + * @return The contextId. + */ + public context.ContextOuterClass.ContextId getContextId() { + if (contextIdBuilder_ == null) { + return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_; + } else { + return contextIdBuilder_.getMessage(); + } + } + + /** + * .context.ContextId context_id = 1; + */ + public Builder setContextId(context.ContextOuterClass.ContextId value) { + if (contextIdBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + contextId_ = value; + } else { + contextIdBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.ContextId context_id = 1; + */ + public Builder setContextId(context.ContextOuterClass.ContextId.Builder builderForValue) { + if (contextIdBuilder_ == null) { + contextId_ = builderForValue.build(); + } else { + contextIdBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.ContextId context_id = 1; + */ + public Builder mergeContextId(context.ContextOuterClass.ContextId value) { + if (contextIdBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && contextId_ != null && contextId_ != context.ContextOuterClass.ContextId.getDefaultInstance()) { + getContextIdBuilder().mergeFrom(value); + } else { + contextId_ = value; + } + } else { + contextIdBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.ContextId context_id = 1; + */ + public Builder clearContextId() { + bitField0_ = (bitField0_ & ~0x00000001); + contextId_ = null; + if (contextIdBuilder_ != null) { + contextIdBuilder_.dispose(); + contextIdBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.ContextId context_id = 1; + */ + public context.ContextOuterClass.ContextId.Builder getContextIdBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getContextIdFieldBuilder().getBuilder(); + } + + /** + * .context.ContextId context_id = 1; + */ + public context.ContextOuterClass.ContextIdOrBuilder getContextIdOrBuilder() { + if (contextIdBuilder_ != null) { + return contextIdBuilder_.getMessageOrBuilder(); + } else { + return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_; + } + } + + /** + * .context.ContextId context_id = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3 getContextIdFieldBuilder() { + if (contextIdBuilder_ == null) { + contextIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getContextId(), getParentForChildren(), isClean()); + contextId_ = null; + } + return contextIdBuilder_; + } + + private context.ContextOuterClass.Uuid serviceUuid_; + + private com.google.protobuf.SingleFieldBuilderV3 serviceUuidBuilder_; + + /** + * .context.Uuid service_uuid = 2; + * @return Whether the serviceUuid field is set. + */ + public boolean hasServiceUuid() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * .context.Uuid service_uuid = 2; + * @return The serviceUuid. + */ + public context.ContextOuterClass.Uuid getServiceUuid() { + if (serviceUuidBuilder_ == null) { + return serviceUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : serviceUuid_; + } else { + return serviceUuidBuilder_.getMessage(); + } + } + + /** + * .context.Uuid service_uuid = 2; + */ + public Builder setServiceUuid(context.ContextOuterClass.Uuid value) { + if (serviceUuidBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + serviceUuid_ = value; + } else { + serviceUuidBuilder_.setMessage(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * .context.Uuid service_uuid = 2; + */ + public Builder setServiceUuid(context.ContextOuterClass.Uuid.Builder builderForValue) { + if (serviceUuidBuilder_ == null) { + serviceUuid_ = builderForValue.build(); + } else { + serviceUuidBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * .context.Uuid service_uuid = 2; + */ + public Builder mergeServiceUuid(context.ContextOuterClass.Uuid value) { + if (serviceUuidBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0) && serviceUuid_ != null && serviceUuid_ != context.ContextOuterClass.Uuid.getDefaultInstance()) { + getServiceUuidBuilder().mergeFrom(value); + } else { + serviceUuid_ = value; + } + } else { + serviceUuidBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * .context.Uuid service_uuid = 2; + */ + public Builder clearServiceUuid() { + bitField0_ = (bitField0_ & ~0x00000002); + serviceUuid_ = null; + if (serviceUuidBuilder_ != null) { + serviceUuidBuilder_.dispose(); + serviceUuidBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.Uuid service_uuid = 2; + */ + public context.ContextOuterClass.Uuid.Builder getServiceUuidBuilder() { + bitField0_ |= 0x00000002; + onChanged(); + return getServiceUuidFieldBuilder().getBuilder(); + } + + /** + * .context.Uuid service_uuid = 2; + */ + public context.ContextOuterClass.UuidOrBuilder getServiceUuidOrBuilder() { + if (serviceUuidBuilder_ != null) { + return serviceUuidBuilder_.getMessageOrBuilder(); + } else { + return serviceUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : serviceUuid_; + } + } + + /** + * .context.Uuid service_uuid = 2; + */ + private com.google.protobuf.SingleFieldBuilderV3 getServiceUuidFieldBuilder() { + if (serviceUuidBuilder_ == null) { + serviceUuidBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getServiceUuid(), getParentForChildren(), isClean()); + serviceUuid_ = null; + } + return serviceUuidBuilder_; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.ServiceId) + } + + // @@protoc_insertion_point(class_scope:context.ServiceId) + private static final context.ContextOuterClass.ServiceId DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.ServiceId(); + } + + public static context.ContextOuterClass.ServiceId getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public ServiceId parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.ServiceId getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface ServiceOrBuilder extends // @@protoc_insertion_point(interface_extends:context.Service) + com.google.protobuf.MessageOrBuilder { + + /** + * .context.ServiceId service_id = 1; + * @return Whether the serviceId field is set. + */ + boolean hasServiceId(); + + /** + * .context.ServiceId service_id = 1; + * @return The serviceId. + */ + context.ContextOuterClass.ServiceId getServiceId(); + + /** + * .context.ServiceId service_id = 1; + */ + context.ContextOuterClass.ServiceIdOrBuilder getServiceIdOrBuilder(); + + /** + * string name = 2; + * @return The name. + */ + java.lang.String getName(); + + /** + * string name = 2; + * @return The bytes for name. + */ + com.google.protobuf.ByteString getNameBytes(); + + /** + * .context.ServiceTypeEnum service_type = 3; + * @return The enum numeric value on the wire for serviceType. + */ + int getServiceTypeValue(); + + /** + * .context.ServiceTypeEnum service_type = 3; + * @return The serviceType. + */ + context.ContextOuterClass.ServiceTypeEnum getServiceType(); + + /** + * repeated .context.EndPointId service_endpoint_ids = 4; + */ + java.util.List getServiceEndpointIdsList(); + + /** + * repeated .context.EndPointId service_endpoint_ids = 4; + */ + context.ContextOuterClass.EndPointId getServiceEndpointIds(int index); + + /** + * repeated .context.EndPointId service_endpoint_ids = 4; + */ + int getServiceEndpointIdsCount(); + + /** + * repeated .context.EndPointId service_endpoint_ids = 4; + */ + java.util.List getServiceEndpointIdsOrBuilderList(); + + /** + * repeated .context.EndPointId service_endpoint_ids = 4; + */ + context.ContextOuterClass.EndPointIdOrBuilder getServiceEndpointIdsOrBuilder(int index); + + /** + * repeated .context.Constraint service_constraints = 5; + */ + java.util.List getServiceConstraintsList(); + + /** + * repeated .context.Constraint service_constraints = 5; + */ + context.ContextOuterClass.Constraint getServiceConstraints(int index); + + /** + * repeated .context.Constraint service_constraints = 5; + */ + int getServiceConstraintsCount(); + + /** + * repeated .context.Constraint service_constraints = 5; + */ + java.util.List getServiceConstraintsOrBuilderList(); + + /** + * repeated .context.Constraint service_constraints = 5; + */ + context.ContextOuterClass.ConstraintOrBuilder getServiceConstraintsOrBuilder(int index); + + /** + * .context.ServiceStatus service_status = 6; + * @return Whether the serviceStatus field is set. + */ + boolean hasServiceStatus(); + + /** + * .context.ServiceStatus service_status = 6; + * @return The serviceStatus. + */ + context.ContextOuterClass.ServiceStatus getServiceStatus(); + + /** + * .context.ServiceStatus service_status = 6; + */ + context.ContextOuterClass.ServiceStatusOrBuilder getServiceStatusOrBuilder(); + + /** + * .context.ServiceConfig service_config = 7; + * @return Whether the serviceConfig field is set. + */ + boolean hasServiceConfig(); + + /** + * .context.ServiceConfig service_config = 7; + * @return The serviceConfig. + */ + context.ContextOuterClass.ServiceConfig getServiceConfig(); + + /** + * .context.ServiceConfig service_config = 7; + */ + context.ContextOuterClass.ServiceConfigOrBuilder getServiceConfigOrBuilder(); + + /** + * .context.Timestamp timestamp = 8; + * @return Whether the timestamp field is set. + */ + boolean hasTimestamp(); + + /** + * .context.Timestamp timestamp = 8; + * @return The timestamp. + */ + context.ContextOuterClass.Timestamp getTimestamp(); + + /** + * .context.Timestamp timestamp = 8; + */ + context.ContextOuterClass.TimestampOrBuilder getTimestampOrBuilder(); + } + + /** + * Protobuf type {@code context.Service} + */ + public static final class Service extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.Service) + ServiceOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use Service.newBuilder() to construct. + private Service(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private Service() { + name_ = ""; + serviceType_ = 0; + serviceEndpointIds_ = java.util.Collections.emptyList(); + serviceConstraints_ = java.util.Collections.emptyList(); + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new Service(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_Service_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_Service_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.Service.class, context.ContextOuterClass.Service.Builder.class); + } + + public static final int SERVICE_ID_FIELD_NUMBER = 1; + + private context.ContextOuterClass.ServiceId serviceId_; + + /** + * .context.ServiceId service_id = 1; + * @return Whether the serviceId field is set. + */ + @java.lang.Override + public boolean hasServiceId() { + return serviceId_ != null; + } + + /** + * .context.ServiceId service_id = 1; + * @return The serviceId. + */ + @java.lang.Override + public context.ContextOuterClass.ServiceId getServiceId() { + return serviceId_ == null ? context.ContextOuterClass.ServiceId.getDefaultInstance() : serviceId_; + } + + /** + * .context.ServiceId service_id = 1; + */ + @java.lang.Override + public context.ContextOuterClass.ServiceIdOrBuilder getServiceIdOrBuilder() { + return serviceId_ == null ? context.ContextOuterClass.ServiceId.getDefaultInstance() : serviceId_; + } + + public static final int NAME_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object name_ = ""; + + /** + * string name = 2; + * @return The name. + */ + @java.lang.Override + public java.lang.String getName() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + name_ = s; + return s; + } + } + + /** + * string name = 2; + * @return The bytes for name. + */ + @java.lang.Override + public com.google.protobuf.ByteString getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int SERVICE_TYPE_FIELD_NUMBER = 3; + + private int serviceType_ = 0; + + /** + * .context.ServiceTypeEnum service_type = 3; + * @return The enum numeric value on the wire for serviceType. + */ + @java.lang.Override + public int getServiceTypeValue() { + return serviceType_; + } + + /** + * .context.ServiceTypeEnum service_type = 3; + * @return The serviceType. + */ + @java.lang.Override + public context.ContextOuterClass.ServiceTypeEnum getServiceType() { + context.ContextOuterClass.ServiceTypeEnum result = context.ContextOuterClass.ServiceTypeEnum.forNumber(serviceType_); + return result == null ? context.ContextOuterClass.ServiceTypeEnum.UNRECOGNIZED : result; + } + + public static final int SERVICE_ENDPOINT_IDS_FIELD_NUMBER = 4; + + @SuppressWarnings("serial") + private java.util.List serviceEndpointIds_; + + /** + * repeated .context.EndPointId service_endpoint_ids = 4; + */ + @java.lang.Override + public java.util.List getServiceEndpointIdsList() { + return serviceEndpointIds_; + } + + /** + * repeated .context.EndPointId service_endpoint_ids = 4; + */ + @java.lang.Override + public java.util.List getServiceEndpointIdsOrBuilderList() { + return serviceEndpointIds_; + } + + /** + * repeated .context.EndPointId service_endpoint_ids = 4; + */ + @java.lang.Override + public int getServiceEndpointIdsCount() { + return serviceEndpointIds_.size(); + } + + /** + * repeated .context.EndPointId service_endpoint_ids = 4; + */ + @java.lang.Override + public context.ContextOuterClass.EndPointId getServiceEndpointIds(int index) { + return serviceEndpointIds_.get(index); + } + + /** + * repeated .context.EndPointId service_endpoint_ids = 4; + */ + @java.lang.Override + public context.ContextOuterClass.EndPointIdOrBuilder getServiceEndpointIdsOrBuilder(int index) { + return serviceEndpointIds_.get(index); + } + + public static final int SERVICE_CONSTRAINTS_FIELD_NUMBER = 5; + + @SuppressWarnings("serial") + private java.util.List serviceConstraints_; + + /** + * repeated .context.Constraint service_constraints = 5; + */ + @java.lang.Override + public java.util.List getServiceConstraintsList() { + return serviceConstraints_; + } + + /** + * repeated .context.Constraint service_constraints = 5; + */ + @java.lang.Override + public java.util.List getServiceConstraintsOrBuilderList() { + return serviceConstraints_; + } + + /** + * repeated .context.Constraint service_constraints = 5; + */ + @java.lang.Override + public int getServiceConstraintsCount() { + return serviceConstraints_.size(); + } + + /** + * repeated .context.Constraint service_constraints = 5; + */ + @java.lang.Override + public context.ContextOuterClass.Constraint getServiceConstraints(int index) { + return serviceConstraints_.get(index); + } + + /** + * repeated .context.Constraint service_constraints = 5; + */ + @java.lang.Override + public context.ContextOuterClass.ConstraintOrBuilder getServiceConstraintsOrBuilder(int index) { + return serviceConstraints_.get(index); + } + + public static final int SERVICE_STATUS_FIELD_NUMBER = 6; + + private context.ContextOuterClass.ServiceStatus serviceStatus_; + + /** + * .context.ServiceStatus service_status = 6; + * @return Whether the serviceStatus field is set. + */ + @java.lang.Override + public boolean hasServiceStatus() { + return serviceStatus_ != null; + } + + /** + * .context.ServiceStatus service_status = 6; + * @return The serviceStatus. + */ + @java.lang.Override + public context.ContextOuterClass.ServiceStatus getServiceStatus() { + return serviceStatus_ == null ? context.ContextOuterClass.ServiceStatus.getDefaultInstance() : serviceStatus_; + } + + /** + * .context.ServiceStatus service_status = 6; + */ + @java.lang.Override + public context.ContextOuterClass.ServiceStatusOrBuilder getServiceStatusOrBuilder() { + return serviceStatus_ == null ? context.ContextOuterClass.ServiceStatus.getDefaultInstance() : serviceStatus_; + } + + public static final int SERVICE_CONFIG_FIELD_NUMBER = 7; + + private context.ContextOuterClass.ServiceConfig serviceConfig_; + + /** + * .context.ServiceConfig service_config = 7; + * @return Whether the serviceConfig field is set. + */ + @java.lang.Override + public boolean hasServiceConfig() { + return serviceConfig_ != null; + } + + /** + * .context.ServiceConfig service_config = 7; + * @return The serviceConfig. + */ + @java.lang.Override + public context.ContextOuterClass.ServiceConfig getServiceConfig() { + return serviceConfig_ == null ? context.ContextOuterClass.ServiceConfig.getDefaultInstance() : serviceConfig_; + } + + /** + * .context.ServiceConfig service_config = 7; + */ + @java.lang.Override + public context.ContextOuterClass.ServiceConfigOrBuilder getServiceConfigOrBuilder() { + return serviceConfig_ == null ? context.ContextOuterClass.ServiceConfig.getDefaultInstance() : serviceConfig_; + } + + public static final int TIMESTAMP_FIELD_NUMBER = 8; + + private context.ContextOuterClass.Timestamp timestamp_; + + /** + * .context.Timestamp timestamp = 8; + * @return Whether the timestamp field is set. + */ + @java.lang.Override + public boolean hasTimestamp() { + return timestamp_ != null; + } + + /** + * .context.Timestamp timestamp = 8; + * @return The timestamp. + */ + @java.lang.Override + public context.ContextOuterClass.Timestamp getTimestamp() { + return timestamp_ == null ? context.ContextOuterClass.Timestamp.getDefaultInstance() : timestamp_; + } + + /** + * .context.Timestamp timestamp = 8; + */ + @java.lang.Override + public context.ContextOuterClass.TimestampOrBuilder getTimestampOrBuilder() { + return timestamp_ == null ? context.ContextOuterClass.Timestamp.getDefaultInstance() : timestamp_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (serviceId_ != null) { + output.writeMessage(1, getServiceId()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, name_); + } + if (serviceType_ != context.ContextOuterClass.ServiceTypeEnum.SERVICETYPE_UNKNOWN.getNumber()) { + output.writeEnum(3, serviceType_); + } + for (int i = 0; i < serviceEndpointIds_.size(); i++) { + output.writeMessage(4, serviceEndpointIds_.get(i)); + } + for (int i = 0; i < serviceConstraints_.size(); i++) { + output.writeMessage(5, serviceConstraints_.get(i)); + } + if (serviceStatus_ != null) { + output.writeMessage(6, getServiceStatus()); + } + if (serviceConfig_ != null) { + output.writeMessage(7, getServiceConfig()); + } + if (timestamp_ != null) { + output.writeMessage(8, getTimestamp()); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + if (serviceId_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getServiceId()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, name_); + } + if (serviceType_ != context.ContextOuterClass.ServiceTypeEnum.SERVICETYPE_UNKNOWN.getNumber()) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(3, serviceType_); + } + for (int i = 0; i < serviceEndpointIds_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, serviceEndpointIds_.get(i)); + } + for (int i = 0; i < serviceConstraints_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, serviceConstraints_.get(i)); + } + if (serviceStatus_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(6, getServiceStatus()); + } + if (serviceConfig_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(7, getServiceConfig()); + } + if (timestamp_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(8, getTimestamp()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.Service)) { + return super.equals(obj); + } + context.ContextOuterClass.Service other = (context.ContextOuterClass.Service) obj; + if (hasServiceId() != other.hasServiceId()) + return false; + if (hasServiceId()) { + if (!getServiceId().equals(other.getServiceId())) + return false; + } + if (!getName().equals(other.getName())) + return false; + if (serviceType_ != other.serviceType_) + return false; + if (!getServiceEndpointIdsList().equals(other.getServiceEndpointIdsList())) + return false; + if (!getServiceConstraintsList().equals(other.getServiceConstraintsList())) + return false; + if (hasServiceStatus() != other.hasServiceStatus()) + return false; + if (hasServiceStatus()) { + if (!getServiceStatus().equals(other.getServiceStatus())) + return false; + } + if (hasServiceConfig() != other.hasServiceConfig()) + return false; + if (hasServiceConfig()) { + if (!getServiceConfig().equals(other.getServiceConfig())) + return false; + } + if (hasTimestamp() != other.hasTimestamp()) + return false; + if (hasTimestamp()) { + if (!getTimestamp().equals(other.getTimestamp())) + return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasServiceId()) { + hash = (37 * hash) + SERVICE_ID_FIELD_NUMBER; + hash = (53 * hash) + getServiceId().hashCode(); + } + hash = (37 * hash) + NAME_FIELD_NUMBER; + hash = (53 * hash) + getName().hashCode(); + hash = (37 * hash) + SERVICE_TYPE_FIELD_NUMBER; + hash = (53 * hash) + serviceType_; + if (getServiceEndpointIdsCount() > 0) { + hash = (37 * hash) + SERVICE_ENDPOINT_IDS_FIELD_NUMBER; + hash = (53 * hash) + getServiceEndpointIdsList().hashCode(); + } + if (getServiceConstraintsCount() > 0) { + hash = (37 * hash) + SERVICE_CONSTRAINTS_FIELD_NUMBER; + hash = (53 * hash) + getServiceConstraintsList().hashCode(); + } + if (hasServiceStatus()) { + hash = (37 * hash) + SERVICE_STATUS_FIELD_NUMBER; + hash = (53 * hash) + getServiceStatus().hashCode(); + } + if (hasServiceConfig()) { + hash = (37 * hash) + SERVICE_CONFIG_FIELD_NUMBER; + hash = (53 * hash) + getServiceConfig().hashCode(); + } + if (hasTimestamp()) { + hash = (37 * hash) + TIMESTAMP_FIELD_NUMBER; + hash = (53 * hash) + getTimestamp().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.Service parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.Service parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.Service parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.Service parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.Service parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.Service parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.Service parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.Service parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.Service parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.Service parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.Service parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.Service parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.Service prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code context.Service} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.Service) + context.ContextOuterClass.ServiceOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_Service_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_Service_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.Service.class, context.ContextOuterClass.Service.Builder.class); + } + + // Construct using context.ContextOuterClass.Service.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + serviceId_ = null; + if (serviceIdBuilder_ != null) { + serviceIdBuilder_.dispose(); + serviceIdBuilder_ = null; + } + name_ = ""; + serviceType_ = 0; + if (serviceEndpointIdsBuilder_ == null) { + serviceEndpointIds_ = java.util.Collections.emptyList(); + } else { + serviceEndpointIds_ = null; + serviceEndpointIdsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000008); + if (serviceConstraintsBuilder_ == null) { + serviceConstraints_ = java.util.Collections.emptyList(); + } else { + serviceConstraints_ = null; + serviceConstraintsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000010); + serviceStatus_ = null; + if (serviceStatusBuilder_ != null) { + serviceStatusBuilder_.dispose(); + serviceStatusBuilder_ = null; + } + serviceConfig_ = null; + if (serviceConfigBuilder_ != null) { + serviceConfigBuilder_.dispose(); + serviceConfigBuilder_ = null; + } + timestamp_ = null; + if (timestampBuilder_ != null) { + timestampBuilder_.dispose(); + timestampBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_Service_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.Service getDefaultInstanceForType() { + return context.ContextOuterClass.Service.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.Service build() { + context.ContextOuterClass.Service result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.Service buildPartial() { + context.ContextOuterClass.Service result = new context.ContextOuterClass.Service(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(context.ContextOuterClass.Service result) { + if (serviceEndpointIdsBuilder_ == null) { + if (((bitField0_ & 0x00000008) != 0)) { + serviceEndpointIds_ = java.util.Collections.unmodifiableList(serviceEndpointIds_); + bitField0_ = (bitField0_ & ~0x00000008); + } + result.serviceEndpointIds_ = serviceEndpointIds_; + } else { + result.serviceEndpointIds_ = serviceEndpointIdsBuilder_.build(); + } + if (serviceConstraintsBuilder_ == null) { + if (((bitField0_ & 0x00000010) != 0)) { + serviceConstraints_ = java.util.Collections.unmodifiableList(serviceConstraints_); + bitField0_ = (bitField0_ & ~0x00000010); + } + result.serviceConstraints_ = serviceConstraints_; + } else { + result.serviceConstraints_ = serviceConstraintsBuilder_.build(); + } + } + + private void buildPartial0(context.ContextOuterClass.Service result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.serviceId_ = serviceIdBuilder_ == null ? serviceId_ : serviceIdBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.name_ = name_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.serviceType_ = serviceType_; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.serviceStatus_ = serviceStatusBuilder_ == null ? serviceStatus_ : serviceStatusBuilder_.build(); + } + if (((from_bitField0_ & 0x00000040) != 0)) { + result.serviceConfig_ = serviceConfigBuilder_ == null ? serviceConfig_ : serviceConfigBuilder_.build(); + } + if (((from_bitField0_ & 0x00000080) != 0)) { + result.timestamp_ = timestampBuilder_ == null ? timestamp_ : timestampBuilder_.build(); + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.Service) { + return mergeFrom((context.ContextOuterClass.Service) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.Service other) { + if (other == context.ContextOuterClass.Service.getDefaultInstance()) + return this; + if (other.hasServiceId()) { + mergeServiceId(other.getServiceId()); + } + if (!other.getName().isEmpty()) { + name_ = other.name_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (other.serviceType_ != 0) { + setServiceTypeValue(other.getServiceTypeValue()); + } + if (serviceEndpointIdsBuilder_ == null) { + if (!other.serviceEndpointIds_.isEmpty()) { + if (serviceEndpointIds_.isEmpty()) { + serviceEndpointIds_ = other.serviceEndpointIds_; + bitField0_ = (bitField0_ & ~0x00000008); + } else { + ensureServiceEndpointIdsIsMutable(); + serviceEndpointIds_.addAll(other.serviceEndpointIds_); + } + onChanged(); + } + } else { + if (!other.serviceEndpointIds_.isEmpty()) { + if (serviceEndpointIdsBuilder_.isEmpty()) { + serviceEndpointIdsBuilder_.dispose(); + serviceEndpointIdsBuilder_ = null; + serviceEndpointIds_ = other.serviceEndpointIds_; + bitField0_ = (bitField0_ & ~0x00000008); + serviceEndpointIdsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getServiceEndpointIdsFieldBuilder() : null; + } else { + serviceEndpointIdsBuilder_.addAllMessages(other.serviceEndpointIds_); + } + } + } + if (serviceConstraintsBuilder_ == null) { + if (!other.serviceConstraints_.isEmpty()) { + if (serviceConstraints_.isEmpty()) { + serviceConstraints_ = other.serviceConstraints_; + bitField0_ = (bitField0_ & ~0x00000010); + } else { + ensureServiceConstraintsIsMutable(); + serviceConstraints_.addAll(other.serviceConstraints_); + } + onChanged(); + } + } else { + if (!other.serviceConstraints_.isEmpty()) { + if (serviceConstraintsBuilder_.isEmpty()) { + serviceConstraintsBuilder_.dispose(); + serviceConstraintsBuilder_ = null; + serviceConstraints_ = other.serviceConstraints_; + bitField0_ = (bitField0_ & ~0x00000010); + serviceConstraintsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getServiceConstraintsFieldBuilder() : null; + } else { + serviceConstraintsBuilder_.addAllMessages(other.serviceConstraints_); + } + } + } + if (other.hasServiceStatus()) { + mergeServiceStatus(other.getServiceStatus()); + } + if (other.hasServiceConfig()) { + mergeServiceConfig(other.getServiceConfig()); + } + if (other.hasTimestamp()) { + mergeTimestamp(other.getTimestamp()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getServiceIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + name_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } + // case 18 + case 24: + { + serviceType_ = input.readEnum(); + bitField0_ |= 0x00000004; + break; + } + // case 24 + case 34: + { + context.ContextOuterClass.EndPointId m = input.readMessage(context.ContextOuterClass.EndPointId.parser(), extensionRegistry); + if (serviceEndpointIdsBuilder_ == null) { + ensureServiceEndpointIdsIsMutable(); + serviceEndpointIds_.add(m); + } else { + serviceEndpointIdsBuilder_.addMessage(m); + } + break; + } + // case 34 + case 42: + { + context.ContextOuterClass.Constraint m = input.readMessage(context.ContextOuterClass.Constraint.parser(), extensionRegistry); + if (serviceConstraintsBuilder_ == null) { + ensureServiceConstraintsIsMutable(); + serviceConstraints_.add(m); + } else { + serviceConstraintsBuilder_.addMessage(m); + } + break; + } + // case 42 + case 50: + { + input.readMessage(getServiceStatusFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000020; + break; + } + // case 50 + case 58: + { + input.readMessage(getServiceConfigFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000040; + break; + } + // case 58 + case 66: + { + input.readMessage(getTimestampFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000080; + break; + } + // case 66 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private context.ContextOuterClass.ServiceId serviceId_; + + private com.google.protobuf.SingleFieldBuilderV3 serviceIdBuilder_; + + /** + * .context.ServiceId service_id = 1; + * @return Whether the serviceId field is set. + */ + public boolean hasServiceId() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * .context.ServiceId service_id = 1; + * @return The serviceId. + */ + public context.ContextOuterClass.ServiceId getServiceId() { + if (serviceIdBuilder_ == null) { + return serviceId_ == null ? context.ContextOuterClass.ServiceId.getDefaultInstance() : serviceId_; + } else { + return serviceIdBuilder_.getMessage(); + } + } + + /** + * .context.ServiceId service_id = 1; + */ + public Builder setServiceId(context.ContextOuterClass.ServiceId value) { + if (serviceIdBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + serviceId_ = value; + } else { + serviceIdBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.ServiceId service_id = 1; + */ + public Builder setServiceId(context.ContextOuterClass.ServiceId.Builder builderForValue) { + if (serviceIdBuilder_ == null) { + serviceId_ = builderForValue.build(); + } else { + serviceIdBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.ServiceId service_id = 1; + */ + public Builder mergeServiceId(context.ContextOuterClass.ServiceId value) { + if (serviceIdBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && serviceId_ != null && serviceId_ != context.ContextOuterClass.ServiceId.getDefaultInstance()) { + getServiceIdBuilder().mergeFrom(value); + } else { + serviceId_ = value; + } + } else { + serviceIdBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.ServiceId service_id = 1; + */ + public Builder clearServiceId() { + bitField0_ = (bitField0_ & ~0x00000001); + serviceId_ = null; + if (serviceIdBuilder_ != null) { + serviceIdBuilder_.dispose(); + serviceIdBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.ServiceId service_id = 1; + */ + public context.ContextOuterClass.ServiceId.Builder getServiceIdBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getServiceIdFieldBuilder().getBuilder(); + } + + /** + * .context.ServiceId service_id = 1; + */ + public context.ContextOuterClass.ServiceIdOrBuilder getServiceIdOrBuilder() { + if (serviceIdBuilder_ != null) { + return serviceIdBuilder_.getMessageOrBuilder(); + } else { + return serviceId_ == null ? context.ContextOuterClass.ServiceId.getDefaultInstance() : serviceId_; + } + } + + /** + * .context.ServiceId service_id = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3 getServiceIdFieldBuilder() { + if (serviceIdBuilder_ == null) { + serviceIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getServiceId(), getParentForChildren(), isClean()); + serviceId_ = null; + } + return serviceIdBuilder_; + } + + private java.lang.Object name_ = ""; + + /** + * string name = 2; + * @return The name. + */ + public java.lang.String getName() { + java.lang.Object ref = name_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + name_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * string name = 2; + * @return The bytes for name. + */ + public com.google.protobuf.ByteString getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * string name = 2; + * @param value The name to set. + * @return This builder for chaining. + */ + public Builder setName(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + name_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * string name = 2; + * @return This builder for chaining. + */ + public Builder clearName() { + name_ = getDefaultInstance().getName(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * string name = 2; + * @param value The bytes for name to set. + * @return This builder for chaining. + */ + public Builder setNameBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + name_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private int serviceType_ = 0; + + /** + * .context.ServiceTypeEnum service_type = 3; + * @return The enum numeric value on the wire for serviceType. + */ + @java.lang.Override + public int getServiceTypeValue() { + return serviceType_; + } + + /** + * .context.ServiceTypeEnum service_type = 3; + * @param value The enum numeric value on the wire for serviceType to set. + * @return This builder for chaining. + */ + public Builder setServiceTypeValue(int value) { + serviceType_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * .context.ServiceTypeEnum service_type = 3; + * @return The serviceType. + */ + @java.lang.Override + public context.ContextOuterClass.ServiceTypeEnum getServiceType() { + context.ContextOuterClass.ServiceTypeEnum result = context.ContextOuterClass.ServiceTypeEnum.forNumber(serviceType_); + return result == null ? context.ContextOuterClass.ServiceTypeEnum.UNRECOGNIZED : result; + } + + /** + * .context.ServiceTypeEnum service_type = 3; + * @param value The serviceType to set. + * @return This builder for chaining. + */ + public Builder setServiceType(context.ContextOuterClass.ServiceTypeEnum value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000004; + serviceType_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * .context.ServiceTypeEnum service_type = 3; + * @return This builder for chaining. + */ + public Builder clearServiceType() { + bitField0_ = (bitField0_ & ~0x00000004); + serviceType_ = 0; + onChanged(); + return this; + } + + private java.util.List serviceEndpointIds_ = java.util.Collections.emptyList(); + + private void ensureServiceEndpointIdsIsMutable() { + if (!((bitField0_ & 0x00000008) != 0)) { + serviceEndpointIds_ = new java.util.ArrayList(serviceEndpointIds_); + bitField0_ |= 0x00000008; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3 serviceEndpointIdsBuilder_; + + /** + * repeated .context.EndPointId service_endpoint_ids = 4; + */ + public java.util.List getServiceEndpointIdsList() { + if (serviceEndpointIdsBuilder_ == null) { + return java.util.Collections.unmodifiableList(serviceEndpointIds_); + } else { + return serviceEndpointIdsBuilder_.getMessageList(); + } + } + + /** + * repeated .context.EndPointId service_endpoint_ids = 4; + */ + public int getServiceEndpointIdsCount() { + if (serviceEndpointIdsBuilder_ == null) { + return serviceEndpointIds_.size(); + } else { + return serviceEndpointIdsBuilder_.getCount(); + } + } + + /** + * repeated .context.EndPointId service_endpoint_ids = 4; + */ + public context.ContextOuterClass.EndPointId getServiceEndpointIds(int index) { + if (serviceEndpointIdsBuilder_ == null) { + return serviceEndpointIds_.get(index); + } else { + return serviceEndpointIdsBuilder_.getMessage(index); + } + } + + /** + * repeated .context.EndPointId service_endpoint_ids = 4; + */ + public Builder setServiceEndpointIds(int index, context.ContextOuterClass.EndPointId value) { + if (serviceEndpointIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureServiceEndpointIdsIsMutable(); + serviceEndpointIds_.set(index, value); + onChanged(); + } else { + serviceEndpointIdsBuilder_.setMessage(index, value); + } + return this; + } + + /** + * repeated .context.EndPointId service_endpoint_ids = 4; + */ + public Builder setServiceEndpointIds(int index, context.ContextOuterClass.EndPointId.Builder builderForValue) { + if (serviceEndpointIdsBuilder_ == null) { + ensureServiceEndpointIdsIsMutable(); + serviceEndpointIds_.set(index, builderForValue.build()); + onChanged(); + } else { + serviceEndpointIdsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.EndPointId service_endpoint_ids = 4; + */ + public Builder addServiceEndpointIds(context.ContextOuterClass.EndPointId value) { + if (serviceEndpointIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureServiceEndpointIdsIsMutable(); + serviceEndpointIds_.add(value); + onChanged(); + } else { + serviceEndpointIdsBuilder_.addMessage(value); + } + return this; + } + + /** + * repeated .context.EndPointId service_endpoint_ids = 4; + */ + public Builder addServiceEndpointIds(int index, context.ContextOuterClass.EndPointId value) { + if (serviceEndpointIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureServiceEndpointIdsIsMutable(); + serviceEndpointIds_.add(index, value); + onChanged(); + } else { + serviceEndpointIdsBuilder_.addMessage(index, value); + } + return this; + } + + /** + * repeated .context.EndPointId service_endpoint_ids = 4; + */ + public Builder addServiceEndpointIds(context.ContextOuterClass.EndPointId.Builder builderForValue) { + if (serviceEndpointIdsBuilder_ == null) { + ensureServiceEndpointIdsIsMutable(); + serviceEndpointIds_.add(builderForValue.build()); + onChanged(); + } else { + serviceEndpointIdsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * repeated .context.EndPointId service_endpoint_ids = 4; + */ + public Builder addServiceEndpointIds(int index, context.ContextOuterClass.EndPointId.Builder builderForValue) { + if (serviceEndpointIdsBuilder_ == null) { + ensureServiceEndpointIdsIsMutable(); + serviceEndpointIds_.add(index, builderForValue.build()); + onChanged(); + } else { + serviceEndpointIdsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.EndPointId service_endpoint_ids = 4; + */ + public Builder addAllServiceEndpointIds(java.lang.Iterable values) { + if (serviceEndpointIdsBuilder_ == null) { + ensureServiceEndpointIdsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, serviceEndpointIds_); + onChanged(); + } else { + serviceEndpointIdsBuilder_.addAllMessages(values); + } + return this; + } + + /** + * repeated .context.EndPointId service_endpoint_ids = 4; + */ + public Builder clearServiceEndpointIds() { + if (serviceEndpointIdsBuilder_ == null) { + serviceEndpointIds_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000008); + onChanged(); + } else { + serviceEndpointIdsBuilder_.clear(); + } + return this; + } + + /** + * repeated .context.EndPointId service_endpoint_ids = 4; + */ + public Builder removeServiceEndpointIds(int index) { + if (serviceEndpointIdsBuilder_ == null) { + ensureServiceEndpointIdsIsMutable(); + serviceEndpointIds_.remove(index); + onChanged(); + } else { + serviceEndpointIdsBuilder_.remove(index); + } + return this; + } + + /** + * repeated .context.EndPointId service_endpoint_ids = 4; + */ + public context.ContextOuterClass.EndPointId.Builder getServiceEndpointIdsBuilder(int index) { + return getServiceEndpointIdsFieldBuilder().getBuilder(index); + } + + /** + * repeated .context.EndPointId service_endpoint_ids = 4; + */ + public context.ContextOuterClass.EndPointIdOrBuilder getServiceEndpointIdsOrBuilder(int index) { + if (serviceEndpointIdsBuilder_ == null) { + return serviceEndpointIds_.get(index); + } else { + return serviceEndpointIdsBuilder_.getMessageOrBuilder(index); + } + } + + /** + * repeated .context.EndPointId service_endpoint_ids = 4; + */ + public java.util.List getServiceEndpointIdsOrBuilderList() { + if (serviceEndpointIdsBuilder_ != null) { + return serviceEndpointIdsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(serviceEndpointIds_); + } + } + + /** + * repeated .context.EndPointId service_endpoint_ids = 4; + */ + public context.ContextOuterClass.EndPointId.Builder addServiceEndpointIdsBuilder() { + return getServiceEndpointIdsFieldBuilder().addBuilder(context.ContextOuterClass.EndPointId.getDefaultInstance()); + } + + /** + * repeated .context.EndPointId service_endpoint_ids = 4; + */ + public context.ContextOuterClass.EndPointId.Builder addServiceEndpointIdsBuilder(int index) { + return getServiceEndpointIdsFieldBuilder().addBuilder(index, context.ContextOuterClass.EndPointId.getDefaultInstance()); + } + + /** + * repeated .context.EndPointId service_endpoint_ids = 4; + */ + public java.util.List getServiceEndpointIdsBuilderList() { + return getServiceEndpointIdsFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3 getServiceEndpointIdsFieldBuilder() { + if (serviceEndpointIdsBuilder_ == null) { + serviceEndpointIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3(serviceEndpointIds_, ((bitField0_ & 0x00000008) != 0), getParentForChildren(), isClean()); + serviceEndpointIds_ = null; + } + return serviceEndpointIdsBuilder_; + } + + private java.util.List serviceConstraints_ = java.util.Collections.emptyList(); + + private void ensureServiceConstraintsIsMutable() { + if (!((bitField0_ & 0x00000010) != 0)) { + serviceConstraints_ = new java.util.ArrayList(serviceConstraints_); + bitField0_ |= 0x00000010; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3 serviceConstraintsBuilder_; + + /** + * repeated .context.Constraint service_constraints = 5; + */ + public java.util.List getServiceConstraintsList() { + if (serviceConstraintsBuilder_ == null) { + return java.util.Collections.unmodifiableList(serviceConstraints_); + } else { + return serviceConstraintsBuilder_.getMessageList(); + } + } + + /** + * repeated .context.Constraint service_constraints = 5; + */ + public int getServiceConstraintsCount() { + if (serviceConstraintsBuilder_ == null) { + return serviceConstraints_.size(); + } else { + return serviceConstraintsBuilder_.getCount(); + } + } + + /** + * repeated .context.Constraint service_constraints = 5; + */ + public context.ContextOuterClass.Constraint getServiceConstraints(int index) { + if (serviceConstraintsBuilder_ == null) { + return serviceConstraints_.get(index); + } else { + return serviceConstraintsBuilder_.getMessage(index); + } + } + + /** + * repeated .context.Constraint service_constraints = 5; + */ + public Builder setServiceConstraints(int index, context.ContextOuterClass.Constraint value) { + if (serviceConstraintsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureServiceConstraintsIsMutable(); + serviceConstraints_.set(index, value); + onChanged(); + } else { + serviceConstraintsBuilder_.setMessage(index, value); + } + return this; + } + + /** + * repeated .context.Constraint service_constraints = 5; + */ + public Builder setServiceConstraints(int index, context.ContextOuterClass.Constraint.Builder builderForValue) { + if (serviceConstraintsBuilder_ == null) { + ensureServiceConstraintsIsMutable(); + serviceConstraints_.set(index, builderForValue.build()); + onChanged(); + } else { + serviceConstraintsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.Constraint service_constraints = 5; + */ + public Builder addServiceConstraints(context.ContextOuterClass.Constraint value) { + if (serviceConstraintsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureServiceConstraintsIsMutable(); + serviceConstraints_.add(value); + onChanged(); + } else { + serviceConstraintsBuilder_.addMessage(value); + } + return this; + } + + /** + * repeated .context.Constraint service_constraints = 5; + */ + public Builder addServiceConstraints(int index, context.ContextOuterClass.Constraint value) { + if (serviceConstraintsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureServiceConstraintsIsMutable(); + serviceConstraints_.add(index, value); + onChanged(); + } else { + serviceConstraintsBuilder_.addMessage(index, value); + } + return this; + } + + /** + * repeated .context.Constraint service_constraints = 5; + */ + public Builder addServiceConstraints(context.ContextOuterClass.Constraint.Builder builderForValue) { + if (serviceConstraintsBuilder_ == null) { + ensureServiceConstraintsIsMutable(); + serviceConstraints_.add(builderForValue.build()); + onChanged(); + } else { + serviceConstraintsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * repeated .context.Constraint service_constraints = 5; + */ + public Builder addServiceConstraints(int index, context.ContextOuterClass.Constraint.Builder builderForValue) { + if (serviceConstraintsBuilder_ == null) { + ensureServiceConstraintsIsMutable(); + serviceConstraints_.add(index, builderForValue.build()); + onChanged(); + } else { + serviceConstraintsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.Constraint service_constraints = 5; + */ + public Builder addAllServiceConstraints(java.lang.Iterable values) { + if (serviceConstraintsBuilder_ == null) { + ensureServiceConstraintsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, serviceConstraints_); + onChanged(); + } else { + serviceConstraintsBuilder_.addAllMessages(values); + } + return this; + } + + /** + * repeated .context.Constraint service_constraints = 5; + */ + public Builder clearServiceConstraints() { + if (serviceConstraintsBuilder_ == null) { + serviceConstraints_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000010); + onChanged(); + } else { + serviceConstraintsBuilder_.clear(); + } + return this; + } + + /** + * repeated .context.Constraint service_constraints = 5; + */ + public Builder removeServiceConstraints(int index) { + if (serviceConstraintsBuilder_ == null) { + ensureServiceConstraintsIsMutable(); + serviceConstraints_.remove(index); + onChanged(); + } else { + serviceConstraintsBuilder_.remove(index); + } + return this; + } + + /** + * repeated .context.Constraint service_constraints = 5; + */ + public context.ContextOuterClass.Constraint.Builder getServiceConstraintsBuilder(int index) { + return getServiceConstraintsFieldBuilder().getBuilder(index); + } + + /** + * repeated .context.Constraint service_constraints = 5; + */ + public context.ContextOuterClass.ConstraintOrBuilder getServiceConstraintsOrBuilder(int index) { + if (serviceConstraintsBuilder_ == null) { + return serviceConstraints_.get(index); + } else { + return serviceConstraintsBuilder_.getMessageOrBuilder(index); + } + } + + /** + * repeated .context.Constraint service_constraints = 5; + */ + public java.util.List getServiceConstraintsOrBuilderList() { + if (serviceConstraintsBuilder_ != null) { + return serviceConstraintsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(serviceConstraints_); + } + } + + /** + * repeated .context.Constraint service_constraints = 5; + */ + public context.ContextOuterClass.Constraint.Builder addServiceConstraintsBuilder() { + return getServiceConstraintsFieldBuilder().addBuilder(context.ContextOuterClass.Constraint.getDefaultInstance()); + } + + /** + * repeated .context.Constraint service_constraints = 5; + */ + public context.ContextOuterClass.Constraint.Builder addServiceConstraintsBuilder(int index) { + return getServiceConstraintsFieldBuilder().addBuilder(index, context.ContextOuterClass.Constraint.getDefaultInstance()); + } + + /** + * repeated .context.Constraint service_constraints = 5; + */ + public java.util.List getServiceConstraintsBuilderList() { + return getServiceConstraintsFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3 getServiceConstraintsFieldBuilder() { + if (serviceConstraintsBuilder_ == null) { + serviceConstraintsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3(serviceConstraints_, ((bitField0_ & 0x00000010) != 0), getParentForChildren(), isClean()); + serviceConstraints_ = null; + } + return serviceConstraintsBuilder_; + } + + private context.ContextOuterClass.ServiceStatus serviceStatus_; + + private com.google.protobuf.SingleFieldBuilderV3 serviceStatusBuilder_; + + /** + * .context.ServiceStatus service_status = 6; + * @return Whether the serviceStatus field is set. + */ + public boolean hasServiceStatus() { + return ((bitField0_ & 0x00000020) != 0); + } + + /** + * .context.ServiceStatus service_status = 6; + * @return The serviceStatus. + */ + public context.ContextOuterClass.ServiceStatus getServiceStatus() { + if (serviceStatusBuilder_ == null) { + return serviceStatus_ == null ? context.ContextOuterClass.ServiceStatus.getDefaultInstance() : serviceStatus_; + } else { + return serviceStatusBuilder_.getMessage(); + } + } + + /** + * .context.ServiceStatus service_status = 6; + */ + public Builder setServiceStatus(context.ContextOuterClass.ServiceStatus value) { + if (serviceStatusBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + serviceStatus_ = value; + } else { + serviceStatusBuilder_.setMessage(value); + } + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + + /** + * .context.ServiceStatus service_status = 6; + */ + public Builder setServiceStatus(context.ContextOuterClass.ServiceStatus.Builder builderForValue) { + if (serviceStatusBuilder_ == null) { + serviceStatus_ = builderForValue.build(); + } else { + serviceStatusBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + + /** + * .context.ServiceStatus service_status = 6; + */ + public Builder mergeServiceStatus(context.ContextOuterClass.ServiceStatus value) { + if (serviceStatusBuilder_ == null) { + if (((bitField0_ & 0x00000020) != 0) && serviceStatus_ != null && serviceStatus_ != context.ContextOuterClass.ServiceStatus.getDefaultInstance()) { + getServiceStatusBuilder().mergeFrom(value); + } else { + serviceStatus_ = value; + } + } else { + serviceStatusBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + + /** + * .context.ServiceStatus service_status = 6; + */ + public Builder clearServiceStatus() { + bitField0_ = (bitField0_ & ~0x00000020); + serviceStatus_ = null; + if (serviceStatusBuilder_ != null) { + serviceStatusBuilder_.dispose(); + serviceStatusBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.ServiceStatus service_status = 6; + */ + public context.ContextOuterClass.ServiceStatus.Builder getServiceStatusBuilder() { + bitField0_ |= 0x00000020; + onChanged(); + return getServiceStatusFieldBuilder().getBuilder(); + } + + /** + * .context.ServiceStatus service_status = 6; + */ + public context.ContextOuterClass.ServiceStatusOrBuilder getServiceStatusOrBuilder() { + if (serviceStatusBuilder_ != null) { + return serviceStatusBuilder_.getMessageOrBuilder(); + } else { + return serviceStatus_ == null ? context.ContextOuterClass.ServiceStatus.getDefaultInstance() : serviceStatus_; + } + } + + /** + * .context.ServiceStatus service_status = 6; + */ + private com.google.protobuf.SingleFieldBuilderV3 getServiceStatusFieldBuilder() { + if (serviceStatusBuilder_ == null) { + serviceStatusBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getServiceStatus(), getParentForChildren(), isClean()); + serviceStatus_ = null; + } + return serviceStatusBuilder_; + } + + private context.ContextOuterClass.ServiceConfig serviceConfig_; + + private com.google.protobuf.SingleFieldBuilderV3 serviceConfigBuilder_; + + /** + * .context.ServiceConfig service_config = 7; + * @return Whether the serviceConfig field is set. + */ + public boolean hasServiceConfig() { + return ((bitField0_ & 0x00000040) != 0); + } + + /** + * .context.ServiceConfig service_config = 7; + * @return The serviceConfig. + */ + public context.ContextOuterClass.ServiceConfig getServiceConfig() { + if (serviceConfigBuilder_ == null) { + return serviceConfig_ == null ? context.ContextOuterClass.ServiceConfig.getDefaultInstance() : serviceConfig_; + } else { + return serviceConfigBuilder_.getMessage(); + } + } + + /** + * .context.ServiceConfig service_config = 7; + */ + public Builder setServiceConfig(context.ContextOuterClass.ServiceConfig value) { + if (serviceConfigBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + serviceConfig_ = value; + } else { + serviceConfigBuilder_.setMessage(value); + } + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + + /** + * .context.ServiceConfig service_config = 7; + */ + public Builder setServiceConfig(context.ContextOuterClass.ServiceConfig.Builder builderForValue) { + if (serviceConfigBuilder_ == null) { + serviceConfig_ = builderForValue.build(); + } else { + serviceConfigBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + + /** + * .context.ServiceConfig service_config = 7; + */ + public Builder mergeServiceConfig(context.ContextOuterClass.ServiceConfig value) { + if (serviceConfigBuilder_ == null) { + if (((bitField0_ & 0x00000040) != 0) && serviceConfig_ != null && serviceConfig_ != context.ContextOuterClass.ServiceConfig.getDefaultInstance()) { + getServiceConfigBuilder().mergeFrom(value); + } else { + serviceConfig_ = value; + } + } else { + serviceConfigBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + + /** + * .context.ServiceConfig service_config = 7; + */ + public Builder clearServiceConfig() { + bitField0_ = (bitField0_ & ~0x00000040); + serviceConfig_ = null; + if (serviceConfigBuilder_ != null) { + serviceConfigBuilder_.dispose(); + serviceConfigBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.ServiceConfig service_config = 7; + */ + public context.ContextOuterClass.ServiceConfig.Builder getServiceConfigBuilder() { + bitField0_ |= 0x00000040; + onChanged(); + return getServiceConfigFieldBuilder().getBuilder(); + } + + /** + * .context.ServiceConfig service_config = 7; + */ + public context.ContextOuterClass.ServiceConfigOrBuilder getServiceConfigOrBuilder() { + if (serviceConfigBuilder_ != null) { + return serviceConfigBuilder_.getMessageOrBuilder(); + } else { + return serviceConfig_ == null ? context.ContextOuterClass.ServiceConfig.getDefaultInstance() : serviceConfig_; + } + } + + /** + * .context.ServiceConfig service_config = 7; + */ + private com.google.protobuf.SingleFieldBuilderV3 getServiceConfigFieldBuilder() { + if (serviceConfigBuilder_ == null) { + serviceConfigBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getServiceConfig(), getParentForChildren(), isClean()); + serviceConfig_ = null; + } + return serviceConfigBuilder_; + } + + private context.ContextOuterClass.Timestamp timestamp_; + + private com.google.protobuf.SingleFieldBuilderV3 timestampBuilder_; + + /** + * .context.Timestamp timestamp = 8; + * @return Whether the timestamp field is set. + */ + public boolean hasTimestamp() { + return ((bitField0_ & 0x00000080) != 0); + } + + /** + * .context.Timestamp timestamp = 8; + * @return The timestamp. + */ + public context.ContextOuterClass.Timestamp getTimestamp() { + if (timestampBuilder_ == null) { + return timestamp_ == null ? context.ContextOuterClass.Timestamp.getDefaultInstance() : timestamp_; + } else { + return timestampBuilder_.getMessage(); + } + } + + /** + * .context.Timestamp timestamp = 8; + */ + public Builder setTimestamp(context.ContextOuterClass.Timestamp value) { + if (timestampBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + timestamp_ = value; + } else { + timestampBuilder_.setMessage(value); + } + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + + /** + * .context.Timestamp timestamp = 8; + */ + public Builder setTimestamp(context.ContextOuterClass.Timestamp.Builder builderForValue) { + if (timestampBuilder_ == null) { + timestamp_ = builderForValue.build(); + } else { + timestampBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + + /** + * .context.Timestamp timestamp = 8; + */ + public Builder mergeTimestamp(context.ContextOuterClass.Timestamp value) { + if (timestampBuilder_ == null) { + if (((bitField0_ & 0x00000080) != 0) && timestamp_ != null && timestamp_ != context.ContextOuterClass.Timestamp.getDefaultInstance()) { + getTimestampBuilder().mergeFrom(value); + } else { + timestamp_ = value; + } + } else { + timestampBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + + /** + * .context.Timestamp timestamp = 8; + */ + public Builder clearTimestamp() { + bitField0_ = (bitField0_ & ~0x00000080); + timestamp_ = null; + if (timestampBuilder_ != null) { + timestampBuilder_.dispose(); + timestampBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.Timestamp timestamp = 8; + */ + public context.ContextOuterClass.Timestamp.Builder getTimestampBuilder() { + bitField0_ |= 0x00000080; + onChanged(); + return getTimestampFieldBuilder().getBuilder(); + } + + /** + * .context.Timestamp timestamp = 8; + */ + public context.ContextOuterClass.TimestampOrBuilder getTimestampOrBuilder() { + if (timestampBuilder_ != null) { + return timestampBuilder_.getMessageOrBuilder(); + } else { + return timestamp_ == null ? context.ContextOuterClass.Timestamp.getDefaultInstance() : timestamp_; + } + } + + /** + * .context.Timestamp timestamp = 8; + */ + private com.google.protobuf.SingleFieldBuilderV3 getTimestampFieldBuilder() { + if (timestampBuilder_ == null) { + timestampBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getTimestamp(), getParentForChildren(), isClean()); + timestamp_ = null; + } + return timestampBuilder_; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.Service) + } + + // @@protoc_insertion_point(class_scope:context.Service) + private static final context.ContextOuterClass.Service DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.Service(); + } + + public static context.ContextOuterClass.Service getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public Service parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.Service getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface ServiceStatusOrBuilder extends // @@protoc_insertion_point(interface_extends:context.ServiceStatus) + com.google.protobuf.MessageOrBuilder { + + /** + * .context.ServiceStatusEnum service_status = 1; + * @return The enum numeric value on the wire for serviceStatus. + */ + int getServiceStatusValue(); + + /** + * .context.ServiceStatusEnum service_status = 1; + * @return The serviceStatus. + */ + context.ContextOuterClass.ServiceStatusEnum getServiceStatus(); + } + + /** + * Protobuf type {@code context.ServiceStatus} + */ + public static final class ServiceStatus extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.ServiceStatus) + ServiceStatusOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use ServiceStatus.newBuilder() to construct. + private ServiceStatus(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private ServiceStatus() { + serviceStatus_ = 0; + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new ServiceStatus(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_ServiceStatus_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_ServiceStatus_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.ServiceStatus.class, context.ContextOuterClass.ServiceStatus.Builder.class); + } + + public static final int SERVICE_STATUS_FIELD_NUMBER = 1; + + private int serviceStatus_ = 0; + + /** + * .context.ServiceStatusEnum service_status = 1; + * @return The enum numeric value on the wire for serviceStatus. + */ + @java.lang.Override + public int getServiceStatusValue() { + return serviceStatus_; + } + + /** + * .context.ServiceStatusEnum service_status = 1; + * @return The serviceStatus. + */ + @java.lang.Override + public context.ContextOuterClass.ServiceStatusEnum getServiceStatus() { + context.ContextOuterClass.ServiceStatusEnum result = context.ContextOuterClass.ServiceStatusEnum.forNumber(serviceStatus_); + return result == null ? context.ContextOuterClass.ServiceStatusEnum.UNRECOGNIZED : result; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (serviceStatus_ != context.ContextOuterClass.ServiceStatusEnum.SERVICESTATUS_UNDEFINED.getNumber()) { + output.writeEnum(1, serviceStatus_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + if (serviceStatus_ != context.ContextOuterClass.ServiceStatusEnum.SERVICESTATUS_UNDEFINED.getNumber()) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(1, serviceStatus_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.ServiceStatus)) { + return super.equals(obj); + } + context.ContextOuterClass.ServiceStatus other = (context.ContextOuterClass.ServiceStatus) obj; + if (serviceStatus_ != other.serviceStatus_) + return false; + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + SERVICE_STATUS_FIELD_NUMBER; + hash = (53 * hash) + serviceStatus_; + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.ServiceStatus parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ServiceStatus parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ServiceStatus parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ServiceStatus parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ServiceStatus parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ServiceStatus parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ServiceStatus parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ServiceStatus parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.ServiceStatus parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ServiceStatus parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.ServiceStatus parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ServiceStatus parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.ServiceStatus prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code context.ServiceStatus} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.ServiceStatus) + context.ContextOuterClass.ServiceStatusOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_ServiceStatus_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_ServiceStatus_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.ServiceStatus.class, context.ContextOuterClass.ServiceStatus.Builder.class); + } + + // Construct using context.ContextOuterClass.ServiceStatus.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + serviceStatus_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_ServiceStatus_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.ServiceStatus getDefaultInstanceForType() { + return context.ContextOuterClass.ServiceStatus.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.ServiceStatus build() { + context.ContextOuterClass.ServiceStatus result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.ServiceStatus buildPartial() { + context.ContextOuterClass.ServiceStatus result = new context.ContextOuterClass.ServiceStatus(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(context.ContextOuterClass.ServiceStatus result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.serviceStatus_ = serviceStatus_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.ServiceStatus) { + return mergeFrom((context.ContextOuterClass.ServiceStatus) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.ServiceStatus other) { + if (other == context.ContextOuterClass.ServiceStatus.getDefaultInstance()) + return this; + if (other.serviceStatus_ != 0) { + setServiceStatusValue(other.getServiceStatusValue()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 8: + { + serviceStatus_ = input.readEnum(); + bitField0_ |= 0x00000001; + break; + } + // case 8 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private int serviceStatus_ = 0; + + /** + * .context.ServiceStatusEnum service_status = 1; + * @return The enum numeric value on the wire for serviceStatus. + */ + @java.lang.Override + public int getServiceStatusValue() { + return serviceStatus_; + } + + /** + * .context.ServiceStatusEnum service_status = 1; + * @param value The enum numeric value on the wire for serviceStatus to set. + * @return This builder for chaining. + */ + public Builder setServiceStatusValue(int value) { + serviceStatus_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.ServiceStatusEnum service_status = 1; + * @return The serviceStatus. + */ + @java.lang.Override + public context.ContextOuterClass.ServiceStatusEnum getServiceStatus() { + context.ContextOuterClass.ServiceStatusEnum result = context.ContextOuterClass.ServiceStatusEnum.forNumber(serviceStatus_); + return result == null ? context.ContextOuterClass.ServiceStatusEnum.UNRECOGNIZED : result; + } + + /** + * .context.ServiceStatusEnum service_status = 1; + * @param value The serviceStatus to set. + * @return This builder for chaining. + */ + public Builder setServiceStatus(context.ContextOuterClass.ServiceStatusEnum value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000001; + serviceStatus_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * .context.ServiceStatusEnum service_status = 1; + * @return This builder for chaining. + */ + public Builder clearServiceStatus() { + bitField0_ = (bitField0_ & ~0x00000001); + serviceStatus_ = 0; + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.ServiceStatus) + } + + // @@protoc_insertion_point(class_scope:context.ServiceStatus) + private static final context.ContextOuterClass.ServiceStatus DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.ServiceStatus(); + } + + public static context.ContextOuterClass.ServiceStatus getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public ServiceStatus parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.ServiceStatus getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface ServiceConfigOrBuilder extends // @@protoc_insertion_point(interface_extends:context.ServiceConfig) + com.google.protobuf.MessageOrBuilder { + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + java.util.List getConfigRulesList(); + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + context.ContextOuterClass.ConfigRule getConfigRules(int index); + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + int getConfigRulesCount(); + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + java.util.List getConfigRulesOrBuilderList(); + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + context.ContextOuterClass.ConfigRuleOrBuilder getConfigRulesOrBuilder(int index); + } + + /** + * Protobuf type {@code context.ServiceConfig} + */ + public static final class ServiceConfig extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.ServiceConfig) + ServiceConfigOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use ServiceConfig.newBuilder() to construct. + private ServiceConfig(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private ServiceConfig() { + configRules_ = java.util.Collections.emptyList(); + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new ServiceConfig(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_ServiceConfig_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_ServiceConfig_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.ServiceConfig.class, context.ContextOuterClass.ServiceConfig.Builder.class); + } + + public static final int CONFIG_RULES_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private java.util.List configRules_; + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + @java.lang.Override + public java.util.List getConfigRulesList() { + return configRules_; + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + @java.lang.Override + public java.util.List getConfigRulesOrBuilderList() { + return configRules_; + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + @java.lang.Override + public int getConfigRulesCount() { + return configRules_.size(); + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + @java.lang.Override + public context.ContextOuterClass.ConfigRule getConfigRules(int index) { + return configRules_.get(index); + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + @java.lang.Override + public context.ContextOuterClass.ConfigRuleOrBuilder getConfigRulesOrBuilder(int index) { + return configRules_.get(index); + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + for (int i = 0; i < configRules_.size(); i++) { + output.writeMessage(1, configRules_.get(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + for (int i = 0; i < configRules_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, configRules_.get(i)); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.ServiceConfig)) { + return super.equals(obj); + } + context.ContextOuterClass.ServiceConfig other = (context.ContextOuterClass.ServiceConfig) obj; + if (!getConfigRulesList().equals(other.getConfigRulesList())) + return false; + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getConfigRulesCount() > 0) { + hash = (37 * hash) + CONFIG_RULES_FIELD_NUMBER; + hash = (53 * hash) + getConfigRulesList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.ServiceConfig parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ServiceConfig parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ServiceConfig parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ServiceConfig parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ServiceConfig parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ServiceConfig parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ServiceConfig parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ServiceConfig parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.ServiceConfig parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ServiceConfig parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.ServiceConfig parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ServiceConfig parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.ServiceConfig prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code context.ServiceConfig} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.ServiceConfig) + context.ContextOuterClass.ServiceConfigOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_ServiceConfig_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_ServiceConfig_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.ServiceConfig.class, context.ContextOuterClass.ServiceConfig.Builder.class); + } + + // Construct using context.ContextOuterClass.ServiceConfig.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + if (configRulesBuilder_ == null) { + configRules_ = java.util.Collections.emptyList(); + } else { + configRules_ = null; + configRulesBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_ServiceConfig_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.ServiceConfig getDefaultInstanceForType() { + return context.ContextOuterClass.ServiceConfig.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.ServiceConfig build() { + context.ContextOuterClass.ServiceConfig result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.ServiceConfig buildPartial() { + context.ContextOuterClass.ServiceConfig result = new context.ContextOuterClass.ServiceConfig(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(context.ContextOuterClass.ServiceConfig result) { + if (configRulesBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + configRules_ = java.util.Collections.unmodifiableList(configRules_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.configRules_ = configRules_; + } else { + result.configRules_ = configRulesBuilder_.build(); + } + } + + private void buildPartial0(context.ContextOuterClass.ServiceConfig result) { + int from_bitField0_ = bitField0_; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.ServiceConfig) { + return mergeFrom((context.ContextOuterClass.ServiceConfig) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.ServiceConfig other) { + if (other == context.ContextOuterClass.ServiceConfig.getDefaultInstance()) + return this; + if (configRulesBuilder_ == null) { + if (!other.configRules_.isEmpty()) { + if (configRules_.isEmpty()) { + configRules_ = other.configRules_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureConfigRulesIsMutable(); + configRules_.addAll(other.configRules_); + } + onChanged(); + } + } else { + if (!other.configRules_.isEmpty()) { + if (configRulesBuilder_.isEmpty()) { + configRulesBuilder_.dispose(); + configRulesBuilder_ = null; + configRules_ = other.configRules_; + bitField0_ = (bitField0_ & ~0x00000001); + configRulesBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getConfigRulesFieldBuilder() : null; + } else { + configRulesBuilder_.addAllMessages(other.configRules_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + context.ContextOuterClass.ConfigRule m = input.readMessage(context.ContextOuterClass.ConfigRule.parser(), extensionRegistry); + if (configRulesBuilder_ == null) { + ensureConfigRulesIsMutable(); + configRules_.add(m); + } else { + configRulesBuilder_.addMessage(m); + } + break; + } + // case 10 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private java.util.List configRules_ = java.util.Collections.emptyList(); + + private void ensureConfigRulesIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + configRules_ = new java.util.ArrayList(configRules_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3 configRulesBuilder_; + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + public java.util.List getConfigRulesList() { + if (configRulesBuilder_ == null) { + return java.util.Collections.unmodifiableList(configRules_); + } else { + return configRulesBuilder_.getMessageList(); + } + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + public int getConfigRulesCount() { + if (configRulesBuilder_ == null) { + return configRules_.size(); + } else { + return configRulesBuilder_.getCount(); + } + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + public context.ContextOuterClass.ConfigRule getConfigRules(int index) { + if (configRulesBuilder_ == null) { + return configRules_.get(index); + } else { + return configRulesBuilder_.getMessage(index); + } + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + public Builder setConfigRules(int index, context.ContextOuterClass.ConfigRule value) { + if (configRulesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureConfigRulesIsMutable(); + configRules_.set(index, value); + onChanged(); + } else { + configRulesBuilder_.setMessage(index, value); + } + return this; + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + public Builder setConfigRules(int index, context.ContextOuterClass.ConfigRule.Builder builderForValue) { + if (configRulesBuilder_ == null) { + ensureConfigRulesIsMutable(); + configRules_.set(index, builderForValue.build()); + onChanged(); + } else { + configRulesBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + public Builder addConfigRules(context.ContextOuterClass.ConfigRule value) { + if (configRulesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureConfigRulesIsMutable(); + configRules_.add(value); + onChanged(); + } else { + configRulesBuilder_.addMessage(value); + } + return this; + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + public Builder addConfigRules(int index, context.ContextOuterClass.ConfigRule value) { + if (configRulesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureConfigRulesIsMutable(); + configRules_.add(index, value); + onChanged(); + } else { + configRulesBuilder_.addMessage(index, value); + } + return this; + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + public Builder addConfigRules(context.ContextOuterClass.ConfigRule.Builder builderForValue) { + if (configRulesBuilder_ == null) { + ensureConfigRulesIsMutable(); + configRules_.add(builderForValue.build()); + onChanged(); + } else { + configRulesBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + public Builder addConfigRules(int index, context.ContextOuterClass.ConfigRule.Builder builderForValue) { + if (configRulesBuilder_ == null) { + ensureConfigRulesIsMutable(); + configRules_.add(index, builderForValue.build()); + onChanged(); + } else { + configRulesBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + public Builder addAllConfigRules(java.lang.Iterable values) { + if (configRulesBuilder_ == null) { + ensureConfigRulesIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, configRules_); + onChanged(); + } else { + configRulesBuilder_.addAllMessages(values); + } + return this; + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + public Builder clearConfigRules() { + if (configRulesBuilder_ == null) { + configRules_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + configRulesBuilder_.clear(); + } + return this; + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + public Builder removeConfigRules(int index) { + if (configRulesBuilder_ == null) { + ensureConfigRulesIsMutable(); + configRules_.remove(index); + onChanged(); + } else { + configRulesBuilder_.remove(index); + } + return this; + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + public context.ContextOuterClass.ConfigRule.Builder getConfigRulesBuilder(int index) { + return getConfigRulesFieldBuilder().getBuilder(index); + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + public context.ContextOuterClass.ConfigRuleOrBuilder getConfigRulesOrBuilder(int index) { + if (configRulesBuilder_ == null) { + return configRules_.get(index); + } else { + return configRulesBuilder_.getMessageOrBuilder(index); + } + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + public java.util.List getConfigRulesOrBuilderList() { + if (configRulesBuilder_ != null) { + return configRulesBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(configRules_); + } + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + public context.ContextOuterClass.ConfigRule.Builder addConfigRulesBuilder() { + return getConfigRulesFieldBuilder().addBuilder(context.ContextOuterClass.ConfigRule.getDefaultInstance()); + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + public context.ContextOuterClass.ConfigRule.Builder addConfigRulesBuilder(int index) { + return getConfigRulesFieldBuilder().addBuilder(index, context.ContextOuterClass.ConfigRule.getDefaultInstance()); + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + public java.util.List getConfigRulesBuilderList() { + return getConfigRulesFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3 getConfigRulesFieldBuilder() { + if (configRulesBuilder_ == null) { + configRulesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3(configRules_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean()); + configRules_ = null; + } + return configRulesBuilder_; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.ServiceConfig) + } + + // @@protoc_insertion_point(class_scope:context.ServiceConfig) + private static final context.ContextOuterClass.ServiceConfig DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.ServiceConfig(); + } + + public static context.ContextOuterClass.ServiceConfig getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public ServiceConfig parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.ServiceConfig getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface ServiceIdListOrBuilder extends // @@protoc_insertion_point(interface_extends:context.ServiceIdList) + com.google.protobuf.MessageOrBuilder { + + /** + * repeated .context.ServiceId service_ids = 1; + */ + java.util.List getServiceIdsList(); + + /** + * repeated .context.ServiceId service_ids = 1; + */ + context.ContextOuterClass.ServiceId getServiceIds(int index); + + /** + * repeated .context.ServiceId service_ids = 1; + */ + int getServiceIdsCount(); + + /** + * repeated .context.ServiceId service_ids = 1; + */ + java.util.List getServiceIdsOrBuilderList(); + + /** + * repeated .context.ServiceId service_ids = 1; + */ + context.ContextOuterClass.ServiceIdOrBuilder getServiceIdsOrBuilder(int index); + } + + /** + * Protobuf type {@code context.ServiceIdList} + */ + public static final class ServiceIdList extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.ServiceIdList) + ServiceIdListOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use ServiceIdList.newBuilder() to construct. + private ServiceIdList(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private ServiceIdList() { + serviceIds_ = java.util.Collections.emptyList(); + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new ServiceIdList(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_ServiceIdList_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_ServiceIdList_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.ServiceIdList.class, context.ContextOuterClass.ServiceIdList.Builder.class); + } + + public static final int SERVICE_IDS_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private java.util.List serviceIds_; + + /** + * repeated .context.ServiceId service_ids = 1; + */ + @java.lang.Override + public java.util.List getServiceIdsList() { + return serviceIds_; + } + + /** + * repeated .context.ServiceId service_ids = 1; + */ + @java.lang.Override + public java.util.List getServiceIdsOrBuilderList() { + return serviceIds_; + } + + /** + * repeated .context.ServiceId service_ids = 1; + */ + @java.lang.Override + public int getServiceIdsCount() { + return serviceIds_.size(); + } + + /** + * repeated .context.ServiceId service_ids = 1; + */ + @java.lang.Override + public context.ContextOuterClass.ServiceId getServiceIds(int index) { + return serviceIds_.get(index); + } + + /** + * repeated .context.ServiceId service_ids = 1; + */ + @java.lang.Override + public context.ContextOuterClass.ServiceIdOrBuilder getServiceIdsOrBuilder(int index) { + return serviceIds_.get(index); + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + for (int i = 0; i < serviceIds_.size(); i++) { + output.writeMessage(1, serviceIds_.get(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + for (int i = 0; i < serviceIds_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, serviceIds_.get(i)); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.ServiceIdList)) { + return super.equals(obj); + } + context.ContextOuterClass.ServiceIdList other = (context.ContextOuterClass.ServiceIdList) obj; + if (!getServiceIdsList().equals(other.getServiceIdsList())) + return false; + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getServiceIdsCount() > 0) { + hash = (37 * hash) + SERVICE_IDS_FIELD_NUMBER; + hash = (53 * hash) + getServiceIdsList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.ServiceIdList parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ServiceIdList parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ServiceIdList parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ServiceIdList parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ServiceIdList parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ServiceIdList parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ServiceIdList parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ServiceIdList parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.ServiceIdList parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ServiceIdList parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.ServiceIdList parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ServiceIdList parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.ServiceIdList prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code context.ServiceIdList} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.ServiceIdList) + context.ContextOuterClass.ServiceIdListOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_ServiceIdList_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_ServiceIdList_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.ServiceIdList.class, context.ContextOuterClass.ServiceIdList.Builder.class); + } + + // Construct using context.ContextOuterClass.ServiceIdList.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + if (serviceIdsBuilder_ == null) { + serviceIds_ = java.util.Collections.emptyList(); + } else { + serviceIds_ = null; + serviceIdsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_ServiceIdList_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.ServiceIdList getDefaultInstanceForType() { + return context.ContextOuterClass.ServiceIdList.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.ServiceIdList build() { + context.ContextOuterClass.ServiceIdList result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.ServiceIdList buildPartial() { + context.ContextOuterClass.ServiceIdList result = new context.ContextOuterClass.ServiceIdList(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(context.ContextOuterClass.ServiceIdList result) { + if (serviceIdsBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + serviceIds_ = java.util.Collections.unmodifiableList(serviceIds_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.serviceIds_ = serviceIds_; + } else { + result.serviceIds_ = serviceIdsBuilder_.build(); + } + } + + private void buildPartial0(context.ContextOuterClass.ServiceIdList result) { + int from_bitField0_ = bitField0_; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.ServiceIdList) { + return mergeFrom((context.ContextOuterClass.ServiceIdList) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.ServiceIdList other) { + if (other == context.ContextOuterClass.ServiceIdList.getDefaultInstance()) + return this; + if (serviceIdsBuilder_ == null) { + if (!other.serviceIds_.isEmpty()) { + if (serviceIds_.isEmpty()) { + serviceIds_ = other.serviceIds_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureServiceIdsIsMutable(); + serviceIds_.addAll(other.serviceIds_); + } + onChanged(); + } + } else { + if (!other.serviceIds_.isEmpty()) { + if (serviceIdsBuilder_.isEmpty()) { + serviceIdsBuilder_.dispose(); + serviceIdsBuilder_ = null; + serviceIds_ = other.serviceIds_; + bitField0_ = (bitField0_ & ~0x00000001); + serviceIdsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getServiceIdsFieldBuilder() : null; + } else { + serviceIdsBuilder_.addAllMessages(other.serviceIds_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + context.ContextOuterClass.ServiceId m = input.readMessage(context.ContextOuterClass.ServiceId.parser(), extensionRegistry); + if (serviceIdsBuilder_ == null) { + ensureServiceIdsIsMutable(); + serviceIds_.add(m); + } else { + serviceIdsBuilder_.addMessage(m); + } + break; + } + // case 10 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private java.util.List serviceIds_ = java.util.Collections.emptyList(); + + private void ensureServiceIdsIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + serviceIds_ = new java.util.ArrayList(serviceIds_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3 serviceIdsBuilder_; + + /** + * repeated .context.ServiceId service_ids = 1; + */ + public java.util.List getServiceIdsList() { + if (serviceIdsBuilder_ == null) { + return java.util.Collections.unmodifiableList(serviceIds_); + } else { + return serviceIdsBuilder_.getMessageList(); + } + } + + /** + * repeated .context.ServiceId service_ids = 1; + */ + public int getServiceIdsCount() { + if (serviceIdsBuilder_ == null) { + return serviceIds_.size(); + } else { + return serviceIdsBuilder_.getCount(); + } + } + + /** + * repeated .context.ServiceId service_ids = 1; + */ + public context.ContextOuterClass.ServiceId getServiceIds(int index) { + if (serviceIdsBuilder_ == null) { + return serviceIds_.get(index); + } else { + return serviceIdsBuilder_.getMessage(index); + } + } + + /** + * repeated .context.ServiceId service_ids = 1; + */ + public Builder setServiceIds(int index, context.ContextOuterClass.ServiceId value) { + if (serviceIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureServiceIdsIsMutable(); + serviceIds_.set(index, value); + onChanged(); + } else { + serviceIdsBuilder_.setMessage(index, value); + } + return this; + } + + /** + * repeated .context.ServiceId service_ids = 1; + */ + public Builder setServiceIds(int index, context.ContextOuterClass.ServiceId.Builder builderForValue) { + if (serviceIdsBuilder_ == null) { + ensureServiceIdsIsMutable(); + serviceIds_.set(index, builderForValue.build()); + onChanged(); + } else { + serviceIdsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.ServiceId service_ids = 1; + */ + public Builder addServiceIds(context.ContextOuterClass.ServiceId value) { + if (serviceIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureServiceIdsIsMutable(); + serviceIds_.add(value); + onChanged(); + } else { + serviceIdsBuilder_.addMessage(value); + } + return this; + } + + /** + * repeated .context.ServiceId service_ids = 1; + */ + public Builder addServiceIds(int index, context.ContextOuterClass.ServiceId value) { + if (serviceIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureServiceIdsIsMutable(); + serviceIds_.add(index, value); + onChanged(); + } else { + serviceIdsBuilder_.addMessage(index, value); + } + return this; + } + + /** + * repeated .context.ServiceId service_ids = 1; + */ + public Builder addServiceIds(context.ContextOuterClass.ServiceId.Builder builderForValue) { + if (serviceIdsBuilder_ == null) { + ensureServiceIdsIsMutable(); + serviceIds_.add(builderForValue.build()); + onChanged(); + } else { + serviceIdsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * repeated .context.ServiceId service_ids = 1; + */ + public Builder addServiceIds(int index, context.ContextOuterClass.ServiceId.Builder builderForValue) { + if (serviceIdsBuilder_ == null) { + ensureServiceIdsIsMutable(); + serviceIds_.add(index, builderForValue.build()); + onChanged(); + } else { + serviceIdsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.ServiceId service_ids = 1; + */ + public Builder addAllServiceIds(java.lang.Iterable values) { + if (serviceIdsBuilder_ == null) { + ensureServiceIdsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, serviceIds_); + onChanged(); + } else { + serviceIdsBuilder_.addAllMessages(values); + } + return this; + } + + /** + * repeated .context.ServiceId service_ids = 1; + */ + public Builder clearServiceIds() { + if (serviceIdsBuilder_ == null) { + serviceIds_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + serviceIdsBuilder_.clear(); + } + return this; + } + + /** + * repeated .context.ServiceId service_ids = 1; + */ + public Builder removeServiceIds(int index) { + if (serviceIdsBuilder_ == null) { + ensureServiceIdsIsMutable(); + serviceIds_.remove(index); + onChanged(); + } else { + serviceIdsBuilder_.remove(index); + } + return this; + } + + /** + * repeated .context.ServiceId service_ids = 1; + */ + public context.ContextOuterClass.ServiceId.Builder getServiceIdsBuilder(int index) { + return getServiceIdsFieldBuilder().getBuilder(index); + } + + /** + * repeated .context.ServiceId service_ids = 1; + */ + public context.ContextOuterClass.ServiceIdOrBuilder getServiceIdsOrBuilder(int index) { + if (serviceIdsBuilder_ == null) { + return serviceIds_.get(index); + } else { + return serviceIdsBuilder_.getMessageOrBuilder(index); + } + } + + /** + * repeated .context.ServiceId service_ids = 1; + */ + public java.util.List getServiceIdsOrBuilderList() { + if (serviceIdsBuilder_ != null) { + return serviceIdsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(serviceIds_); + } + } + + /** + * repeated .context.ServiceId service_ids = 1; + */ + public context.ContextOuterClass.ServiceId.Builder addServiceIdsBuilder() { + return getServiceIdsFieldBuilder().addBuilder(context.ContextOuterClass.ServiceId.getDefaultInstance()); + } + + /** + * repeated .context.ServiceId service_ids = 1; + */ + public context.ContextOuterClass.ServiceId.Builder addServiceIdsBuilder(int index) { + return getServiceIdsFieldBuilder().addBuilder(index, context.ContextOuterClass.ServiceId.getDefaultInstance()); + } + + /** + * repeated .context.ServiceId service_ids = 1; + */ + public java.util.List getServiceIdsBuilderList() { + return getServiceIdsFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3 getServiceIdsFieldBuilder() { + if (serviceIdsBuilder_ == null) { + serviceIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3(serviceIds_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean()); + serviceIds_ = null; + } + return serviceIdsBuilder_; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.ServiceIdList) + } + + // @@protoc_insertion_point(class_scope:context.ServiceIdList) + private static final context.ContextOuterClass.ServiceIdList DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.ServiceIdList(); + } + + public static context.ContextOuterClass.ServiceIdList getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public ServiceIdList parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.ServiceIdList getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface ServiceListOrBuilder extends // @@protoc_insertion_point(interface_extends:context.ServiceList) + com.google.protobuf.MessageOrBuilder { + + /** + * repeated .context.Service services = 1; + */ + java.util.List getServicesList(); + + /** + * repeated .context.Service services = 1; + */ + context.ContextOuterClass.Service getServices(int index); + + /** + * repeated .context.Service services = 1; + */ + int getServicesCount(); + + /** + * repeated .context.Service services = 1; + */ + java.util.List getServicesOrBuilderList(); + + /** + * repeated .context.Service services = 1; + */ + context.ContextOuterClass.ServiceOrBuilder getServicesOrBuilder(int index); + } + + /** + * Protobuf type {@code context.ServiceList} + */ + public static final class ServiceList extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.ServiceList) + ServiceListOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use ServiceList.newBuilder() to construct. + private ServiceList(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private ServiceList() { + services_ = java.util.Collections.emptyList(); + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new ServiceList(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_ServiceList_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_ServiceList_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.ServiceList.class, context.ContextOuterClass.ServiceList.Builder.class); + } + + public static final int SERVICES_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private java.util.List services_; + + /** + * repeated .context.Service services = 1; + */ + @java.lang.Override + public java.util.List getServicesList() { + return services_; + } + + /** + * repeated .context.Service services = 1; + */ + @java.lang.Override + public java.util.List getServicesOrBuilderList() { + return services_; + } + + /** + * repeated .context.Service services = 1; + */ + @java.lang.Override + public int getServicesCount() { + return services_.size(); + } + + /** + * repeated .context.Service services = 1; + */ + @java.lang.Override + public context.ContextOuterClass.Service getServices(int index) { + return services_.get(index); + } + + /** + * repeated .context.Service services = 1; + */ + @java.lang.Override + public context.ContextOuterClass.ServiceOrBuilder getServicesOrBuilder(int index) { + return services_.get(index); + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + for (int i = 0; i < services_.size(); i++) { + output.writeMessage(1, services_.get(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + for (int i = 0; i < services_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, services_.get(i)); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.ServiceList)) { + return super.equals(obj); + } + context.ContextOuterClass.ServiceList other = (context.ContextOuterClass.ServiceList) obj; + if (!getServicesList().equals(other.getServicesList())) + return false; + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getServicesCount() > 0) { + hash = (37 * hash) + SERVICES_FIELD_NUMBER; + hash = (53 * hash) + getServicesList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.ServiceList parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ServiceList parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ServiceList parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ServiceList parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ServiceList parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ServiceList parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ServiceList parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ServiceList parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.ServiceList parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ServiceList parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.ServiceList parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ServiceList parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.ServiceList prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code context.ServiceList} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.ServiceList) + context.ContextOuterClass.ServiceListOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_ServiceList_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_ServiceList_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.ServiceList.class, context.ContextOuterClass.ServiceList.Builder.class); + } + + // Construct using context.ContextOuterClass.ServiceList.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + if (servicesBuilder_ == null) { + services_ = java.util.Collections.emptyList(); + } else { + services_ = null; + servicesBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_ServiceList_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.ServiceList getDefaultInstanceForType() { + return context.ContextOuterClass.ServiceList.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.ServiceList build() { + context.ContextOuterClass.ServiceList result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.ServiceList buildPartial() { + context.ContextOuterClass.ServiceList result = new context.ContextOuterClass.ServiceList(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(context.ContextOuterClass.ServiceList result) { + if (servicesBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + services_ = java.util.Collections.unmodifiableList(services_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.services_ = services_; + } else { + result.services_ = servicesBuilder_.build(); + } + } + + private void buildPartial0(context.ContextOuterClass.ServiceList result) { + int from_bitField0_ = bitField0_; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.ServiceList) { + return mergeFrom((context.ContextOuterClass.ServiceList) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.ServiceList other) { + if (other == context.ContextOuterClass.ServiceList.getDefaultInstance()) + return this; + if (servicesBuilder_ == null) { + if (!other.services_.isEmpty()) { + if (services_.isEmpty()) { + services_ = other.services_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureServicesIsMutable(); + services_.addAll(other.services_); + } + onChanged(); + } + } else { + if (!other.services_.isEmpty()) { + if (servicesBuilder_.isEmpty()) { + servicesBuilder_.dispose(); + servicesBuilder_ = null; + services_ = other.services_; + bitField0_ = (bitField0_ & ~0x00000001); + servicesBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getServicesFieldBuilder() : null; + } else { + servicesBuilder_.addAllMessages(other.services_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + context.ContextOuterClass.Service m = input.readMessage(context.ContextOuterClass.Service.parser(), extensionRegistry); + if (servicesBuilder_ == null) { + ensureServicesIsMutable(); + services_.add(m); + } else { + servicesBuilder_.addMessage(m); + } + break; + } + // case 10 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private java.util.List services_ = java.util.Collections.emptyList(); + + private void ensureServicesIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + services_ = new java.util.ArrayList(services_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3 servicesBuilder_; + + /** + * repeated .context.Service services = 1; + */ + public java.util.List getServicesList() { + if (servicesBuilder_ == null) { + return java.util.Collections.unmodifiableList(services_); + } else { + return servicesBuilder_.getMessageList(); + } + } + + /** + * repeated .context.Service services = 1; + */ + public int getServicesCount() { + if (servicesBuilder_ == null) { + return services_.size(); + } else { + return servicesBuilder_.getCount(); + } + } + + /** + * repeated .context.Service services = 1; + */ + public context.ContextOuterClass.Service getServices(int index) { + if (servicesBuilder_ == null) { + return services_.get(index); + } else { + return servicesBuilder_.getMessage(index); + } + } + + /** + * repeated .context.Service services = 1; + */ + public Builder setServices(int index, context.ContextOuterClass.Service value) { + if (servicesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureServicesIsMutable(); + services_.set(index, value); + onChanged(); + } else { + servicesBuilder_.setMessage(index, value); + } + return this; + } + + /** + * repeated .context.Service services = 1; + */ + public Builder setServices(int index, context.ContextOuterClass.Service.Builder builderForValue) { + if (servicesBuilder_ == null) { + ensureServicesIsMutable(); + services_.set(index, builderForValue.build()); + onChanged(); + } else { + servicesBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.Service services = 1; + */ + public Builder addServices(context.ContextOuterClass.Service value) { + if (servicesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureServicesIsMutable(); + services_.add(value); + onChanged(); + } else { + servicesBuilder_.addMessage(value); + } + return this; + } + + /** + * repeated .context.Service services = 1; + */ + public Builder addServices(int index, context.ContextOuterClass.Service value) { + if (servicesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureServicesIsMutable(); + services_.add(index, value); + onChanged(); + } else { + servicesBuilder_.addMessage(index, value); + } + return this; + } + + /** + * repeated .context.Service services = 1; + */ + public Builder addServices(context.ContextOuterClass.Service.Builder builderForValue) { + if (servicesBuilder_ == null) { + ensureServicesIsMutable(); + services_.add(builderForValue.build()); + onChanged(); + } else { + servicesBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * repeated .context.Service services = 1; + */ + public Builder addServices(int index, context.ContextOuterClass.Service.Builder builderForValue) { + if (servicesBuilder_ == null) { + ensureServicesIsMutable(); + services_.add(index, builderForValue.build()); + onChanged(); + } else { + servicesBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.Service services = 1; + */ + public Builder addAllServices(java.lang.Iterable values) { + if (servicesBuilder_ == null) { + ensureServicesIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, services_); + onChanged(); + } else { + servicesBuilder_.addAllMessages(values); + } + return this; + } + + /** + * repeated .context.Service services = 1; + */ + public Builder clearServices() { + if (servicesBuilder_ == null) { + services_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + servicesBuilder_.clear(); + } + return this; + } + + /** + * repeated .context.Service services = 1; + */ + public Builder removeServices(int index) { + if (servicesBuilder_ == null) { + ensureServicesIsMutable(); + services_.remove(index); + onChanged(); + } else { + servicesBuilder_.remove(index); + } + return this; + } + + /** + * repeated .context.Service services = 1; + */ + public context.ContextOuterClass.Service.Builder getServicesBuilder(int index) { + return getServicesFieldBuilder().getBuilder(index); + } + + /** + * repeated .context.Service services = 1; + */ + public context.ContextOuterClass.ServiceOrBuilder getServicesOrBuilder(int index) { + if (servicesBuilder_ == null) { + return services_.get(index); + } else { + return servicesBuilder_.getMessageOrBuilder(index); + } + } + + /** + * repeated .context.Service services = 1; + */ + public java.util.List getServicesOrBuilderList() { + if (servicesBuilder_ != null) { + return servicesBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(services_); + } + } + + /** + * repeated .context.Service services = 1; + */ + public context.ContextOuterClass.Service.Builder addServicesBuilder() { + return getServicesFieldBuilder().addBuilder(context.ContextOuterClass.Service.getDefaultInstance()); + } + + /** + * repeated .context.Service services = 1; + */ + public context.ContextOuterClass.Service.Builder addServicesBuilder(int index) { + return getServicesFieldBuilder().addBuilder(index, context.ContextOuterClass.Service.getDefaultInstance()); + } + + /** + * repeated .context.Service services = 1; + */ + public java.util.List getServicesBuilderList() { + return getServicesFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3 getServicesFieldBuilder() { + if (servicesBuilder_ == null) { + servicesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3(services_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean()); + services_ = null; + } + return servicesBuilder_; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.ServiceList) + } + + // @@protoc_insertion_point(class_scope:context.ServiceList) + private static final context.ContextOuterClass.ServiceList DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.ServiceList(); + } + + public static context.ContextOuterClass.ServiceList getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public ServiceList parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.ServiceList getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface ServiceFilterOrBuilder extends // @@protoc_insertion_point(interface_extends:context.ServiceFilter) + com.google.protobuf.MessageOrBuilder { + + /** + * .context.ServiceIdList service_ids = 1; + * @return Whether the serviceIds field is set. + */ + boolean hasServiceIds(); + + /** + * .context.ServiceIdList service_ids = 1; + * @return The serviceIds. + */ + context.ContextOuterClass.ServiceIdList getServiceIds(); + + /** + * .context.ServiceIdList service_ids = 1; + */ + context.ContextOuterClass.ServiceIdListOrBuilder getServiceIdsOrBuilder(); + + /** + * bool include_endpoint_ids = 2; + * @return The includeEndpointIds. + */ + boolean getIncludeEndpointIds(); + + /** + * bool include_constraints = 3; + * @return The includeConstraints. + */ + boolean getIncludeConstraints(); + + /** + * bool include_config_rules = 4; + * @return The includeConfigRules. + */ + boolean getIncludeConfigRules(); + } + + /** + * Protobuf type {@code context.ServiceFilter} + */ + public static final class ServiceFilter extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.ServiceFilter) + ServiceFilterOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use ServiceFilter.newBuilder() to construct. + private ServiceFilter(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private ServiceFilter() { + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new ServiceFilter(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_ServiceFilter_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_ServiceFilter_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.ServiceFilter.class, context.ContextOuterClass.ServiceFilter.Builder.class); + } + + public static final int SERVICE_IDS_FIELD_NUMBER = 1; + + private context.ContextOuterClass.ServiceIdList serviceIds_; + + /** + * .context.ServiceIdList service_ids = 1; + * @return Whether the serviceIds field is set. + */ + @java.lang.Override + public boolean hasServiceIds() { + return serviceIds_ != null; + } + + /** + * .context.ServiceIdList service_ids = 1; + * @return The serviceIds. + */ + @java.lang.Override + public context.ContextOuterClass.ServiceIdList getServiceIds() { + return serviceIds_ == null ? context.ContextOuterClass.ServiceIdList.getDefaultInstance() : serviceIds_; + } + + /** + * .context.ServiceIdList service_ids = 1; + */ + @java.lang.Override + public context.ContextOuterClass.ServiceIdListOrBuilder getServiceIdsOrBuilder() { + return serviceIds_ == null ? context.ContextOuterClass.ServiceIdList.getDefaultInstance() : serviceIds_; + } + + public static final int INCLUDE_ENDPOINT_IDS_FIELD_NUMBER = 2; + + private boolean includeEndpointIds_ = false; + + /** + * bool include_endpoint_ids = 2; + * @return The includeEndpointIds. + */ + @java.lang.Override + public boolean getIncludeEndpointIds() { + return includeEndpointIds_; + } + + public static final int INCLUDE_CONSTRAINTS_FIELD_NUMBER = 3; + + private boolean includeConstraints_ = false; + + /** + * bool include_constraints = 3; + * @return The includeConstraints. + */ + @java.lang.Override + public boolean getIncludeConstraints() { + return includeConstraints_; + } + + public static final int INCLUDE_CONFIG_RULES_FIELD_NUMBER = 4; + + private boolean includeConfigRules_ = false; + + /** + * bool include_config_rules = 4; + * @return The includeConfigRules. + */ + @java.lang.Override + public boolean getIncludeConfigRules() { + return includeConfigRules_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (serviceIds_ != null) { + output.writeMessage(1, getServiceIds()); + } + if (includeEndpointIds_ != false) { + output.writeBool(2, includeEndpointIds_); + } + if (includeConstraints_ != false) { + output.writeBool(3, includeConstraints_); + } + if (includeConfigRules_ != false) { + output.writeBool(4, includeConfigRules_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + if (serviceIds_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getServiceIds()); + } + if (includeEndpointIds_ != false) { + size += com.google.protobuf.CodedOutputStream.computeBoolSize(2, includeEndpointIds_); + } + if (includeConstraints_ != false) { + size += com.google.protobuf.CodedOutputStream.computeBoolSize(3, includeConstraints_); + } + if (includeConfigRules_ != false) { + size += com.google.protobuf.CodedOutputStream.computeBoolSize(4, includeConfigRules_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.ServiceFilter)) { + return super.equals(obj); + } + context.ContextOuterClass.ServiceFilter other = (context.ContextOuterClass.ServiceFilter) obj; + if (hasServiceIds() != other.hasServiceIds()) + return false; + if (hasServiceIds()) { + if (!getServiceIds().equals(other.getServiceIds())) + return false; + } + if (getIncludeEndpointIds() != other.getIncludeEndpointIds()) + return false; + if (getIncludeConstraints() != other.getIncludeConstraints()) + return false; + if (getIncludeConfigRules() != other.getIncludeConfigRules()) + return false; + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasServiceIds()) { + hash = (37 * hash) + SERVICE_IDS_FIELD_NUMBER; + hash = (53 * hash) + getServiceIds().hashCode(); + } + hash = (37 * hash) + INCLUDE_ENDPOINT_IDS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getIncludeEndpointIds()); + hash = (37 * hash) + INCLUDE_CONSTRAINTS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getIncludeConstraints()); + hash = (37 * hash) + INCLUDE_CONFIG_RULES_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getIncludeConfigRules()); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.ServiceFilter parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ServiceFilter parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ServiceFilter parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ServiceFilter parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ServiceFilter parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ServiceFilter parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ServiceFilter parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ServiceFilter parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.ServiceFilter parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ServiceFilter parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.ServiceFilter parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ServiceFilter parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.ServiceFilter prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code context.ServiceFilter} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.ServiceFilter) + context.ContextOuterClass.ServiceFilterOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_ServiceFilter_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_ServiceFilter_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.ServiceFilter.class, context.ContextOuterClass.ServiceFilter.Builder.class); + } + + // Construct using context.ContextOuterClass.ServiceFilter.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + serviceIds_ = null; + if (serviceIdsBuilder_ != null) { + serviceIdsBuilder_.dispose(); + serviceIdsBuilder_ = null; + } + includeEndpointIds_ = false; + includeConstraints_ = false; + includeConfigRules_ = false; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_ServiceFilter_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.ServiceFilter getDefaultInstanceForType() { + return context.ContextOuterClass.ServiceFilter.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.ServiceFilter build() { + context.ContextOuterClass.ServiceFilter result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.ServiceFilter buildPartial() { + context.ContextOuterClass.ServiceFilter result = new context.ContextOuterClass.ServiceFilter(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(context.ContextOuterClass.ServiceFilter result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.serviceIds_ = serviceIdsBuilder_ == null ? serviceIds_ : serviceIdsBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.includeEndpointIds_ = includeEndpointIds_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.includeConstraints_ = includeConstraints_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.includeConfigRules_ = includeConfigRules_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.ServiceFilter) { + return mergeFrom((context.ContextOuterClass.ServiceFilter) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.ServiceFilter other) { + if (other == context.ContextOuterClass.ServiceFilter.getDefaultInstance()) + return this; + if (other.hasServiceIds()) { + mergeServiceIds(other.getServiceIds()); + } + if (other.getIncludeEndpointIds() != false) { + setIncludeEndpointIds(other.getIncludeEndpointIds()); + } + if (other.getIncludeConstraints() != false) { + setIncludeConstraints(other.getIncludeConstraints()); + } + if (other.getIncludeConfigRules() != false) { + setIncludeConfigRules(other.getIncludeConfigRules()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getServiceIdsFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 16: + { + includeEndpointIds_ = input.readBool(); + bitField0_ |= 0x00000002; + break; + } + // case 16 + case 24: + { + includeConstraints_ = input.readBool(); + bitField0_ |= 0x00000004; + break; + } + // case 24 + case 32: + { + includeConfigRules_ = input.readBool(); + bitField0_ |= 0x00000008; + break; + } + // case 32 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private context.ContextOuterClass.ServiceIdList serviceIds_; + + private com.google.protobuf.SingleFieldBuilderV3 serviceIdsBuilder_; + + /** + * .context.ServiceIdList service_ids = 1; + * @return Whether the serviceIds field is set. + */ + public boolean hasServiceIds() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * .context.ServiceIdList service_ids = 1; + * @return The serviceIds. + */ + public context.ContextOuterClass.ServiceIdList getServiceIds() { + if (serviceIdsBuilder_ == null) { + return serviceIds_ == null ? context.ContextOuterClass.ServiceIdList.getDefaultInstance() : serviceIds_; + } else { + return serviceIdsBuilder_.getMessage(); + } + } + + /** + * .context.ServiceIdList service_ids = 1; + */ + public Builder setServiceIds(context.ContextOuterClass.ServiceIdList value) { + if (serviceIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + serviceIds_ = value; + } else { + serviceIdsBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.ServiceIdList service_ids = 1; + */ + public Builder setServiceIds(context.ContextOuterClass.ServiceIdList.Builder builderForValue) { + if (serviceIdsBuilder_ == null) { + serviceIds_ = builderForValue.build(); + } else { + serviceIdsBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.ServiceIdList service_ids = 1; + */ + public Builder mergeServiceIds(context.ContextOuterClass.ServiceIdList value) { + if (serviceIdsBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && serviceIds_ != null && serviceIds_ != context.ContextOuterClass.ServiceIdList.getDefaultInstance()) { + getServiceIdsBuilder().mergeFrom(value); + } else { + serviceIds_ = value; + } + } else { + serviceIdsBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.ServiceIdList service_ids = 1; + */ + public Builder clearServiceIds() { + bitField0_ = (bitField0_ & ~0x00000001); + serviceIds_ = null; + if (serviceIdsBuilder_ != null) { + serviceIdsBuilder_.dispose(); + serviceIdsBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.ServiceIdList service_ids = 1; + */ + public context.ContextOuterClass.ServiceIdList.Builder getServiceIdsBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getServiceIdsFieldBuilder().getBuilder(); + } + + /** + * .context.ServiceIdList service_ids = 1; + */ + public context.ContextOuterClass.ServiceIdListOrBuilder getServiceIdsOrBuilder() { + if (serviceIdsBuilder_ != null) { + return serviceIdsBuilder_.getMessageOrBuilder(); + } else { + return serviceIds_ == null ? context.ContextOuterClass.ServiceIdList.getDefaultInstance() : serviceIds_; + } + } + + /** + * .context.ServiceIdList service_ids = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3 getServiceIdsFieldBuilder() { + if (serviceIdsBuilder_ == null) { + serviceIdsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getServiceIds(), getParentForChildren(), isClean()); + serviceIds_ = null; + } + return serviceIdsBuilder_; + } + + private boolean includeEndpointIds_; + + /** + * bool include_endpoint_ids = 2; + * @return The includeEndpointIds. + */ + @java.lang.Override + public boolean getIncludeEndpointIds() { + return includeEndpointIds_; + } + + /** + * bool include_endpoint_ids = 2; + * @param value The includeEndpointIds to set. + * @return This builder for chaining. + */ + public Builder setIncludeEndpointIds(boolean value) { + includeEndpointIds_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * bool include_endpoint_ids = 2; + * @return This builder for chaining. + */ + public Builder clearIncludeEndpointIds() { + bitField0_ = (bitField0_ & ~0x00000002); + includeEndpointIds_ = false; + onChanged(); + return this; + } + + private boolean includeConstraints_; + + /** + * bool include_constraints = 3; + * @return The includeConstraints. + */ + @java.lang.Override + public boolean getIncludeConstraints() { + return includeConstraints_; + } + + /** + * bool include_constraints = 3; + * @param value The includeConstraints to set. + * @return This builder for chaining. + */ + public Builder setIncludeConstraints(boolean value) { + includeConstraints_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * bool include_constraints = 3; + * @return This builder for chaining. + */ + public Builder clearIncludeConstraints() { + bitField0_ = (bitField0_ & ~0x00000004); + includeConstraints_ = false; + onChanged(); + return this; + } + + private boolean includeConfigRules_; + + /** + * bool include_config_rules = 4; + * @return The includeConfigRules. + */ + @java.lang.Override + public boolean getIncludeConfigRules() { + return includeConfigRules_; + } + + /** + * bool include_config_rules = 4; + * @param value The includeConfigRules to set. + * @return This builder for chaining. + */ + public Builder setIncludeConfigRules(boolean value) { + includeConfigRules_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * bool include_config_rules = 4; + * @return This builder for chaining. + */ + public Builder clearIncludeConfigRules() { + bitField0_ = (bitField0_ & ~0x00000008); + includeConfigRules_ = false; + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.ServiceFilter) + } + + // @@protoc_insertion_point(class_scope:context.ServiceFilter) + private static final context.ContextOuterClass.ServiceFilter DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.ServiceFilter(); + } + + public static context.ContextOuterClass.ServiceFilter getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public ServiceFilter parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.ServiceFilter getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface ServiceEventOrBuilder extends // @@protoc_insertion_point(interface_extends:context.ServiceEvent) + com.google.protobuf.MessageOrBuilder { + + /** + * .context.Event event = 1; + * @return Whether the event field is set. + */ + boolean hasEvent(); + + /** + * .context.Event event = 1; + * @return The event. + */ + context.ContextOuterClass.Event getEvent(); + + /** + * .context.Event event = 1; + */ + context.ContextOuterClass.EventOrBuilder getEventOrBuilder(); + + /** + * .context.ServiceId service_id = 2; + * @return Whether the serviceId field is set. + */ + boolean hasServiceId(); + + /** + * .context.ServiceId service_id = 2; + * @return The serviceId. + */ + context.ContextOuterClass.ServiceId getServiceId(); + + /** + * .context.ServiceId service_id = 2; + */ + context.ContextOuterClass.ServiceIdOrBuilder getServiceIdOrBuilder(); + } + + /** + * Protobuf type {@code context.ServiceEvent} + */ + public static final class ServiceEvent extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.ServiceEvent) + ServiceEventOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use ServiceEvent.newBuilder() to construct. + private ServiceEvent(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private ServiceEvent() { + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new ServiceEvent(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_ServiceEvent_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_ServiceEvent_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.ServiceEvent.class, context.ContextOuterClass.ServiceEvent.Builder.class); + } + + public static final int EVENT_FIELD_NUMBER = 1; + + private context.ContextOuterClass.Event event_; + + /** + * .context.Event event = 1; + * @return Whether the event field is set. + */ + @java.lang.Override + public boolean hasEvent() { + return event_ != null; + } + + /** + * .context.Event event = 1; + * @return The event. + */ + @java.lang.Override + public context.ContextOuterClass.Event getEvent() { + return event_ == null ? context.ContextOuterClass.Event.getDefaultInstance() : event_; + } + + /** + * .context.Event event = 1; + */ + @java.lang.Override + public context.ContextOuterClass.EventOrBuilder getEventOrBuilder() { + return event_ == null ? context.ContextOuterClass.Event.getDefaultInstance() : event_; + } + + public static final int SERVICE_ID_FIELD_NUMBER = 2; + + private context.ContextOuterClass.ServiceId serviceId_; + + /** + * .context.ServiceId service_id = 2; + * @return Whether the serviceId field is set. + */ + @java.lang.Override + public boolean hasServiceId() { + return serviceId_ != null; + } + + /** + * .context.ServiceId service_id = 2; + * @return The serviceId. + */ + @java.lang.Override + public context.ContextOuterClass.ServiceId getServiceId() { + return serviceId_ == null ? context.ContextOuterClass.ServiceId.getDefaultInstance() : serviceId_; + } + + /** + * .context.ServiceId service_id = 2; + */ + @java.lang.Override + public context.ContextOuterClass.ServiceIdOrBuilder getServiceIdOrBuilder() { + return serviceId_ == null ? context.ContextOuterClass.ServiceId.getDefaultInstance() : serviceId_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (event_ != null) { + output.writeMessage(1, getEvent()); + } + if (serviceId_ != null) { + output.writeMessage(2, getServiceId()); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + if (event_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getEvent()); + } + if (serviceId_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getServiceId()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.ServiceEvent)) { + return super.equals(obj); + } + context.ContextOuterClass.ServiceEvent other = (context.ContextOuterClass.ServiceEvent) obj; + if (hasEvent() != other.hasEvent()) + return false; + if (hasEvent()) { + if (!getEvent().equals(other.getEvent())) + return false; + } + if (hasServiceId() != other.hasServiceId()) + return false; + if (hasServiceId()) { + if (!getServiceId().equals(other.getServiceId())) + return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasEvent()) { + hash = (37 * hash) + EVENT_FIELD_NUMBER; + hash = (53 * hash) + getEvent().hashCode(); + } + if (hasServiceId()) { + hash = (37 * hash) + SERVICE_ID_FIELD_NUMBER; + hash = (53 * hash) + getServiceId().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.ServiceEvent parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ServiceEvent parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ServiceEvent parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ServiceEvent parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ServiceEvent parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ServiceEvent parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ServiceEvent parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ServiceEvent parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.ServiceEvent parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ServiceEvent parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.ServiceEvent parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ServiceEvent parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.ServiceEvent prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code context.ServiceEvent} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.ServiceEvent) + context.ContextOuterClass.ServiceEventOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_ServiceEvent_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_ServiceEvent_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.ServiceEvent.class, context.ContextOuterClass.ServiceEvent.Builder.class); + } + + // Construct using context.ContextOuterClass.ServiceEvent.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + event_ = null; + if (eventBuilder_ != null) { + eventBuilder_.dispose(); + eventBuilder_ = null; + } + serviceId_ = null; + if (serviceIdBuilder_ != null) { + serviceIdBuilder_.dispose(); + serviceIdBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_ServiceEvent_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.ServiceEvent getDefaultInstanceForType() { + return context.ContextOuterClass.ServiceEvent.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.ServiceEvent build() { + context.ContextOuterClass.ServiceEvent result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.ServiceEvent buildPartial() { + context.ContextOuterClass.ServiceEvent result = new context.ContextOuterClass.ServiceEvent(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(context.ContextOuterClass.ServiceEvent result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.event_ = eventBuilder_ == null ? event_ : eventBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.serviceId_ = serviceIdBuilder_ == null ? serviceId_ : serviceIdBuilder_.build(); + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.ServiceEvent) { + return mergeFrom((context.ContextOuterClass.ServiceEvent) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.ServiceEvent other) { + if (other == context.ContextOuterClass.ServiceEvent.getDefaultInstance()) + return this; + if (other.hasEvent()) { + mergeEvent(other.getEvent()); + } + if (other.hasServiceId()) { + mergeServiceId(other.getServiceId()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getEventFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + input.readMessage(getServiceIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000002; + break; + } + // case 18 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private context.ContextOuterClass.Event event_; + + private com.google.protobuf.SingleFieldBuilderV3 eventBuilder_; + + /** + * .context.Event event = 1; + * @return Whether the event field is set. + */ + public boolean hasEvent() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * .context.Event event = 1; + * @return The event. + */ + public context.ContextOuterClass.Event getEvent() { + if (eventBuilder_ == null) { + return event_ == null ? context.ContextOuterClass.Event.getDefaultInstance() : event_; + } else { + return eventBuilder_.getMessage(); + } + } + + /** + * .context.Event event = 1; + */ + public Builder setEvent(context.ContextOuterClass.Event value) { + if (eventBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + event_ = value; + } else { + eventBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.Event event = 1; + */ + public Builder setEvent(context.ContextOuterClass.Event.Builder builderForValue) { + if (eventBuilder_ == null) { + event_ = builderForValue.build(); + } else { + eventBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.Event event = 1; + */ + public Builder mergeEvent(context.ContextOuterClass.Event value) { + if (eventBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && event_ != null && event_ != context.ContextOuterClass.Event.getDefaultInstance()) { + getEventBuilder().mergeFrom(value); + } else { + event_ = value; + } + } else { + eventBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.Event event = 1; + */ + public Builder clearEvent() { + bitField0_ = (bitField0_ & ~0x00000001); + event_ = null; + if (eventBuilder_ != null) { + eventBuilder_.dispose(); + eventBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.Event event = 1; + */ + public context.ContextOuterClass.Event.Builder getEventBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getEventFieldBuilder().getBuilder(); + } + + /** + * .context.Event event = 1; + */ + public context.ContextOuterClass.EventOrBuilder getEventOrBuilder() { + if (eventBuilder_ != null) { + return eventBuilder_.getMessageOrBuilder(); + } else { + return event_ == null ? context.ContextOuterClass.Event.getDefaultInstance() : event_; + } + } + + /** + * .context.Event event = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3 getEventFieldBuilder() { + if (eventBuilder_ == null) { + eventBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getEvent(), getParentForChildren(), isClean()); + event_ = null; + } + return eventBuilder_; + } + + private context.ContextOuterClass.ServiceId serviceId_; + + private com.google.protobuf.SingleFieldBuilderV3 serviceIdBuilder_; + + /** + * .context.ServiceId service_id = 2; + * @return Whether the serviceId field is set. + */ + public boolean hasServiceId() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * .context.ServiceId service_id = 2; + * @return The serviceId. + */ + public context.ContextOuterClass.ServiceId getServiceId() { + if (serviceIdBuilder_ == null) { + return serviceId_ == null ? context.ContextOuterClass.ServiceId.getDefaultInstance() : serviceId_; + } else { + return serviceIdBuilder_.getMessage(); + } + } + + /** + * .context.ServiceId service_id = 2; + */ + public Builder setServiceId(context.ContextOuterClass.ServiceId value) { + if (serviceIdBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + serviceId_ = value; + } else { + serviceIdBuilder_.setMessage(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * .context.ServiceId service_id = 2; + */ + public Builder setServiceId(context.ContextOuterClass.ServiceId.Builder builderForValue) { + if (serviceIdBuilder_ == null) { + serviceId_ = builderForValue.build(); + } else { + serviceIdBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * .context.ServiceId service_id = 2; + */ + public Builder mergeServiceId(context.ContextOuterClass.ServiceId value) { + if (serviceIdBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0) && serviceId_ != null && serviceId_ != context.ContextOuterClass.ServiceId.getDefaultInstance()) { + getServiceIdBuilder().mergeFrom(value); + } else { + serviceId_ = value; + } + } else { + serviceIdBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * .context.ServiceId service_id = 2; + */ + public Builder clearServiceId() { + bitField0_ = (bitField0_ & ~0x00000002); + serviceId_ = null; + if (serviceIdBuilder_ != null) { + serviceIdBuilder_.dispose(); + serviceIdBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.ServiceId service_id = 2; + */ + public context.ContextOuterClass.ServiceId.Builder getServiceIdBuilder() { + bitField0_ |= 0x00000002; + onChanged(); + return getServiceIdFieldBuilder().getBuilder(); + } + + /** + * .context.ServiceId service_id = 2; + */ + public context.ContextOuterClass.ServiceIdOrBuilder getServiceIdOrBuilder() { + if (serviceIdBuilder_ != null) { + return serviceIdBuilder_.getMessageOrBuilder(); + } else { + return serviceId_ == null ? context.ContextOuterClass.ServiceId.getDefaultInstance() : serviceId_; + } + } + + /** + * .context.ServiceId service_id = 2; + */ + private com.google.protobuf.SingleFieldBuilderV3 getServiceIdFieldBuilder() { + if (serviceIdBuilder_ == null) { + serviceIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getServiceId(), getParentForChildren(), isClean()); + serviceId_ = null; + } + return serviceIdBuilder_; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.ServiceEvent) + } + + // @@protoc_insertion_point(class_scope:context.ServiceEvent) + private static final context.ContextOuterClass.ServiceEvent DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.ServiceEvent(); + } + + public static context.ContextOuterClass.ServiceEvent getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public ServiceEvent parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.ServiceEvent getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface SliceIdOrBuilder extends // @@protoc_insertion_point(interface_extends:context.SliceId) + com.google.protobuf.MessageOrBuilder { + + /** + * .context.ContextId context_id = 1; + * @return Whether the contextId field is set. + */ + boolean hasContextId(); + + /** + * .context.ContextId context_id = 1; + * @return The contextId. + */ + context.ContextOuterClass.ContextId getContextId(); + + /** + * .context.ContextId context_id = 1; + */ + context.ContextOuterClass.ContextIdOrBuilder getContextIdOrBuilder(); + + /** + * .context.Uuid slice_uuid = 2; + * @return Whether the sliceUuid field is set. + */ + boolean hasSliceUuid(); + + /** + * .context.Uuid slice_uuid = 2; + * @return The sliceUuid. + */ + context.ContextOuterClass.Uuid getSliceUuid(); + + /** + * .context.Uuid slice_uuid = 2; + */ + context.ContextOuterClass.UuidOrBuilder getSliceUuidOrBuilder(); + } + + /** + *
+     * ----- Slice ---------------------------------------------------------------------------------------------------------
+     * 
+ * + * Protobuf type {@code context.SliceId} + */ + public static final class SliceId extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.SliceId) + SliceIdOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use SliceId.newBuilder() to construct. + private SliceId(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private SliceId() { + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new SliceId(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_SliceId_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_SliceId_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.SliceId.class, context.ContextOuterClass.SliceId.Builder.class); + } + + public static final int CONTEXT_ID_FIELD_NUMBER = 1; + + private context.ContextOuterClass.ContextId contextId_; + + /** + * .context.ContextId context_id = 1; + * @return Whether the contextId field is set. + */ + @java.lang.Override + public boolean hasContextId() { + return contextId_ != null; + } + + /** + * .context.ContextId context_id = 1; + * @return The contextId. + */ + @java.lang.Override + public context.ContextOuterClass.ContextId getContextId() { + return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_; + } + + /** + * .context.ContextId context_id = 1; + */ + @java.lang.Override + public context.ContextOuterClass.ContextIdOrBuilder getContextIdOrBuilder() { + return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_; + } + + public static final int SLICE_UUID_FIELD_NUMBER = 2; + + private context.ContextOuterClass.Uuid sliceUuid_; + + /** + * .context.Uuid slice_uuid = 2; + * @return Whether the sliceUuid field is set. + */ + @java.lang.Override + public boolean hasSliceUuid() { + return sliceUuid_ != null; + } + + /** + * .context.Uuid slice_uuid = 2; + * @return The sliceUuid. + */ + @java.lang.Override + public context.ContextOuterClass.Uuid getSliceUuid() { + return sliceUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : sliceUuid_; + } + + /** + * .context.Uuid slice_uuid = 2; + */ + @java.lang.Override + public context.ContextOuterClass.UuidOrBuilder getSliceUuidOrBuilder() { + return sliceUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : sliceUuid_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (contextId_ != null) { + output.writeMessage(1, getContextId()); + } + if (sliceUuid_ != null) { + output.writeMessage(2, getSliceUuid()); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + if (contextId_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getContextId()); + } + if (sliceUuid_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getSliceUuid()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.SliceId)) { + return super.equals(obj); + } + context.ContextOuterClass.SliceId other = (context.ContextOuterClass.SliceId) obj; + if (hasContextId() != other.hasContextId()) + return false; + if (hasContextId()) { + if (!getContextId().equals(other.getContextId())) + return false; + } + if (hasSliceUuid() != other.hasSliceUuid()) + return false; + if (hasSliceUuid()) { + if (!getSliceUuid().equals(other.getSliceUuid())) + return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasContextId()) { + hash = (37 * hash) + CONTEXT_ID_FIELD_NUMBER; + hash = (53 * hash) + getContextId().hashCode(); + } + if (hasSliceUuid()) { + hash = (37 * hash) + SLICE_UUID_FIELD_NUMBER; + hash = (53 * hash) + getSliceUuid().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.SliceId parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.SliceId parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.SliceId parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.SliceId parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.SliceId parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.SliceId parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.SliceId parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.SliceId parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.SliceId parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.SliceId parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.SliceId parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.SliceId parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.SliceId prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + *
+         * ----- Slice ---------------------------------------------------------------------------------------------------------
+         * 
+ * + * Protobuf type {@code context.SliceId} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.SliceId) + context.ContextOuterClass.SliceIdOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_SliceId_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_SliceId_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.SliceId.class, context.ContextOuterClass.SliceId.Builder.class); + } + + // Construct using context.ContextOuterClass.SliceId.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + contextId_ = null; + if (contextIdBuilder_ != null) { + contextIdBuilder_.dispose(); + contextIdBuilder_ = null; + } + sliceUuid_ = null; + if (sliceUuidBuilder_ != null) { + sliceUuidBuilder_.dispose(); + sliceUuidBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_SliceId_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.SliceId getDefaultInstanceForType() { + return context.ContextOuterClass.SliceId.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.SliceId build() { + context.ContextOuterClass.SliceId result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.SliceId buildPartial() { + context.ContextOuterClass.SliceId result = new context.ContextOuterClass.SliceId(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(context.ContextOuterClass.SliceId result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.contextId_ = contextIdBuilder_ == null ? contextId_ : contextIdBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.sliceUuid_ = sliceUuidBuilder_ == null ? sliceUuid_ : sliceUuidBuilder_.build(); + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.SliceId) { + return mergeFrom((context.ContextOuterClass.SliceId) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.SliceId other) { + if (other == context.ContextOuterClass.SliceId.getDefaultInstance()) + return this; + if (other.hasContextId()) { + mergeContextId(other.getContextId()); + } + if (other.hasSliceUuid()) { + mergeSliceUuid(other.getSliceUuid()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getContextIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + input.readMessage(getSliceUuidFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000002; + break; + } + // case 18 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private context.ContextOuterClass.ContextId contextId_; + + private com.google.protobuf.SingleFieldBuilderV3 contextIdBuilder_; + + /** + * .context.ContextId context_id = 1; + * @return Whether the contextId field is set. + */ + public boolean hasContextId() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * .context.ContextId context_id = 1; + * @return The contextId. + */ + public context.ContextOuterClass.ContextId getContextId() { + if (contextIdBuilder_ == null) { + return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_; + } else { + return contextIdBuilder_.getMessage(); + } + } + + /** + * .context.ContextId context_id = 1; + */ + public Builder setContextId(context.ContextOuterClass.ContextId value) { + if (contextIdBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + contextId_ = value; + } else { + contextIdBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.ContextId context_id = 1; + */ + public Builder setContextId(context.ContextOuterClass.ContextId.Builder builderForValue) { + if (contextIdBuilder_ == null) { + contextId_ = builderForValue.build(); + } else { + contextIdBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.ContextId context_id = 1; + */ + public Builder mergeContextId(context.ContextOuterClass.ContextId value) { + if (contextIdBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && contextId_ != null && contextId_ != context.ContextOuterClass.ContextId.getDefaultInstance()) { + getContextIdBuilder().mergeFrom(value); + } else { + contextId_ = value; + } + } else { + contextIdBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.ContextId context_id = 1; + */ + public Builder clearContextId() { + bitField0_ = (bitField0_ & ~0x00000001); + contextId_ = null; + if (contextIdBuilder_ != null) { + contextIdBuilder_.dispose(); + contextIdBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.ContextId context_id = 1; + */ + public context.ContextOuterClass.ContextId.Builder getContextIdBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getContextIdFieldBuilder().getBuilder(); + } + + /** + * .context.ContextId context_id = 1; + */ + public context.ContextOuterClass.ContextIdOrBuilder getContextIdOrBuilder() { + if (contextIdBuilder_ != null) { + return contextIdBuilder_.getMessageOrBuilder(); + } else { + return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_; + } + } + + /** + * .context.ContextId context_id = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3 getContextIdFieldBuilder() { + if (contextIdBuilder_ == null) { + contextIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getContextId(), getParentForChildren(), isClean()); + contextId_ = null; + } + return contextIdBuilder_; + } + + private context.ContextOuterClass.Uuid sliceUuid_; + + private com.google.protobuf.SingleFieldBuilderV3 sliceUuidBuilder_; + + /** + * .context.Uuid slice_uuid = 2; + * @return Whether the sliceUuid field is set. + */ + public boolean hasSliceUuid() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * .context.Uuid slice_uuid = 2; + * @return The sliceUuid. + */ + public context.ContextOuterClass.Uuid getSliceUuid() { + if (sliceUuidBuilder_ == null) { + return sliceUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : sliceUuid_; + } else { + return sliceUuidBuilder_.getMessage(); + } + } + + /** + * .context.Uuid slice_uuid = 2; + */ + public Builder setSliceUuid(context.ContextOuterClass.Uuid value) { + if (sliceUuidBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + sliceUuid_ = value; + } else { + sliceUuidBuilder_.setMessage(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * .context.Uuid slice_uuid = 2; + */ + public Builder setSliceUuid(context.ContextOuterClass.Uuid.Builder builderForValue) { + if (sliceUuidBuilder_ == null) { + sliceUuid_ = builderForValue.build(); + } else { + sliceUuidBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * .context.Uuid slice_uuid = 2; + */ + public Builder mergeSliceUuid(context.ContextOuterClass.Uuid value) { + if (sliceUuidBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0) && sliceUuid_ != null && sliceUuid_ != context.ContextOuterClass.Uuid.getDefaultInstance()) { + getSliceUuidBuilder().mergeFrom(value); + } else { + sliceUuid_ = value; + } + } else { + sliceUuidBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * .context.Uuid slice_uuid = 2; + */ + public Builder clearSliceUuid() { + bitField0_ = (bitField0_ & ~0x00000002); + sliceUuid_ = null; + if (sliceUuidBuilder_ != null) { + sliceUuidBuilder_.dispose(); + sliceUuidBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.Uuid slice_uuid = 2; + */ + public context.ContextOuterClass.Uuid.Builder getSliceUuidBuilder() { + bitField0_ |= 0x00000002; + onChanged(); + return getSliceUuidFieldBuilder().getBuilder(); + } + + /** + * .context.Uuid slice_uuid = 2; + */ + public context.ContextOuterClass.UuidOrBuilder getSliceUuidOrBuilder() { + if (sliceUuidBuilder_ != null) { + return sliceUuidBuilder_.getMessageOrBuilder(); + } else { + return sliceUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : sliceUuid_; + } + } + + /** + * .context.Uuid slice_uuid = 2; + */ + private com.google.protobuf.SingleFieldBuilderV3 getSliceUuidFieldBuilder() { + if (sliceUuidBuilder_ == null) { + sliceUuidBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getSliceUuid(), getParentForChildren(), isClean()); + sliceUuid_ = null; + } + return sliceUuidBuilder_; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.SliceId) + } + + // @@protoc_insertion_point(class_scope:context.SliceId) + private static final context.ContextOuterClass.SliceId DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.SliceId(); + } + + public static context.ContextOuterClass.SliceId getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public SliceId parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.SliceId getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface SliceOrBuilder extends // @@protoc_insertion_point(interface_extends:context.Slice) + com.google.protobuf.MessageOrBuilder { + + /** + * .context.SliceId slice_id = 1; + * @return Whether the sliceId field is set. + */ + boolean hasSliceId(); + + /** + * .context.SliceId slice_id = 1; + * @return The sliceId. + */ + context.ContextOuterClass.SliceId getSliceId(); + + /** + * .context.SliceId slice_id = 1; + */ + context.ContextOuterClass.SliceIdOrBuilder getSliceIdOrBuilder(); + + /** + * string name = 2; + * @return The name. + */ + java.lang.String getName(); + + /** + * string name = 2; + * @return The bytes for name. + */ + com.google.protobuf.ByteString getNameBytes(); + + /** + * repeated .context.EndPointId slice_endpoint_ids = 3; + */ + java.util.List getSliceEndpointIdsList(); + + /** + * repeated .context.EndPointId slice_endpoint_ids = 3; + */ + context.ContextOuterClass.EndPointId getSliceEndpointIds(int index); + + /** + * repeated .context.EndPointId slice_endpoint_ids = 3; + */ + int getSliceEndpointIdsCount(); + + /** + * repeated .context.EndPointId slice_endpoint_ids = 3; + */ + java.util.List getSliceEndpointIdsOrBuilderList(); + + /** + * repeated .context.EndPointId slice_endpoint_ids = 3; + */ + context.ContextOuterClass.EndPointIdOrBuilder getSliceEndpointIdsOrBuilder(int index); + + /** + * repeated .context.Constraint slice_constraints = 4; + */ + java.util.List getSliceConstraintsList(); + + /** + * repeated .context.Constraint slice_constraints = 4; + */ + context.ContextOuterClass.Constraint getSliceConstraints(int index); + + /** + * repeated .context.Constraint slice_constraints = 4; + */ + int getSliceConstraintsCount(); + + /** + * repeated .context.Constraint slice_constraints = 4; + */ + java.util.List getSliceConstraintsOrBuilderList(); + + /** + * repeated .context.Constraint slice_constraints = 4; + */ + context.ContextOuterClass.ConstraintOrBuilder getSliceConstraintsOrBuilder(int index); + + /** + * repeated .context.ServiceId slice_service_ids = 5; + */ + java.util.List getSliceServiceIdsList(); + + /** + * repeated .context.ServiceId slice_service_ids = 5; + */ + context.ContextOuterClass.ServiceId getSliceServiceIds(int index); + + /** + * repeated .context.ServiceId slice_service_ids = 5; + */ + int getSliceServiceIdsCount(); + + /** + * repeated .context.ServiceId slice_service_ids = 5; + */ + java.util.List getSliceServiceIdsOrBuilderList(); + + /** + * repeated .context.ServiceId slice_service_ids = 5; + */ + context.ContextOuterClass.ServiceIdOrBuilder getSliceServiceIdsOrBuilder(int index); + + /** + * repeated .context.SliceId slice_subslice_ids = 6; + */ + java.util.List getSliceSubsliceIdsList(); + + /** + * repeated .context.SliceId slice_subslice_ids = 6; + */ + context.ContextOuterClass.SliceId getSliceSubsliceIds(int index); + + /** + * repeated .context.SliceId slice_subslice_ids = 6; + */ + int getSliceSubsliceIdsCount(); + + /** + * repeated .context.SliceId slice_subslice_ids = 6; + */ + java.util.List getSliceSubsliceIdsOrBuilderList(); + + /** + * repeated .context.SliceId slice_subslice_ids = 6; + */ + context.ContextOuterClass.SliceIdOrBuilder getSliceSubsliceIdsOrBuilder(int index); + + /** + * .context.SliceStatus slice_status = 7; + * @return Whether the sliceStatus field is set. + */ + boolean hasSliceStatus(); + + /** + * .context.SliceStatus slice_status = 7; + * @return The sliceStatus. + */ + context.ContextOuterClass.SliceStatus getSliceStatus(); + + /** + * .context.SliceStatus slice_status = 7; + */ + context.ContextOuterClass.SliceStatusOrBuilder getSliceStatusOrBuilder(); + + /** + * .context.SliceConfig slice_config = 8; + * @return Whether the sliceConfig field is set. + */ + boolean hasSliceConfig(); + + /** + * .context.SliceConfig slice_config = 8; + * @return The sliceConfig. + */ + context.ContextOuterClass.SliceConfig getSliceConfig(); + + /** + * .context.SliceConfig slice_config = 8; + */ + context.ContextOuterClass.SliceConfigOrBuilder getSliceConfigOrBuilder(); + + /** + * .context.SliceOwner slice_owner = 9; + * @return Whether the sliceOwner field is set. + */ + boolean hasSliceOwner(); + + /** + * .context.SliceOwner slice_owner = 9; + * @return The sliceOwner. + */ + context.ContextOuterClass.SliceOwner getSliceOwner(); + + /** + * .context.SliceOwner slice_owner = 9; + */ + context.ContextOuterClass.SliceOwnerOrBuilder getSliceOwnerOrBuilder(); + + /** + * .context.Timestamp timestamp = 10; + * @return Whether the timestamp field is set. + */ + boolean hasTimestamp(); + + /** + * .context.Timestamp timestamp = 10; + * @return The timestamp. + */ + context.ContextOuterClass.Timestamp getTimestamp(); + + /** + * .context.Timestamp timestamp = 10; + */ + context.ContextOuterClass.TimestampOrBuilder getTimestampOrBuilder(); + } + + /** + * Protobuf type {@code context.Slice} + */ + public static final class Slice extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.Slice) + SliceOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use Slice.newBuilder() to construct. + private Slice(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private Slice() { + name_ = ""; + sliceEndpointIds_ = java.util.Collections.emptyList(); + sliceConstraints_ = java.util.Collections.emptyList(); + sliceServiceIds_ = java.util.Collections.emptyList(); + sliceSubsliceIds_ = java.util.Collections.emptyList(); + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new Slice(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_Slice_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_Slice_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.Slice.class, context.ContextOuterClass.Slice.Builder.class); + } + + public static final int SLICE_ID_FIELD_NUMBER = 1; + + private context.ContextOuterClass.SliceId sliceId_; + + /** + * .context.SliceId slice_id = 1; + * @return Whether the sliceId field is set. + */ + @java.lang.Override + public boolean hasSliceId() { + return sliceId_ != null; + } + + /** + * .context.SliceId slice_id = 1; + * @return The sliceId. + */ + @java.lang.Override + public context.ContextOuterClass.SliceId getSliceId() { + return sliceId_ == null ? context.ContextOuterClass.SliceId.getDefaultInstance() : sliceId_; + } + + /** + * .context.SliceId slice_id = 1; + */ + @java.lang.Override + public context.ContextOuterClass.SliceIdOrBuilder getSliceIdOrBuilder() { + return sliceId_ == null ? context.ContextOuterClass.SliceId.getDefaultInstance() : sliceId_; + } + + public static final int NAME_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object name_ = ""; + + /** + * string name = 2; + * @return The name. + */ + @java.lang.Override + public java.lang.String getName() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + name_ = s; + return s; + } + } + + /** + * string name = 2; + * @return The bytes for name. + */ + @java.lang.Override + public com.google.protobuf.ByteString getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int SLICE_ENDPOINT_IDS_FIELD_NUMBER = 3; + + @SuppressWarnings("serial") + private java.util.List sliceEndpointIds_; + + /** + * repeated .context.EndPointId slice_endpoint_ids = 3; + */ + @java.lang.Override + public java.util.List getSliceEndpointIdsList() { + return sliceEndpointIds_; + } + + /** + * repeated .context.EndPointId slice_endpoint_ids = 3; + */ + @java.lang.Override + public java.util.List getSliceEndpointIdsOrBuilderList() { + return sliceEndpointIds_; + } + + /** + * repeated .context.EndPointId slice_endpoint_ids = 3; + */ + @java.lang.Override + public int getSliceEndpointIdsCount() { + return sliceEndpointIds_.size(); + } + + /** + * repeated .context.EndPointId slice_endpoint_ids = 3; + */ + @java.lang.Override + public context.ContextOuterClass.EndPointId getSliceEndpointIds(int index) { + return sliceEndpointIds_.get(index); + } + + /** + * repeated .context.EndPointId slice_endpoint_ids = 3; + */ + @java.lang.Override + public context.ContextOuterClass.EndPointIdOrBuilder getSliceEndpointIdsOrBuilder(int index) { + return sliceEndpointIds_.get(index); + } + + public static final int SLICE_CONSTRAINTS_FIELD_NUMBER = 4; + + @SuppressWarnings("serial") + private java.util.List sliceConstraints_; + + /** + * repeated .context.Constraint slice_constraints = 4; + */ + @java.lang.Override + public java.util.List getSliceConstraintsList() { + return sliceConstraints_; + } + + /** + * repeated .context.Constraint slice_constraints = 4; + */ + @java.lang.Override + public java.util.List getSliceConstraintsOrBuilderList() { + return sliceConstraints_; + } + + /** + * repeated .context.Constraint slice_constraints = 4; + */ + @java.lang.Override + public int getSliceConstraintsCount() { + return sliceConstraints_.size(); + } + + /** + * repeated .context.Constraint slice_constraints = 4; + */ + @java.lang.Override + public context.ContextOuterClass.Constraint getSliceConstraints(int index) { + return sliceConstraints_.get(index); + } + + /** + * repeated .context.Constraint slice_constraints = 4; + */ + @java.lang.Override + public context.ContextOuterClass.ConstraintOrBuilder getSliceConstraintsOrBuilder(int index) { + return sliceConstraints_.get(index); + } + + public static final int SLICE_SERVICE_IDS_FIELD_NUMBER = 5; + + @SuppressWarnings("serial") + private java.util.List sliceServiceIds_; + + /** + * repeated .context.ServiceId slice_service_ids = 5; + */ + @java.lang.Override + public java.util.List getSliceServiceIdsList() { + return sliceServiceIds_; + } + + /** + * repeated .context.ServiceId slice_service_ids = 5; + */ + @java.lang.Override + public java.util.List getSliceServiceIdsOrBuilderList() { + return sliceServiceIds_; + } + + /** + * repeated .context.ServiceId slice_service_ids = 5; + */ + @java.lang.Override + public int getSliceServiceIdsCount() { + return sliceServiceIds_.size(); + } + + /** + * repeated .context.ServiceId slice_service_ids = 5; + */ + @java.lang.Override + public context.ContextOuterClass.ServiceId getSliceServiceIds(int index) { + return sliceServiceIds_.get(index); + } + + /** + * repeated .context.ServiceId slice_service_ids = 5; + */ + @java.lang.Override + public context.ContextOuterClass.ServiceIdOrBuilder getSliceServiceIdsOrBuilder(int index) { + return sliceServiceIds_.get(index); + } + + public static final int SLICE_SUBSLICE_IDS_FIELD_NUMBER = 6; + + @SuppressWarnings("serial") + private java.util.List sliceSubsliceIds_; + + /** + * repeated .context.SliceId slice_subslice_ids = 6; + */ + @java.lang.Override + public java.util.List getSliceSubsliceIdsList() { + return sliceSubsliceIds_; + } + + /** + * repeated .context.SliceId slice_subslice_ids = 6; + */ + @java.lang.Override + public java.util.List getSliceSubsliceIdsOrBuilderList() { + return sliceSubsliceIds_; + } + + /** + * repeated .context.SliceId slice_subslice_ids = 6; + */ + @java.lang.Override + public int getSliceSubsliceIdsCount() { + return sliceSubsliceIds_.size(); + } + + /** + * repeated .context.SliceId slice_subslice_ids = 6; + */ + @java.lang.Override + public context.ContextOuterClass.SliceId getSliceSubsliceIds(int index) { + return sliceSubsliceIds_.get(index); + } + + /** + * repeated .context.SliceId slice_subslice_ids = 6; + */ + @java.lang.Override + public context.ContextOuterClass.SliceIdOrBuilder getSliceSubsliceIdsOrBuilder(int index) { + return sliceSubsliceIds_.get(index); + } + + public static final int SLICE_STATUS_FIELD_NUMBER = 7; + + private context.ContextOuterClass.SliceStatus sliceStatus_; + + /** + * .context.SliceStatus slice_status = 7; + * @return Whether the sliceStatus field is set. + */ + @java.lang.Override + public boolean hasSliceStatus() { + return sliceStatus_ != null; + } + + /** + * .context.SliceStatus slice_status = 7; + * @return The sliceStatus. + */ + @java.lang.Override + public context.ContextOuterClass.SliceStatus getSliceStatus() { + return sliceStatus_ == null ? context.ContextOuterClass.SliceStatus.getDefaultInstance() : sliceStatus_; + } + + /** + * .context.SliceStatus slice_status = 7; + */ + @java.lang.Override + public context.ContextOuterClass.SliceStatusOrBuilder getSliceStatusOrBuilder() { + return sliceStatus_ == null ? context.ContextOuterClass.SliceStatus.getDefaultInstance() : sliceStatus_; + } + + public static final int SLICE_CONFIG_FIELD_NUMBER = 8; + + private context.ContextOuterClass.SliceConfig sliceConfig_; + + /** + * .context.SliceConfig slice_config = 8; + * @return Whether the sliceConfig field is set. + */ + @java.lang.Override + public boolean hasSliceConfig() { + return sliceConfig_ != null; + } + + /** + * .context.SliceConfig slice_config = 8; + * @return The sliceConfig. + */ + @java.lang.Override + public context.ContextOuterClass.SliceConfig getSliceConfig() { + return sliceConfig_ == null ? context.ContextOuterClass.SliceConfig.getDefaultInstance() : sliceConfig_; + } + + /** + * .context.SliceConfig slice_config = 8; + */ + @java.lang.Override + public context.ContextOuterClass.SliceConfigOrBuilder getSliceConfigOrBuilder() { + return sliceConfig_ == null ? context.ContextOuterClass.SliceConfig.getDefaultInstance() : sliceConfig_; + } + + public static final int SLICE_OWNER_FIELD_NUMBER = 9; + + private context.ContextOuterClass.SliceOwner sliceOwner_; + + /** + * .context.SliceOwner slice_owner = 9; + * @return Whether the sliceOwner field is set. + */ + @java.lang.Override + public boolean hasSliceOwner() { + return sliceOwner_ != null; + } + + /** + * .context.SliceOwner slice_owner = 9; + * @return The sliceOwner. + */ + @java.lang.Override + public context.ContextOuterClass.SliceOwner getSliceOwner() { + return sliceOwner_ == null ? context.ContextOuterClass.SliceOwner.getDefaultInstance() : sliceOwner_; + } + + /** + * .context.SliceOwner slice_owner = 9; + */ + @java.lang.Override + public context.ContextOuterClass.SliceOwnerOrBuilder getSliceOwnerOrBuilder() { + return sliceOwner_ == null ? context.ContextOuterClass.SliceOwner.getDefaultInstance() : sliceOwner_; + } + + public static final int TIMESTAMP_FIELD_NUMBER = 10; + + private context.ContextOuterClass.Timestamp timestamp_; + + /** + * .context.Timestamp timestamp = 10; + * @return Whether the timestamp field is set. + */ + @java.lang.Override + public boolean hasTimestamp() { + return timestamp_ != null; + } + + /** + * .context.Timestamp timestamp = 10; + * @return The timestamp. + */ + @java.lang.Override + public context.ContextOuterClass.Timestamp getTimestamp() { + return timestamp_ == null ? context.ContextOuterClass.Timestamp.getDefaultInstance() : timestamp_; + } + + /** + * .context.Timestamp timestamp = 10; + */ + @java.lang.Override + public context.ContextOuterClass.TimestampOrBuilder getTimestampOrBuilder() { + return timestamp_ == null ? context.ContextOuterClass.Timestamp.getDefaultInstance() : timestamp_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (sliceId_ != null) { + output.writeMessage(1, getSliceId()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, name_); + } + for (int i = 0; i < sliceEndpointIds_.size(); i++) { + output.writeMessage(3, sliceEndpointIds_.get(i)); + } + for (int i = 0; i < sliceConstraints_.size(); i++) { + output.writeMessage(4, sliceConstraints_.get(i)); + } + for (int i = 0; i < sliceServiceIds_.size(); i++) { + output.writeMessage(5, sliceServiceIds_.get(i)); + } + for (int i = 0; i < sliceSubsliceIds_.size(); i++) { + output.writeMessage(6, sliceSubsliceIds_.get(i)); + } + if (sliceStatus_ != null) { + output.writeMessage(7, getSliceStatus()); + } + if (sliceConfig_ != null) { + output.writeMessage(8, getSliceConfig()); + } + if (sliceOwner_ != null) { + output.writeMessage(9, getSliceOwner()); + } + if (timestamp_ != null) { + output.writeMessage(10, getTimestamp()); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + if (sliceId_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getSliceId()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, name_); + } + for (int i = 0; i < sliceEndpointIds_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, sliceEndpointIds_.get(i)); + } + for (int i = 0; i < sliceConstraints_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, sliceConstraints_.get(i)); + } + for (int i = 0; i < sliceServiceIds_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, sliceServiceIds_.get(i)); + } + for (int i = 0; i < sliceSubsliceIds_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(6, sliceSubsliceIds_.get(i)); + } + if (sliceStatus_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(7, getSliceStatus()); + } + if (sliceConfig_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(8, getSliceConfig()); + } + if (sliceOwner_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(9, getSliceOwner()); + } + if (timestamp_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(10, getTimestamp()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.Slice)) { + return super.equals(obj); + } + context.ContextOuterClass.Slice other = (context.ContextOuterClass.Slice) obj; + if (hasSliceId() != other.hasSliceId()) + return false; + if (hasSliceId()) { + if (!getSliceId().equals(other.getSliceId())) + return false; + } + if (!getName().equals(other.getName())) + return false; + if (!getSliceEndpointIdsList().equals(other.getSliceEndpointIdsList())) + return false; + if (!getSliceConstraintsList().equals(other.getSliceConstraintsList())) + return false; + if (!getSliceServiceIdsList().equals(other.getSliceServiceIdsList())) + return false; + if (!getSliceSubsliceIdsList().equals(other.getSliceSubsliceIdsList())) + return false; + if (hasSliceStatus() != other.hasSliceStatus()) + return false; + if (hasSliceStatus()) { + if (!getSliceStatus().equals(other.getSliceStatus())) + return false; + } + if (hasSliceConfig() != other.hasSliceConfig()) + return false; + if (hasSliceConfig()) { + if (!getSliceConfig().equals(other.getSliceConfig())) + return false; + } + if (hasSliceOwner() != other.hasSliceOwner()) + return false; + if (hasSliceOwner()) { + if (!getSliceOwner().equals(other.getSliceOwner())) + return false; + } + if (hasTimestamp() != other.hasTimestamp()) + return false; + if (hasTimestamp()) { + if (!getTimestamp().equals(other.getTimestamp())) + return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasSliceId()) { + hash = (37 * hash) + SLICE_ID_FIELD_NUMBER; + hash = (53 * hash) + getSliceId().hashCode(); + } + hash = (37 * hash) + NAME_FIELD_NUMBER; + hash = (53 * hash) + getName().hashCode(); + if (getSliceEndpointIdsCount() > 0) { + hash = (37 * hash) + SLICE_ENDPOINT_IDS_FIELD_NUMBER; + hash = (53 * hash) + getSliceEndpointIdsList().hashCode(); + } + if (getSliceConstraintsCount() > 0) { + hash = (37 * hash) + SLICE_CONSTRAINTS_FIELD_NUMBER; + hash = (53 * hash) + getSliceConstraintsList().hashCode(); + } + if (getSliceServiceIdsCount() > 0) { + hash = (37 * hash) + SLICE_SERVICE_IDS_FIELD_NUMBER; + hash = (53 * hash) + getSliceServiceIdsList().hashCode(); + } + if (getSliceSubsliceIdsCount() > 0) { + hash = (37 * hash) + SLICE_SUBSLICE_IDS_FIELD_NUMBER; + hash = (53 * hash) + getSliceSubsliceIdsList().hashCode(); + } + if (hasSliceStatus()) { + hash = (37 * hash) + SLICE_STATUS_FIELD_NUMBER; + hash = (53 * hash) + getSliceStatus().hashCode(); + } + if (hasSliceConfig()) { + hash = (37 * hash) + SLICE_CONFIG_FIELD_NUMBER; + hash = (53 * hash) + getSliceConfig().hashCode(); + } + if (hasSliceOwner()) { + hash = (37 * hash) + SLICE_OWNER_FIELD_NUMBER; + hash = (53 * hash) + getSliceOwner().hashCode(); + } + if (hasTimestamp()) { + hash = (37 * hash) + TIMESTAMP_FIELD_NUMBER; + hash = (53 * hash) + getTimestamp().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.Slice parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.Slice parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.Slice parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.Slice parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.Slice parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.Slice parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.Slice parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.Slice parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.Slice parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.Slice parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.Slice parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.Slice parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.Slice prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code context.Slice} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.Slice) + context.ContextOuterClass.SliceOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_Slice_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_Slice_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.Slice.class, context.ContextOuterClass.Slice.Builder.class); + } + + // Construct using context.ContextOuterClass.Slice.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + sliceId_ = null; + if (sliceIdBuilder_ != null) { + sliceIdBuilder_.dispose(); + sliceIdBuilder_ = null; + } + name_ = ""; + if (sliceEndpointIdsBuilder_ == null) { + sliceEndpointIds_ = java.util.Collections.emptyList(); + } else { + sliceEndpointIds_ = null; + sliceEndpointIdsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000004); + if (sliceConstraintsBuilder_ == null) { + sliceConstraints_ = java.util.Collections.emptyList(); + } else { + sliceConstraints_ = null; + sliceConstraintsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000008); + if (sliceServiceIdsBuilder_ == null) { + sliceServiceIds_ = java.util.Collections.emptyList(); + } else { + sliceServiceIds_ = null; + sliceServiceIdsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000010); + if (sliceSubsliceIdsBuilder_ == null) { + sliceSubsliceIds_ = java.util.Collections.emptyList(); + } else { + sliceSubsliceIds_ = null; + sliceSubsliceIdsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000020); + sliceStatus_ = null; + if (sliceStatusBuilder_ != null) { + sliceStatusBuilder_.dispose(); + sliceStatusBuilder_ = null; + } + sliceConfig_ = null; + if (sliceConfigBuilder_ != null) { + sliceConfigBuilder_.dispose(); + sliceConfigBuilder_ = null; + } + sliceOwner_ = null; + if (sliceOwnerBuilder_ != null) { + sliceOwnerBuilder_.dispose(); + sliceOwnerBuilder_ = null; + } + timestamp_ = null; + if (timestampBuilder_ != null) { + timestampBuilder_.dispose(); + timestampBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_Slice_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.Slice getDefaultInstanceForType() { + return context.ContextOuterClass.Slice.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.Slice build() { + context.ContextOuterClass.Slice result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.Slice buildPartial() { + context.ContextOuterClass.Slice result = new context.ContextOuterClass.Slice(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(context.ContextOuterClass.Slice result) { + if (sliceEndpointIdsBuilder_ == null) { + if (((bitField0_ & 0x00000004) != 0)) { + sliceEndpointIds_ = java.util.Collections.unmodifiableList(sliceEndpointIds_); + bitField0_ = (bitField0_ & ~0x00000004); + } + result.sliceEndpointIds_ = sliceEndpointIds_; + } else { + result.sliceEndpointIds_ = sliceEndpointIdsBuilder_.build(); + } + if (sliceConstraintsBuilder_ == null) { + if (((bitField0_ & 0x00000008) != 0)) { + sliceConstraints_ = java.util.Collections.unmodifiableList(sliceConstraints_); + bitField0_ = (bitField0_ & ~0x00000008); + } + result.sliceConstraints_ = sliceConstraints_; + } else { + result.sliceConstraints_ = sliceConstraintsBuilder_.build(); + } + if (sliceServiceIdsBuilder_ == null) { + if (((bitField0_ & 0x00000010) != 0)) { + sliceServiceIds_ = java.util.Collections.unmodifiableList(sliceServiceIds_); + bitField0_ = (bitField0_ & ~0x00000010); + } + result.sliceServiceIds_ = sliceServiceIds_; + } else { + result.sliceServiceIds_ = sliceServiceIdsBuilder_.build(); + } + if (sliceSubsliceIdsBuilder_ == null) { + if (((bitField0_ & 0x00000020) != 0)) { + sliceSubsliceIds_ = java.util.Collections.unmodifiableList(sliceSubsliceIds_); + bitField0_ = (bitField0_ & ~0x00000020); + } + result.sliceSubsliceIds_ = sliceSubsliceIds_; + } else { + result.sliceSubsliceIds_ = sliceSubsliceIdsBuilder_.build(); + } + } + + private void buildPartial0(context.ContextOuterClass.Slice result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.sliceId_ = sliceIdBuilder_ == null ? sliceId_ : sliceIdBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.name_ = name_; + } + if (((from_bitField0_ & 0x00000040) != 0)) { + result.sliceStatus_ = sliceStatusBuilder_ == null ? sliceStatus_ : sliceStatusBuilder_.build(); + } + if (((from_bitField0_ & 0x00000080) != 0)) { + result.sliceConfig_ = sliceConfigBuilder_ == null ? sliceConfig_ : sliceConfigBuilder_.build(); + } + if (((from_bitField0_ & 0x00000100) != 0)) { + result.sliceOwner_ = sliceOwnerBuilder_ == null ? sliceOwner_ : sliceOwnerBuilder_.build(); + } + if (((from_bitField0_ & 0x00000200) != 0)) { + result.timestamp_ = timestampBuilder_ == null ? timestamp_ : timestampBuilder_.build(); + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.Slice) { + return mergeFrom((context.ContextOuterClass.Slice) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.Slice other) { + if (other == context.ContextOuterClass.Slice.getDefaultInstance()) + return this; + if (other.hasSliceId()) { + mergeSliceId(other.getSliceId()); + } + if (!other.getName().isEmpty()) { + name_ = other.name_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (sliceEndpointIdsBuilder_ == null) { + if (!other.sliceEndpointIds_.isEmpty()) { + if (sliceEndpointIds_.isEmpty()) { + sliceEndpointIds_ = other.sliceEndpointIds_; + bitField0_ = (bitField0_ & ~0x00000004); + } else { + ensureSliceEndpointIdsIsMutable(); + sliceEndpointIds_.addAll(other.sliceEndpointIds_); + } + onChanged(); + } + } else { + if (!other.sliceEndpointIds_.isEmpty()) { + if (sliceEndpointIdsBuilder_.isEmpty()) { + sliceEndpointIdsBuilder_.dispose(); + sliceEndpointIdsBuilder_ = null; + sliceEndpointIds_ = other.sliceEndpointIds_; + bitField0_ = (bitField0_ & ~0x00000004); + sliceEndpointIdsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getSliceEndpointIdsFieldBuilder() : null; + } else { + sliceEndpointIdsBuilder_.addAllMessages(other.sliceEndpointIds_); + } + } + } + if (sliceConstraintsBuilder_ == null) { + if (!other.sliceConstraints_.isEmpty()) { + if (sliceConstraints_.isEmpty()) { + sliceConstraints_ = other.sliceConstraints_; + bitField0_ = (bitField0_ & ~0x00000008); + } else { + ensureSliceConstraintsIsMutable(); + sliceConstraints_.addAll(other.sliceConstraints_); + } + onChanged(); + } + } else { + if (!other.sliceConstraints_.isEmpty()) { + if (sliceConstraintsBuilder_.isEmpty()) { + sliceConstraintsBuilder_.dispose(); + sliceConstraintsBuilder_ = null; + sliceConstraints_ = other.sliceConstraints_; + bitField0_ = (bitField0_ & ~0x00000008); + sliceConstraintsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getSliceConstraintsFieldBuilder() : null; + } else { + sliceConstraintsBuilder_.addAllMessages(other.sliceConstraints_); + } + } + } + if (sliceServiceIdsBuilder_ == null) { + if (!other.sliceServiceIds_.isEmpty()) { + if (sliceServiceIds_.isEmpty()) { + sliceServiceIds_ = other.sliceServiceIds_; + bitField0_ = (bitField0_ & ~0x00000010); + } else { + ensureSliceServiceIdsIsMutable(); + sliceServiceIds_.addAll(other.sliceServiceIds_); + } + onChanged(); + } + } else { + if (!other.sliceServiceIds_.isEmpty()) { + if (sliceServiceIdsBuilder_.isEmpty()) { + sliceServiceIdsBuilder_.dispose(); + sliceServiceIdsBuilder_ = null; + sliceServiceIds_ = other.sliceServiceIds_; + bitField0_ = (bitField0_ & ~0x00000010); + sliceServiceIdsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getSliceServiceIdsFieldBuilder() : null; + } else { + sliceServiceIdsBuilder_.addAllMessages(other.sliceServiceIds_); + } + } + } + if (sliceSubsliceIdsBuilder_ == null) { + if (!other.sliceSubsliceIds_.isEmpty()) { + if (sliceSubsliceIds_.isEmpty()) { + sliceSubsliceIds_ = other.sliceSubsliceIds_; + bitField0_ = (bitField0_ & ~0x00000020); + } else { + ensureSliceSubsliceIdsIsMutable(); + sliceSubsliceIds_.addAll(other.sliceSubsliceIds_); + } + onChanged(); + } + } else { + if (!other.sliceSubsliceIds_.isEmpty()) { + if (sliceSubsliceIdsBuilder_.isEmpty()) { + sliceSubsliceIdsBuilder_.dispose(); + sliceSubsliceIdsBuilder_ = null; + sliceSubsliceIds_ = other.sliceSubsliceIds_; + bitField0_ = (bitField0_ & ~0x00000020); + sliceSubsliceIdsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getSliceSubsliceIdsFieldBuilder() : null; + } else { + sliceSubsliceIdsBuilder_.addAllMessages(other.sliceSubsliceIds_); + } + } + } + if (other.hasSliceStatus()) { + mergeSliceStatus(other.getSliceStatus()); + } + if (other.hasSliceConfig()) { + mergeSliceConfig(other.getSliceConfig()); + } + if (other.hasSliceOwner()) { + mergeSliceOwner(other.getSliceOwner()); + } + if (other.hasTimestamp()) { + mergeTimestamp(other.getTimestamp()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getSliceIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + name_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } + // case 18 + case 26: + { + context.ContextOuterClass.EndPointId m = input.readMessage(context.ContextOuterClass.EndPointId.parser(), extensionRegistry); + if (sliceEndpointIdsBuilder_ == null) { + ensureSliceEndpointIdsIsMutable(); + sliceEndpointIds_.add(m); + } else { + sliceEndpointIdsBuilder_.addMessage(m); + } + break; + } + // case 26 + case 34: + { + context.ContextOuterClass.Constraint m = input.readMessage(context.ContextOuterClass.Constraint.parser(), extensionRegistry); + if (sliceConstraintsBuilder_ == null) { + ensureSliceConstraintsIsMutable(); + sliceConstraints_.add(m); + } else { + sliceConstraintsBuilder_.addMessage(m); + } + break; + } + // case 34 + case 42: + { + context.ContextOuterClass.ServiceId m = input.readMessage(context.ContextOuterClass.ServiceId.parser(), extensionRegistry); + if (sliceServiceIdsBuilder_ == null) { + ensureSliceServiceIdsIsMutable(); + sliceServiceIds_.add(m); + } else { + sliceServiceIdsBuilder_.addMessage(m); + } + break; + } + // case 42 + case 50: + { + context.ContextOuterClass.SliceId m = input.readMessage(context.ContextOuterClass.SliceId.parser(), extensionRegistry); + if (sliceSubsliceIdsBuilder_ == null) { + ensureSliceSubsliceIdsIsMutable(); + sliceSubsliceIds_.add(m); + } else { + sliceSubsliceIdsBuilder_.addMessage(m); + } + break; + } + // case 50 + case 58: + { + input.readMessage(getSliceStatusFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000040; + break; + } + // case 58 + case 66: + { + input.readMessage(getSliceConfigFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000080; + break; + } + // case 66 + case 74: + { + input.readMessage(getSliceOwnerFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000100; + break; + } + // case 74 + case 82: + { + input.readMessage(getTimestampFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000200; + break; + } + // case 82 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private context.ContextOuterClass.SliceId sliceId_; + + private com.google.protobuf.SingleFieldBuilderV3 sliceIdBuilder_; + + /** + * .context.SliceId slice_id = 1; + * @return Whether the sliceId field is set. + */ + public boolean hasSliceId() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * .context.SliceId slice_id = 1; + * @return The sliceId. + */ + public context.ContextOuterClass.SliceId getSliceId() { + if (sliceIdBuilder_ == null) { + return sliceId_ == null ? context.ContextOuterClass.SliceId.getDefaultInstance() : sliceId_; + } else { + return sliceIdBuilder_.getMessage(); + } + } + + /** + * .context.SliceId slice_id = 1; + */ + public Builder setSliceId(context.ContextOuterClass.SliceId value) { + if (sliceIdBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + sliceId_ = value; + } else { + sliceIdBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.SliceId slice_id = 1; + */ + public Builder setSliceId(context.ContextOuterClass.SliceId.Builder builderForValue) { + if (sliceIdBuilder_ == null) { + sliceId_ = builderForValue.build(); + } else { + sliceIdBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.SliceId slice_id = 1; + */ + public Builder mergeSliceId(context.ContextOuterClass.SliceId value) { + if (sliceIdBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && sliceId_ != null && sliceId_ != context.ContextOuterClass.SliceId.getDefaultInstance()) { + getSliceIdBuilder().mergeFrom(value); + } else { + sliceId_ = value; + } + } else { + sliceIdBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.SliceId slice_id = 1; + */ + public Builder clearSliceId() { + bitField0_ = (bitField0_ & ~0x00000001); + sliceId_ = null; + if (sliceIdBuilder_ != null) { + sliceIdBuilder_.dispose(); + sliceIdBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.SliceId slice_id = 1; + */ + public context.ContextOuterClass.SliceId.Builder getSliceIdBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getSliceIdFieldBuilder().getBuilder(); + } + + /** + * .context.SliceId slice_id = 1; + */ + public context.ContextOuterClass.SliceIdOrBuilder getSliceIdOrBuilder() { + if (sliceIdBuilder_ != null) { + return sliceIdBuilder_.getMessageOrBuilder(); + } else { + return sliceId_ == null ? context.ContextOuterClass.SliceId.getDefaultInstance() : sliceId_; + } + } + + /** + * .context.SliceId slice_id = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3 getSliceIdFieldBuilder() { + if (sliceIdBuilder_ == null) { + sliceIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getSliceId(), getParentForChildren(), isClean()); + sliceId_ = null; + } + return sliceIdBuilder_; + } + + private java.lang.Object name_ = ""; + + /** + * string name = 2; + * @return The name. + */ + public java.lang.String getName() { + java.lang.Object ref = name_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + name_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * string name = 2; + * @return The bytes for name. + */ + public com.google.protobuf.ByteString getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * string name = 2; + * @param value The name to set. + * @return This builder for chaining. + */ + public Builder setName(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + name_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * string name = 2; + * @return This builder for chaining. + */ + public Builder clearName() { + name_ = getDefaultInstance().getName(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * string name = 2; + * @param value The bytes for name to set. + * @return This builder for chaining. + */ + public Builder setNameBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + name_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private java.util.List sliceEndpointIds_ = java.util.Collections.emptyList(); + + private void ensureSliceEndpointIdsIsMutable() { + if (!((bitField0_ & 0x00000004) != 0)) { + sliceEndpointIds_ = new java.util.ArrayList(sliceEndpointIds_); + bitField0_ |= 0x00000004; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3 sliceEndpointIdsBuilder_; + + /** + * repeated .context.EndPointId slice_endpoint_ids = 3; + */ + public java.util.List getSliceEndpointIdsList() { + if (sliceEndpointIdsBuilder_ == null) { + return java.util.Collections.unmodifiableList(sliceEndpointIds_); + } else { + return sliceEndpointIdsBuilder_.getMessageList(); + } + } + + /** + * repeated .context.EndPointId slice_endpoint_ids = 3; + */ + public int getSliceEndpointIdsCount() { + if (sliceEndpointIdsBuilder_ == null) { + return sliceEndpointIds_.size(); + } else { + return sliceEndpointIdsBuilder_.getCount(); + } + } + + /** + * repeated .context.EndPointId slice_endpoint_ids = 3; + */ + public context.ContextOuterClass.EndPointId getSliceEndpointIds(int index) { + if (sliceEndpointIdsBuilder_ == null) { + return sliceEndpointIds_.get(index); + } else { + return sliceEndpointIdsBuilder_.getMessage(index); + } + } + + /** + * repeated .context.EndPointId slice_endpoint_ids = 3; + */ + public Builder setSliceEndpointIds(int index, context.ContextOuterClass.EndPointId value) { + if (sliceEndpointIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureSliceEndpointIdsIsMutable(); + sliceEndpointIds_.set(index, value); + onChanged(); + } else { + sliceEndpointIdsBuilder_.setMessage(index, value); + } + return this; + } + + /** + * repeated .context.EndPointId slice_endpoint_ids = 3; + */ + public Builder setSliceEndpointIds(int index, context.ContextOuterClass.EndPointId.Builder builderForValue) { + if (sliceEndpointIdsBuilder_ == null) { + ensureSliceEndpointIdsIsMutable(); + sliceEndpointIds_.set(index, builderForValue.build()); + onChanged(); + } else { + sliceEndpointIdsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.EndPointId slice_endpoint_ids = 3; + */ + public Builder addSliceEndpointIds(context.ContextOuterClass.EndPointId value) { + if (sliceEndpointIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureSliceEndpointIdsIsMutable(); + sliceEndpointIds_.add(value); + onChanged(); + } else { + sliceEndpointIdsBuilder_.addMessage(value); + } + return this; + } + + /** + * repeated .context.EndPointId slice_endpoint_ids = 3; + */ + public Builder addSliceEndpointIds(int index, context.ContextOuterClass.EndPointId value) { + if (sliceEndpointIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureSliceEndpointIdsIsMutable(); + sliceEndpointIds_.add(index, value); + onChanged(); + } else { + sliceEndpointIdsBuilder_.addMessage(index, value); + } + return this; + } + + /** + * repeated .context.EndPointId slice_endpoint_ids = 3; + */ + public Builder addSliceEndpointIds(context.ContextOuterClass.EndPointId.Builder builderForValue) { + if (sliceEndpointIdsBuilder_ == null) { + ensureSliceEndpointIdsIsMutable(); + sliceEndpointIds_.add(builderForValue.build()); + onChanged(); + } else { + sliceEndpointIdsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * repeated .context.EndPointId slice_endpoint_ids = 3; + */ + public Builder addSliceEndpointIds(int index, context.ContextOuterClass.EndPointId.Builder builderForValue) { + if (sliceEndpointIdsBuilder_ == null) { + ensureSliceEndpointIdsIsMutable(); + sliceEndpointIds_.add(index, builderForValue.build()); + onChanged(); + } else { + sliceEndpointIdsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.EndPointId slice_endpoint_ids = 3; + */ + public Builder addAllSliceEndpointIds(java.lang.Iterable values) { + if (sliceEndpointIdsBuilder_ == null) { + ensureSliceEndpointIdsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, sliceEndpointIds_); + onChanged(); + } else { + sliceEndpointIdsBuilder_.addAllMessages(values); + } + return this; + } + + /** + * repeated .context.EndPointId slice_endpoint_ids = 3; + */ + public Builder clearSliceEndpointIds() { + if (sliceEndpointIdsBuilder_ == null) { + sliceEndpointIds_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + } else { + sliceEndpointIdsBuilder_.clear(); + } + return this; + } + + /** + * repeated .context.EndPointId slice_endpoint_ids = 3; + */ + public Builder removeSliceEndpointIds(int index) { + if (sliceEndpointIdsBuilder_ == null) { + ensureSliceEndpointIdsIsMutable(); + sliceEndpointIds_.remove(index); + onChanged(); + } else { + sliceEndpointIdsBuilder_.remove(index); + } + return this; + } + + /** + * repeated .context.EndPointId slice_endpoint_ids = 3; + */ + public context.ContextOuterClass.EndPointId.Builder getSliceEndpointIdsBuilder(int index) { + return getSliceEndpointIdsFieldBuilder().getBuilder(index); + } + + /** + * repeated .context.EndPointId slice_endpoint_ids = 3; + */ + public context.ContextOuterClass.EndPointIdOrBuilder getSliceEndpointIdsOrBuilder(int index) { + if (sliceEndpointIdsBuilder_ == null) { + return sliceEndpointIds_.get(index); + } else { + return sliceEndpointIdsBuilder_.getMessageOrBuilder(index); + } + } + + /** + * repeated .context.EndPointId slice_endpoint_ids = 3; + */ + public java.util.List getSliceEndpointIdsOrBuilderList() { + if (sliceEndpointIdsBuilder_ != null) { + return sliceEndpointIdsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(sliceEndpointIds_); + } + } + + /** + * repeated .context.EndPointId slice_endpoint_ids = 3; + */ + public context.ContextOuterClass.EndPointId.Builder addSliceEndpointIdsBuilder() { + return getSliceEndpointIdsFieldBuilder().addBuilder(context.ContextOuterClass.EndPointId.getDefaultInstance()); + } + + /** + * repeated .context.EndPointId slice_endpoint_ids = 3; + */ + public context.ContextOuterClass.EndPointId.Builder addSliceEndpointIdsBuilder(int index) { + return getSliceEndpointIdsFieldBuilder().addBuilder(index, context.ContextOuterClass.EndPointId.getDefaultInstance()); + } + + /** + * repeated .context.EndPointId slice_endpoint_ids = 3; + */ + public java.util.List getSliceEndpointIdsBuilderList() { + return getSliceEndpointIdsFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3 getSliceEndpointIdsFieldBuilder() { + if (sliceEndpointIdsBuilder_ == null) { + sliceEndpointIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3(sliceEndpointIds_, ((bitField0_ & 0x00000004) != 0), getParentForChildren(), isClean()); + sliceEndpointIds_ = null; + } + return sliceEndpointIdsBuilder_; + } + + private java.util.List sliceConstraints_ = java.util.Collections.emptyList(); + + private void ensureSliceConstraintsIsMutable() { + if (!((bitField0_ & 0x00000008) != 0)) { + sliceConstraints_ = new java.util.ArrayList(sliceConstraints_); + bitField0_ |= 0x00000008; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3 sliceConstraintsBuilder_; + + /** + * repeated .context.Constraint slice_constraints = 4; + */ + public java.util.List getSliceConstraintsList() { + if (sliceConstraintsBuilder_ == null) { + return java.util.Collections.unmodifiableList(sliceConstraints_); + } else { + return sliceConstraintsBuilder_.getMessageList(); + } + } + + /** + * repeated .context.Constraint slice_constraints = 4; + */ + public int getSliceConstraintsCount() { + if (sliceConstraintsBuilder_ == null) { + return sliceConstraints_.size(); + } else { + return sliceConstraintsBuilder_.getCount(); + } + } + + /** + * repeated .context.Constraint slice_constraints = 4; + */ + public context.ContextOuterClass.Constraint getSliceConstraints(int index) { + if (sliceConstraintsBuilder_ == null) { + return sliceConstraints_.get(index); + } else { + return sliceConstraintsBuilder_.getMessage(index); + } + } + + /** + * repeated .context.Constraint slice_constraints = 4; + */ + public Builder setSliceConstraints(int index, context.ContextOuterClass.Constraint value) { + if (sliceConstraintsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureSliceConstraintsIsMutable(); + sliceConstraints_.set(index, value); + onChanged(); + } else { + sliceConstraintsBuilder_.setMessage(index, value); + } + return this; + } + + /** + * repeated .context.Constraint slice_constraints = 4; + */ + public Builder setSliceConstraints(int index, context.ContextOuterClass.Constraint.Builder builderForValue) { + if (sliceConstraintsBuilder_ == null) { + ensureSliceConstraintsIsMutable(); + sliceConstraints_.set(index, builderForValue.build()); + onChanged(); + } else { + sliceConstraintsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.Constraint slice_constraints = 4; + */ + public Builder addSliceConstraints(context.ContextOuterClass.Constraint value) { + if (sliceConstraintsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureSliceConstraintsIsMutable(); + sliceConstraints_.add(value); + onChanged(); + } else { + sliceConstraintsBuilder_.addMessage(value); + } + return this; + } + + /** + * repeated .context.Constraint slice_constraints = 4; + */ + public Builder addSliceConstraints(int index, context.ContextOuterClass.Constraint value) { + if (sliceConstraintsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureSliceConstraintsIsMutable(); + sliceConstraints_.add(index, value); + onChanged(); + } else { + sliceConstraintsBuilder_.addMessage(index, value); + } + return this; + } + + /** + * repeated .context.Constraint slice_constraints = 4; + */ + public Builder addSliceConstraints(context.ContextOuterClass.Constraint.Builder builderForValue) { + if (sliceConstraintsBuilder_ == null) { + ensureSliceConstraintsIsMutable(); + sliceConstraints_.add(builderForValue.build()); + onChanged(); + } else { + sliceConstraintsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * repeated .context.Constraint slice_constraints = 4; + */ + public Builder addSliceConstraints(int index, context.ContextOuterClass.Constraint.Builder builderForValue) { + if (sliceConstraintsBuilder_ == null) { + ensureSliceConstraintsIsMutable(); + sliceConstraints_.add(index, builderForValue.build()); + onChanged(); + } else { + sliceConstraintsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.Constraint slice_constraints = 4; + */ + public Builder addAllSliceConstraints(java.lang.Iterable values) { + if (sliceConstraintsBuilder_ == null) { + ensureSliceConstraintsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, sliceConstraints_); + onChanged(); + } else { + sliceConstraintsBuilder_.addAllMessages(values); + } + return this; + } + + /** + * repeated .context.Constraint slice_constraints = 4; + */ + public Builder clearSliceConstraints() { + if (sliceConstraintsBuilder_ == null) { + sliceConstraints_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000008); + onChanged(); + } else { + sliceConstraintsBuilder_.clear(); + } + return this; + } + + /** + * repeated .context.Constraint slice_constraints = 4; + */ + public Builder removeSliceConstraints(int index) { + if (sliceConstraintsBuilder_ == null) { + ensureSliceConstraintsIsMutable(); + sliceConstraints_.remove(index); + onChanged(); + } else { + sliceConstraintsBuilder_.remove(index); + } + return this; + } + + /** + * repeated .context.Constraint slice_constraints = 4; + */ + public context.ContextOuterClass.Constraint.Builder getSliceConstraintsBuilder(int index) { + return getSliceConstraintsFieldBuilder().getBuilder(index); + } + + /** + * repeated .context.Constraint slice_constraints = 4; + */ + public context.ContextOuterClass.ConstraintOrBuilder getSliceConstraintsOrBuilder(int index) { + if (sliceConstraintsBuilder_ == null) { + return sliceConstraints_.get(index); + } else { + return sliceConstraintsBuilder_.getMessageOrBuilder(index); + } + } + + /** + * repeated .context.Constraint slice_constraints = 4; + */ + public java.util.List getSliceConstraintsOrBuilderList() { + if (sliceConstraintsBuilder_ != null) { + return sliceConstraintsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(sliceConstraints_); + } + } + + /** + * repeated .context.Constraint slice_constraints = 4; + */ + public context.ContextOuterClass.Constraint.Builder addSliceConstraintsBuilder() { + return getSliceConstraintsFieldBuilder().addBuilder(context.ContextOuterClass.Constraint.getDefaultInstance()); + } + + /** + * repeated .context.Constraint slice_constraints = 4; + */ + public context.ContextOuterClass.Constraint.Builder addSliceConstraintsBuilder(int index) { + return getSliceConstraintsFieldBuilder().addBuilder(index, context.ContextOuterClass.Constraint.getDefaultInstance()); + } + + /** + * repeated .context.Constraint slice_constraints = 4; + */ + public java.util.List getSliceConstraintsBuilderList() { + return getSliceConstraintsFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3 getSliceConstraintsFieldBuilder() { + if (sliceConstraintsBuilder_ == null) { + sliceConstraintsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3(sliceConstraints_, ((bitField0_ & 0x00000008) != 0), getParentForChildren(), isClean()); + sliceConstraints_ = null; + } + return sliceConstraintsBuilder_; + } + + private java.util.List sliceServiceIds_ = java.util.Collections.emptyList(); + + private void ensureSliceServiceIdsIsMutable() { + if (!((bitField0_ & 0x00000010) != 0)) { + sliceServiceIds_ = new java.util.ArrayList(sliceServiceIds_); + bitField0_ |= 0x00000010; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3 sliceServiceIdsBuilder_; + + /** + * repeated .context.ServiceId slice_service_ids = 5; + */ + public java.util.List getSliceServiceIdsList() { + if (sliceServiceIdsBuilder_ == null) { + return java.util.Collections.unmodifiableList(sliceServiceIds_); + } else { + return sliceServiceIdsBuilder_.getMessageList(); + } + } + + /** + * repeated .context.ServiceId slice_service_ids = 5; + */ + public int getSliceServiceIdsCount() { + if (sliceServiceIdsBuilder_ == null) { + return sliceServiceIds_.size(); + } else { + return sliceServiceIdsBuilder_.getCount(); + } + } + + /** + * repeated .context.ServiceId slice_service_ids = 5; + */ + public context.ContextOuterClass.ServiceId getSliceServiceIds(int index) { + if (sliceServiceIdsBuilder_ == null) { + return sliceServiceIds_.get(index); + } else { + return sliceServiceIdsBuilder_.getMessage(index); + } + } + + /** + * repeated .context.ServiceId slice_service_ids = 5; + */ + public Builder setSliceServiceIds(int index, context.ContextOuterClass.ServiceId value) { + if (sliceServiceIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureSliceServiceIdsIsMutable(); + sliceServiceIds_.set(index, value); + onChanged(); + } else { + sliceServiceIdsBuilder_.setMessage(index, value); + } + return this; + } + + /** + * repeated .context.ServiceId slice_service_ids = 5; + */ + public Builder setSliceServiceIds(int index, context.ContextOuterClass.ServiceId.Builder builderForValue) { + if (sliceServiceIdsBuilder_ == null) { + ensureSliceServiceIdsIsMutable(); + sliceServiceIds_.set(index, builderForValue.build()); + onChanged(); + } else { + sliceServiceIdsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.ServiceId slice_service_ids = 5; + */ + public Builder addSliceServiceIds(context.ContextOuterClass.ServiceId value) { + if (sliceServiceIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureSliceServiceIdsIsMutable(); + sliceServiceIds_.add(value); + onChanged(); + } else { + sliceServiceIdsBuilder_.addMessage(value); + } + return this; + } + + /** + * repeated .context.ServiceId slice_service_ids = 5; + */ + public Builder addSliceServiceIds(int index, context.ContextOuterClass.ServiceId value) { + if (sliceServiceIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureSliceServiceIdsIsMutable(); + sliceServiceIds_.add(index, value); + onChanged(); + } else { + sliceServiceIdsBuilder_.addMessage(index, value); + } + return this; + } + + /** + * repeated .context.ServiceId slice_service_ids = 5; + */ + public Builder addSliceServiceIds(context.ContextOuterClass.ServiceId.Builder builderForValue) { + if (sliceServiceIdsBuilder_ == null) { + ensureSliceServiceIdsIsMutable(); + sliceServiceIds_.add(builderForValue.build()); + onChanged(); + } else { + sliceServiceIdsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * repeated .context.ServiceId slice_service_ids = 5; + */ + public Builder addSliceServiceIds(int index, context.ContextOuterClass.ServiceId.Builder builderForValue) { + if (sliceServiceIdsBuilder_ == null) { + ensureSliceServiceIdsIsMutable(); + sliceServiceIds_.add(index, builderForValue.build()); + onChanged(); + } else { + sliceServiceIdsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.ServiceId slice_service_ids = 5; + */ + public Builder addAllSliceServiceIds(java.lang.Iterable values) { + if (sliceServiceIdsBuilder_ == null) { + ensureSliceServiceIdsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, sliceServiceIds_); + onChanged(); + } else { + sliceServiceIdsBuilder_.addAllMessages(values); + } + return this; + } + + /** + * repeated .context.ServiceId slice_service_ids = 5; + */ + public Builder clearSliceServiceIds() { + if (sliceServiceIdsBuilder_ == null) { + sliceServiceIds_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000010); + onChanged(); + } else { + sliceServiceIdsBuilder_.clear(); + } + return this; + } + + /** + * repeated .context.ServiceId slice_service_ids = 5; + */ + public Builder removeSliceServiceIds(int index) { + if (sliceServiceIdsBuilder_ == null) { + ensureSliceServiceIdsIsMutable(); + sliceServiceIds_.remove(index); + onChanged(); + } else { + sliceServiceIdsBuilder_.remove(index); + } + return this; + } + + /** + * repeated .context.ServiceId slice_service_ids = 5; + */ + public context.ContextOuterClass.ServiceId.Builder getSliceServiceIdsBuilder(int index) { + return getSliceServiceIdsFieldBuilder().getBuilder(index); + } + + /** + * repeated .context.ServiceId slice_service_ids = 5; + */ + public context.ContextOuterClass.ServiceIdOrBuilder getSliceServiceIdsOrBuilder(int index) { + if (sliceServiceIdsBuilder_ == null) { + return sliceServiceIds_.get(index); + } else { + return sliceServiceIdsBuilder_.getMessageOrBuilder(index); + } + } + + /** + * repeated .context.ServiceId slice_service_ids = 5; + */ + public java.util.List getSliceServiceIdsOrBuilderList() { + if (sliceServiceIdsBuilder_ != null) { + return sliceServiceIdsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(sliceServiceIds_); + } + } + + /** + * repeated .context.ServiceId slice_service_ids = 5; + */ + public context.ContextOuterClass.ServiceId.Builder addSliceServiceIdsBuilder() { + return getSliceServiceIdsFieldBuilder().addBuilder(context.ContextOuterClass.ServiceId.getDefaultInstance()); + } + + /** + * repeated .context.ServiceId slice_service_ids = 5; + */ + public context.ContextOuterClass.ServiceId.Builder addSliceServiceIdsBuilder(int index) { + return getSliceServiceIdsFieldBuilder().addBuilder(index, context.ContextOuterClass.ServiceId.getDefaultInstance()); + } + + /** + * repeated .context.ServiceId slice_service_ids = 5; + */ + public java.util.List getSliceServiceIdsBuilderList() { + return getSliceServiceIdsFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3 getSliceServiceIdsFieldBuilder() { + if (sliceServiceIdsBuilder_ == null) { + sliceServiceIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3(sliceServiceIds_, ((bitField0_ & 0x00000010) != 0), getParentForChildren(), isClean()); + sliceServiceIds_ = null; + } + return sliceServiceIdsBuilder_; + } + + private java.util.List sliceSubsliceIds_ = java.util.Collections.emptyList(); + + private void ensureSliceSubsliceIdsIsMutable() { + if (!((bitField0_ & 0x00000020) != 0)) { + sliceSubsliceIds_ = new java.util.ArrayList(sliceSubsliceIds_); + bitField0_ |= 0x00000020; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3 sliceSubsliceIdsBuilder_; + + /** + * repeated .context.SliceId slice_subslice_ids = 6; + */ + public java.util.List getSliceSubsliceIdsList() { + if (sliceSubsliceIdsBuilder_ == null) { + return java.util.Collections.unmodifiableList(sliceSubsliceIds_); + } else { + return sliceSubsliceIdsBuilder_.getMessageList(); + } + } + + /** + * repeated .context.SliceId slice_subslice_ids = 6; + */ + public int getSliceSubsliceIdsCount() { + if (sliceSubsliceIdsBuilder_ == null) { + return sliceSubsliceIds_.size(); + } else { + return sliceSubsliceIdsBuilder_.getCount(); + } + } + + /** + * repeated .context.SliceId slice_subslice_ids = 6; + */ + public context.ContextOuterClass.SliceId getSliceSubsliceIds(int index) { + if (sliceSubsliceIdsBuilder_ == null) { + return sliceSubsliceIds_.get(index); + } else { + return sliceSubsliceIdsBuilder_.getMessage(index); + } + } + + /** + * repeated .context.SliceId slice_subslice_ids = 6; + */ + public Builder setSliceSubsliceIds(int index, context.ContextOuterClass.SliceId value) { + if (sliceSubsliceIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureSliceSubsliceIdsIsMutable(); + sliceSubsliceIds_.set(index, value); + onChanged(); + } else { + sliceSubsliceIdsBuilder_.setMessage(index, value); + } + return this; + } + + /** + * repeated .context.SliceId slice_subslice_ids = 6; + */ + public Builder setSliceSubsliceIds(int index, context.ContextOuterClass.SliceId.Builder builderForValue) { + if (sliceSubsliceIdsBuilder_ == null) { + ensureSliceSubsliceIdsIsMutable(); + sliceSubsliceIds_.set(index, builderForValue.build()); + onChanged(); + } else { + sliceSubsliceIdsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.SliceId slice_subslice_ids = 6; + */ + public Builder addSliceSubsliceIds(context.ContextOuterClass.SliceId value) { + if (sliceSubsliceIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureSliceSubsliceIdsIsMutable(); + sliceSubsliceIds_.add(value); + onChanged(); + } else { + sliceSubsliceIdsBuilder_.addMessage(value); + } + return this; + } + + /** + * repeated .context.SliceId slice_subslice_ids = 6; + */ + public Builder addSliceSubsliceIds(int index, context.ContextOuterClass.SliceId value) { + if (sliceSubsliceIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureSliceSubsliceIdsIsMutable(); + sliceSubsliceIds_.add(index, value); + onChanged(); + } else { + sliceSubsliceIdsBuilder_.addMessage(index, value); + } + return this; + } + + /** + * repeated .context.SliceId slice_subslice_ids = 6; + */ + public Builder addSliceSubsliceIds(context.ContextOuterClass.SliceId.Builder builderForValue) { + if (sliceSubsliceIdsBuilder_ == null) { + ensureSliceSubsliceIdsIsMutable(); + sliceSubsliceIds_.add(builderForValue.build()); + onChanged(); + } else { + sliceSubsliceIdsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * repeated .context.SliceId slice_subslice_ids = 6; + */ + public Builder addSliceSubsliceIds(int index, context.ContextOuterClass.SliceId.Builder builderForValue) { + if (sliceSubsliceIdsBuilder_ == null) { + ensureSliceSubsliceIdsIsMutable(); + sliceSubsliceIds_.add(index, builderForValue.build()); + onChanged(); + } else { + sliceSubsliceIdsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.SliceId slice_subslice_ids = 6; + */ + public Builder addAllSliceSubsliceIds(java.lang.Iterable values) { + if (sliceSubsliceIdsBuilder_ == null) { + ensureSliceSubsliceIdsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, sliceSubsliceIds_); + onChanged(); + } else { + sliceSubsliceIdsBuilder_.addAllMessages(values); + } + return this; + } + + /** + * repeated .context.SliceId slice_subslice_ids = 6; + */ + public Builder clearSliceSubsliceIds() { + if (sliceSubsliceIdsBuilder_ == null) { + sliceSubsliceIds_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000020); + onChanged(); + } else { + sliceSubsliceIdsBuilder_.clear(); + } + return this; + } + + /** + * repeated .context.SliceId slice_subslice_ids = 6; + */ + public Builder removeSliceSubsliceIds(int index) { + if (sliceSubsliceIdsBuilder_ == null) { + ensureSliceSubsliceIdsIsMutable(); + sliceSubsliceIds_.remove(index); + onChanged(); + } else { + sliceSubsliceIdsBuilder_.remove(index); + } + return this; + } + + /** + * repeated .context.SliceId slice_subslice_ids = 6; + */ + public context.ContextOuterClass.SliceId.Builder getSliceSubsliceIdsBuilder(int index) { + return getSliceSubsliceIdsFieldBuilder().getBuilder(index); + } + + /** + * repeated .context.SliceId slice_subslice_ids = 6; + */ + public context.ContextOuterClass.SliceIdOrBuilder getSliceSubsliceIdsOrBuilder(int index) { + if (sliceSubsliceIdsBuilder_ == null) { + return sliceSubsliceIds_.get(index); + } else { + return sliceSubsliceIdsBuilder_.getMessageOrBuilder(index); + } + } + + /** + * repeated .context.SliceId slice_subslice_ids = 6; + */ + public java.util.List getSliceSubsliceIdsOrBuilderList() { + if (sliceSubsliceIdsBuilder_ != null) { + return sliceSubsliceIdsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(sliceSubsliceIds_); + } + } + + /** + * repeated .context.SliceId slice_subslice_ids = 6; + */ + public context.ContextOuterClass.SliceId.Builder addSliceSubsliceIdsBuilder() { + return getSliceSubsliceIdsFieldBuilder().addBuilder(context.ContextOuterClass.SliceId.getDefaultInstance()); + } + + /** + * repeated .context.SliceId slice_subslice_ids = 6; + */ + public context.ContextOuterClass.SliceId.Builder addSliceSubsliceIdsBuilder(int index) { + return getSliceSubsliceIdsFieldBuilder().addBuilder(index, context.ContextOuterClass.SliceId.getDefaultInstance()); + } + + /** + * repeated .context.SliceId slice_subslice_ids = 6; + */ + public java.util.List getSliceSubsliceIdsBuilderList() { + return getSliceSubsliceIdsFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3 getSliceSubsliceIdsFieldBuilder() { + if (sliceSubsliceIdsBuilder_ == null) { + sliceSubsliceIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3(sliceSubsliceIds_, ((bitField0_ & 0x00000020) != 0), getParentForChildren(), isClean()); + sliceSubsliceIds_ = null; + } + return sliceSubsliceIdsBuilder_; + } + + private context.ContextOuterClass.SliceStatus sliceStatus_; + + private com.google.protobuf.SingleFieldBuilderV3 sliceStatusBuilder_; + + /** + * .context.SliceStatus slice_status = 7; + * @return Whether the sliceStatus field is set. + */ + public boolean hasSliceStatus() { + return ((bitField0_ & 0x00000040) != 0); + } + + /** + * .context.SliceStatus slice_status = 7; + * @return The sliceStatus. + */ + public context.ContextOuterClass.SliceStatus getSliceStatus() { + if (sliceStatusBuilder_ == null) { + return sliceStatus_ == null ? context.ContextOuterClass.SliceStatus.getDefaultInstance() : sliceStatus_; + } else { + return sliceStatusBuilder_.getMessage(); + } + } + + /** + * .context.SliceStatus slice_status = 7; + */ + public Builder setSliceStatus(context.ContextOuterClass.SliceStatus value) { + if (sliceStatusBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + sliceStatus_ = value; + } else { + sliceStatusBuilder_.setMessage(value); + } + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + + /** + * .context.SliceStatus slice_status = 7; + */ + public Builder setSliceStatus(context.ContextOuterClass.SliceStatus.Builder builderForValue) { + if (sliceStatusBuilder_ == null) { + sliceStatus_ = builderForValue.build(); + } else { + sliceStatusBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + + /** + * .context.SliceStatus slice_status = 7; + */ + public Builder mergeSliceStatus(context.ContextOuterClass.SliceStatus value) { + if (sliceStatusBuilder_ == null) { + if (((bitField0_ & 0x00000040) != 0) && sliceStatus_ != null && sliceStatus_ != context.ContextOuterClass.SliceStatus.getDefaultInstance()) { + getSliceStatusBuilder().mergeFrom(value); + } else { + sliceStatus_ = value; + } + } else { + sliceStatusBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + + /** + * .context.SliceStatus slice_status = 7; + */ + public Builder clearSliceStatus() { + bitField0_ = (bitField0_ & ~0x00000040); + sliceStatus_ = null; + if (sliceStatusBuilder_ != null) { + sliceStatusBuilder_.dispose(); + sliceStatusBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.SliceStatus slice_status = 7; + */ + public context.ContextOuterClass.SliceStatus.Builder getSliceStatusBuilder() { + bitField0_ |= 0x00000040; + onChanged(); + return getSliceStatusFieldBuilder().getBuilder(); + } + + /** + * .context.SliceStatus slice_status = 7; + */ + public context.ContextOuterClass.SliceStatusOrBuilder getSliceStatusOrBuilder() { + if (sliceStatusBuilder_ != null) { + return sliceStatusBuilder_.getMessageOrBuilder(); + } else { + return sliceStatus_ == null ? context.ContextOuterClass.SliceStatus.getDefaultInstance() : sliceStatus_; + } + } + + /** + * .context.SliceStatus slice_status = 7; + */ + private com.google.protobuf.SingleFieldBuilderV3 getSliceStatusFieldBuilder() { + if (sliceStatusBuilder_ == null) { + sliceStatusBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getSliceStatus(), getParentForChildren(), isClean()); + sliceStatus_ = null; + } + return sliceStatusBuilder_; + } + + private context.ContextOuterClass.SliceConfig sliceConfig_; + + private com.google.protobuf.SingleFieldBuilderV3 sliceConfigBuilder_; + + /** + * .context.SliceConfig slice_config = 8; + * @return Whether the sliceConfig field is set. + */ + public boolean hasSliceConfig() { + return ((bitField0_ & 0x00000080) != 0); + } + + /** + * .context.SliceConfig slice_config = 8; + * @return The sliceConfig. + */ + public context.ContextOuterClass.SliceConfig getSliceConfig() { + if (sliceConfigBuilder_ == null) { + return sliceConfig_ == null ? context.ContextOuterClass.SliceConfig.getDefaultInstance() : sliceConfig_; + } else { + return sliceConfigBuilder_.getMessage(); + } + } + + /** + * .context.SliceConfig slice_config = 8; + */ + public Builder setSliceConfig(context.ContextOuterClass.SliceConfig value) { + if (sliceConfigBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + sliceConfig_ = value; + } else { + sliceConfigBuilder_.setMessage(value); + } + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + + /** + * .context.SliceConfig slice_config = 8; + */ + public Builder setSliceConfig(context.ContextOuterClass.SliceConfig.Builder builderForValue) { + if (sliceConfigBuilder_ == null) { + sliceConfig_ = builderForValue.build(); + } else { + sliceConfigBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + + /** + * .context.SliceConfig slice_config = 8; + */ + public Builder mergeSliceConfig(context.ContextOuterClass.SliceConfig value) { + if (sliceConfigBuilder_ == null) { + if (((bitField0_ & 0x00000080) != 0) && sliceConfig_ != null && sliceConfig_ != context.ContextOuterClass.SliceConfig.getDefaultInstance()) { + getSliceConfigBuilder().mergeFrom(value); + } else { + sliceConfig_ = value; + } + } else { + sliceConfigBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + + /** + * .context.SliceConfig slice_config = 8; + */ + public Builder clearSliceConfig() { + bitField0_ = (bitField0_ & ~0x00000080); + sliceConfig_ = null; + if (sliceConfigBuilder_ != null) { + sliceConfigBuilder_.dispose(); + sliceConfigBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.SliceConfig slice_config = 8; + */ + public context.ContextOuterClass.SliceConfig.Builder getSliceConfigBuilder() { + bitField0_ |= 0x00000080; + onChanged(); + return getSliceConfigFieldBuilder().getBuilder(); + } + + /** + * .context.SliceConfig slice_config = 8; + */ + public context.ContextOuterClass.SliceConfigOrBuilder getSliceConfigOrBuilder() { + if (sliceConfigBuilder_ != null) { + return sliceConfigBuilder_.getMessageOrBuilder(); + } else { + return sliceConfig_ == null ? context.ContextOuterClass.SliceConfig.getDefaultInstance() : sliceConfig_; + } + } + + /** + * .context.SliceConfig slice_config = 8; + */ + private com.google.protobuf.SingleFieldBuilderV3 getSliceConfigFieldBuilder() { + if (sliceConfigBuilder_ == null) { + sliceConfigBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getSliceConfig(), getParentForChildren(), isClean()); + sliceConfig_ = null; + } + return sliceConfigBuilder_; + } + + private context.ContextOuterClass.SliceOwner sliceOwner_; + + private com.google.protobuf.SingleFieldBuilderV3 sliceOwnerBuilder_; + + /** + * .context.SliceOwner slice_owner = 9; + * @return Whether the sliceOwner field is set. + */ + public boolean hasSliceOwner() { + return ((bitField0_ & 0x00000100) != 0); + } + + /** + * .context.SliceOwner slice_owner = 9; + * @return The sliceOwner. + */ + public context.ContextOuterClass.SliceOwner getSliceOwner() { + if (sliceOwnerBuilder_ == null) { + return sliceOwner_ == null ? context.ContextOuterClass.SliceOwner.getDefaultInstance() : sliceOwner_; + } else { + return sliceOwnerBuilder_.getMessage(); + } + } + + /** + * .context.SliceOwner slice_owner = 9; + */ + public Builder setSliceOwner(context.ContextOuterClass.SliceOwner value) { + if (sliceOwnerBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + sliceOwner_ = value; + } else { + sliceOwnerBuilder_.setMessage(value); + } + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + + /** + * .context.SliceOwner slice_owner = 9; + */ + public Builder setSliceOwner(context.ContextOuterClass.SliceOwner.Builder builderForValue) { + if (sliceOwnerBuilder_ == null) { + sliceOwner_ = builderForValue.build(); + } else { + sliceOwnerBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + + /** + * .context.SliceOwner slice_owner = 9; + */ + public Builder mergeSliceOwner(context.ContextOuterClass.SliceOwner value) { + if (sliceOwnerBuilder_ == null) { + if (((bitField0_ & 0x00000100) != 0) && sliceOwner_ != null && sliceOwner_ != context.ContextOuterClass.SliceOwner.getDefaultInstance()) { + getSliceOwnerBuilder().mergeFrom(value); + } else { + sliceOwner_ = value; + } + } else { + sliceOwnerBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + + /** + * .context.SliceOwner slice_owner = 9; + */ + public Builder clearSliceOwner() { + bitField0_ = (bitField0_ & ~0x00000100); + sliceOwner_ = null; + if (sliceOwnerBuilder_ != null) { + sliceOwnerBuilder_.dispose(); + sliceOwnerBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.SliceOwner slice_owner = 9; + */ + public context.ContextOuterClass.SliceOwner.Builder getSliceOwnerBuilder() { + bitField0_ |= 0x00000100; + onChanged(); + return getSliceOwnerFieldBuilder().getBuilder(); + } + + /** + * .context.SliceOwner slice_owner = 9; + */ + public context.ContextOuterClass.SliceOwnerOrBuilder getSliceOwnerOrBuilder() { + if (sliceOwnerBuilder_ != null) { + return sliceOwnerBuilder_.getMessageOrBuilder(); + } else { + return sliceOwner_ == null ? context.ContextOuterClass.SliceOwner.getDefaultInstance() : sliceOwner_; + } + } + + /** + * .context.SliceOwner slice_owner = 9; + */ + private com.google.protobuf.SingleFieldBuilderV3 getSliceOwnerFieldBuilder() { + if (sliceOwnerBuilder_ == null) { + sliceOwnerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getSliceOwner(), getParentForChildren(), isClean()); + sliceOwner_ = null; + } + return sliceOwnerBuilder_; + } + + private context.ContextOuterClass.Timestamp timestamp_; + + private com.google.protobuf.SingleFieldBuilderV3 timestampBuilder_; + + /** + * .context.Timestamp timestamp = 10; + * @return Whether the timestamp field is set. + */ + public boolean hasTimestamp() { + return ((bitField0_ & 0x00000200) != 0); + } + + /** + * .context.Timestamp timestamp = 10; + * @return The timestamp. + */ + public context.ContextOuterClass.Timestamp getTimestamp() { + if (timestampBuilder_ == null) { + return timestamp_ == null ? context.ContextOuterClass.Timestamp.getDefaultInstance() : timestamp_; + } else { + return timestampBuilder_.getMessage(); + } + } + + /** + * .context.Timestamp timestamp = 10; + */ + public Builder setTimestamp(context.ContextOuterClass.Timestamp value) { + if (timestampBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + timestamp_ = value; + } else { + timestampBuilder_.setMessage(value); + } + bitField0_ |= 0x00000200; + onChanged(); + return this; + } + + /** + * .context.Timestamp timestamp = 10; + */ + public Builder setTimestamp(context.ContextOuterClass.Timestamp.Builder builderForValue) { + if (timestampBuilder_ == null) { + timestamp_ = builderForValue.build(); + } else { + timestampBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000200; + onChanged(); + return this; + } + + /** + * .context.Timestamp timestamp = 10; + */ + public Builder mergeTimestamp(context.ContextOuterClass.Timestamp value) { + if (timestampBuilder_ == null) { + if (((bitField0_ & 0x00000200) != 0) && timestamp_ != null && timestamp_ != context.ContextOuterClass.Timestamp.getDefaultInstance()) { + getTimestampBuilder().mergeFrom(value); + } else { + timestamp_ = value; + } + } else { + timestampBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000200; + onChanged(); + return this; + } + + /** + * .context.Timestamp timestamp = 10; + */ + public Builder clearTimestamp() { + bitField0_ = (bitField0_ & ~0x00000200); + timestamp_ = null; + if (timestampBuilder_ != null) { + timestampBuilder_.dispose(); + timestampBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.Timestamp timestamp = 10; + */ + public context.ContextOuterClass.Timestamp.Builder getTimestampBuilder() { + bitField0_ |= 0x00000200; + onChanged(); + return getTimestampFieldBuilder().getBuilder(); + } + + /** + * .context.Timestamp timestamp = 10; + */ + public context.ContextOuterClass.TimestampOrBuilder getTimestampOrBuilder() { + if (timestampBuilder_ != null) { + return timestampBuilder_.getMessageOrBuilder(); + } else { + return timestamp_ == null ? context.ContextOuterClass.Timestamp.getDefaultInstance() : timestamp_; + } + } + + /** + * .context.Timestamp timestamp = 10; + */ + private com.google.protobuf.SingleFieldBuilderV3 getTimestampFieldBuilder() { + if (timestampBuilder_ == null) { + timestampBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getTimestamp(), getParentForChildren(), isClean()); + timestamp_ = null; + } + return timestampBuilder_; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.Slice) + } + + // @@protoc_insertion_point(class_scope:context.Slice) + private static final context.ContextOuterClass.Slice DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.Slice(); + } + + public static context.ContextOuterClass.Slice getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public Slice parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.Slice getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface SliceOwnerOrBuilder extends // @@protoc_insertion_point(interface_extends:context.SliceOwner) + com.google.protobuf.MessageOrBuilder { + + /** + * .context.Uuid owner_uuid = 1; + * @return Whether the ownerUuid field is set. + */ + boolean hasOwnerUuid(); + + /** + * .context.Uuid owner_uuid = 1; + * @return The ownerUuid. + */ + context.ContextOuterClass.Uuid getOwnerUuid(); + + /** + * .context.Uuid owner_uuid = 1; + */ + context.ContextOuterClass.UuidOrBuilder getOwnerUuidOrBuilder(); + + /** + * string owner_string = 2; + * @return The ownerString. + */ + java.lang.String getOwnerString(); + + /** + * string owner_string = 2; + * @return The bytes for ownerString. + */ + com.google.protobuf.ByteString getOwnerStringBytes(); + } + + /** + * Protobuf type {@code context.SliceOwner} + */ + public static final class SliceOwner extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.SliceOwner) + SliceOwnerOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use SliceOwner.newBuilder() to construct. + private SliceOwner(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private SliceOwner() { + ownerString_ = ""; + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new SliceOwner(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_SliceOwner_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_SliceOwner_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.SliceOwner.class, context.ContextOuterClass.SliceOwner.Builder.class); + } + + public static final int OWNER_UUID_FIELD_NUMBER = 1; + + private context.ContextOuterClass.Uuid ownerUuid_; + + /** + * .context.Uuid owner_uuid = 1; + * @return Whether the ownerUuid field is set. + */ + @java.lang.Override + public boolean hasOwnerUuid() { + return ownerUuid_ != null; + } + + /** + * .context.Uuid owner_uuid = 1; + * @return The ownerUuid. + */ + @java.lang.Override + public context.ContextOuterClass.Uuid getOwnerUuid() { + return ownerUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : ownerUuid_; + } + + /** + * .context.Uuid owner_uuid = 1; + */ + @java.lang.Override + public context.ContextOuterClass.UuidOrBuilder getOwnerUuidOrBuilder() { + return ownerUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : ownerUuid_; + } + + public static final int OWNER_STRING_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object ownerString_ = ""; + + /** + * string owner_string = 2; + * @return The ownerString. + */ + @java.lang.Override + public java.lang.String getOwnerString() { + java.lang.Object ref = ownerString_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + ownerString_ = s; + return s; + } + } + + /** + * string owner_string = 2; + * @return The bytes for ownerString. + */ + @java.lang.Override + public com.google.protobuf.ByteString getOwnerStringBytes() { + java.lang.Object ref = ownerString_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + ownerString_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (ownerUuid_ != null) { + output.writeMessage(1, getOwnerUuid()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(ownerString_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, ownerString_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + if (ownerUuid_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getOwnerUuid()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(ownerString_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, ownerString_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.SliceOwner)) { + return super.equals(obj); + } + context.ContextOuterClass.SliceOwner other = (context.ContextOuterClass.SliceOwner) obj; + if (hasOwnerUuid() != other.hasOwnerUuid()) + return false; + if (hasOwnerUuid()) { + if (!getOwnerUuid().equals(other.getOwnerUuid())) + return false; + } + if (!getOwnerString().equals(other.getOwnerString())) + return false; + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasOwnerUuid()) { + hash = (37 * hash) + OWNER_UUID_FIELD_NUMBER; + hash = (53 * hash) + getOwnerUuid().hashCode(); + } + hash = (37 * hash) + OWNER_STRING_FIELD_NUMBER; + hash = (53 * hash) + getOwnerString().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.SliceOwner parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.SliceOwner parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.SliceOwner parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.SliceOwner parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.SliceOwner parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.SliceOwner parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.SliceOwner parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.SliceOwner parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.SliceOwner parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.SliceOwner parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.SliceOwner parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.SliceOwner parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.SliceOwner prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code context.SliceOwner} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.SliceOwner) + context.ContextOuterClass.SliceOwnerOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_SliceOwner_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_SliceOwner_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.SliceOwner.class, context.ContextOuterClass.SliceOwner.Builder.class); + } + + // Construct using context.ContextOuterClass.SliceOwner.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + ownerUuid_ = null; + if (ownerUuidBuilder_ != null) { + ownerUuidBuilder_.dispose(); + ownerUuidBuilder_ = null; + } + ownerString_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_SliceOwner_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.SliceOwner getDefaultInstanceForType() { + return context.ContextOuterClass.SliceOwner.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.SliceOwner build() { + context.ContextOuterClass.SliceOwner result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.SliceOwner buildPartial() { + context.ContextOuterClass.SliceOwner result = new context.ContextOuterClass.SliceOwner(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(context.ContextOuterClass.SliceOwner result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.ownerUuid_ = ownerUuidBuilder_ == null ? ownerUuid_ : ownerUuidBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.ownerString_ = ownerString_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.SliceOwner) { + return mergeFrom((context.ContextOuterClass.SliceOwner) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.SliceOwner other) { + if (other == context.ContextOuterClass.SliceOwner.getDefaultInstance()) + return this; + if (other.hasOwnerUuid()) { + mergeOwnerUuid(other.getOwnerUuid()); + } + if (!other.getOwnerString().isEmpty()) { + ownerString_ = other.ownerString_; + bitField0_ |= 0x00000002; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getOwnerUuidFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + ownerString_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } + // case 18 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private context.ContextOuterClass.Uuid ownerUuid_; + + private com.google.protobuf.SingleFieldBuilderV3 ownerUuidBuilder_; + + /** + * .context.Uuid owner_uuid = 1; + * @return Whether the ownerUuid field is set. + */ + public boolean hasOwnerUuid() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * .context.Uuid owner_uuid = 1; + * @return The ownerUuid. + */ + public context.ContextOuterClass.Uuid getOwnerUuid() { + if (ownerUuidBuilder_ == null) { + return ownerUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : ownerUuid_; + } else { + return ownerUuidBuilder_.getMessage(); + } + } + + /** + * .context.Uuid owner_uuid = 1; + */ + public Builder setOwnerUuid(context.ContextOuterClass.Uuid value) { + if (ownerUuidBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ownerUuid_ = value; + } else { + ownerUuidBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.Uuid owner_uuid = 1; + */ + public Builder setOwnerUuid(context.ContextOuterClass.Uuid.Builder builderForValue) { + if (ownerUuidBuilder_ == null) { + ownerUuid_ = builderForValue.build(); + } else { + ownerUuidBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.Uuid owner_uuid = 1; + */ + public Builder mergeOwnerUuid(context.ContextOuterClass.Uuid value) { + if (ownerUuidBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && ownerUuid_ != null && ownerUuid_ != context.ContextOuterClass.Uuid.getDefaultInstance()) { + getOwnerUuidBuilder().mergeFrom(value); + } else { + ownerUuid_ = value; + } + } else { + ownerUuidBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.Uuid owner_uuid = 1; + */ + public Builder clearOwnerUuid() { + bitField0_ = (bitField0_ & ~0x00000001); + ownerUuid_ = null; + if (ownerUuidBuilder_ != null) { + ownerUuidBuilder_.dispose(); + ownerUuidBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.Uuid owner_uuid = 1; + */ + public context.ContextOuterClass.Uuid.Builder getOwnerUuidBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getOwnerUuidFieldBuilder().getBuilder(); + } + + /** + * .context.Uuid owner_uuid = 1; + */ + public context.ContextOuterClass.UuidOrBuilder getOwnerUuidOrBuilder() { + if (ownerUuidBuilder_ != null) { + return ownerUuidBuilder_.getMessageOrBuilder(); + } else { + return ownerUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : ownerUuid_; + } + } + + /** + * .context.Uuid owner_uuid = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3 getOwnerUuidFieldBuilder() { + if (ownerUuidBuilder_ == null) { + ownerUuidBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getOwnerUuid(), getParentForChildren(), isClean()); + ownerUuid_ = null; + } + return ownerUuidBuilder_; + } + + private java.lang.Object ownerString_ = ""; + + /** + * string owner_string = 2; + * @return The ownerString. + */ + public java.lang.String getOwnerString() { + java.lang.Object ref = ownerString_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + ownerString_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * string owner_string = 2; + * @return The bytes for ownerString. + */ + public com.google.protobuf.ByteString getOwnerStringBytes() { + java.lang.Object ref = ownerString_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + ownerString_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * string owner_string = 2; + * @param value The ownerString to set. + * @return This builder for chaining. + */ + public Builder setOwnerString(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ownerString_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * string owner_string = 2; + * @return This builder for chaining. + */ + public Builder clearOwnerString() { + ownerString_ = getDefaultInstance().getOwnerString(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * string owner_string = 2; + * @param value The bytes for ownerString to set. + * @return This builder for chaining. + */ + public Builder setOwnerStringBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + ownerString_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.SliceOwner) + } + + // @@protoc_insertion_point(class_scope:context.SliceOwner) + private static final context.ContextOuterClass.SliceOwner DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.SliceOwner(); + } + + public static context.ContextOuterClass.SliceOwner getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public SliceOwner parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.SliceOwner getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface SliceStatusOrBuilder extends // @@protoc_insertion_point(interface_extends:context.SliceStatus) + com.google.protobuf.MessageOrBuilder { + + /** + * .context.SliceStatusEnum slice_status = 1; + * @return The enum numeric value on the wire for sliceStatus. + */ + int getSliceStatusValue(); + + /** + * .context.SliceStatusEnum slice_status = 1; + * @return The sliceStatus. + */ + context.ContextOuterClass.SliceStatusEnum getSliceStatus(); + } + + /** + * Protobuf type {@code context.SliceStatus} + */ + public static final class SliceStatus extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.SliceStatus) + SliceStatusOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use SliceStatus.newBuilder() to construct. + private SliceStatus(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private SliceStatus() { + sliceStatus_ = 0; + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new SliceStatus(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_SliceStatus_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_SliceStatus_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.SliceStatus.class, context.ContextOuterClass.SliceStatus.Builder.class); + } + + public static final int SLICE_STATUS_FIELD_NUMBER = 1; + + private int sliceStatus_ = 0; + + /** + * .context.SliceStatusEnum slice_status = 1; + * @return The enum numeric value on the wire for sliceStatus. + */ + @java.lang.Override + public int getSliceStatusValue() { + return sliceStatus_; + } + + /** + * .context.SliceStatusEnum slice_status = 1; + * @return The sliceStatus. + */ + @java.lang.Override + public context.ContextOuterClass.SliceStatusEnum getSliceStatus() { + context.ContextOuterClass.SliceStatusEnum result = context.ContextOuterClass.SliceStatusEnum.forNumber(sliceStatus_); + return result == null ? context.ContextOuterClass.SliceStatusEnum.UNRECOGNIZED : result; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (sliceStatus_ != context.ContextOuterClass.SliceStatusEnum.SLICESTATUS_UNDEFINED.getNumber()) { + output.writeEnum(1, sliceStatus_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + if (sliceStatus_ != context.ContextOuterClass.SliceStatusEnum.SLICESTATUS_UNDEFINED.getNumber()) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(1, sliceStatus_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.SliceStatus)) { + return super.equals(obj); + } + context.ContextOuterClass.SliceStatus other = (context.ContextOuterClass.SliceStatus) obj; + if (sliceStatus_ != other.sliceStatus_) + return false; + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + SLICE_STATUS_FIELD_NUMBER; + hash = (53 * hash) + sliceStatus_; + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.SliceStatus parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.SliceStatus parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.SliceStatus parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.SliceStatus parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.SliceStatus parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.SliceStatus parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.SliceStatus parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.SliceStatus parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.SliceStatus parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.SliceStatus parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.SliceStatus parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.SliceStatus parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.SliceStatus prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code context.SliceStatus} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.SliceStatus) + context.ContextOuterClass.SliceStatusOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_SliceStatus_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_SliceStatus_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.SliceStatus.class, context.ContextOuterClass.SliceStatus.Builder.class); + } + + // Construct using context.ContextOuterClass.SliceStatus.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + sliceStatus_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_SliceStatus_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.SliceStatus getDefaultInstanceForType() { + return context.ContextOuterClass.SliceStatus.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.SliceStatus build() { + context.ContextOuterClass.SliceStatus result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.SliceStatus buildPartial() { + context.ContextOuterClass.SliceStatus result = new context.ContextOuterClass.SliceStatus(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(context.ContextOuterClass.SliceStatus result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.sliceStatus_ = sliceStatus_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.SliceStatus) { + return mergeFrom((context.ContextOuterClass.SliceStatus) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.SliceStatus other) { + if (other == context.ContextOuterClass.SliceStatus.getDefaultInstance()) + return this; + if (other.sliceStatus_ != 0) { + setSliceStatusValue(other.getSliceStatusValue()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 8: + { + sliceStatus_ = input.readEnum(); + bitField0_ |= 0x00000001; + break; + } + // case 8 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private int sliceStatus_ = 0; + + /** + * .context.SliceStatusEnum slice_status = 1; + * @return The enum numeric value on the wire for sliceStatus. + */ + @java.lang.Override + public int getSliceStatusValue() { + return sliceStatus_; + } + + /** + * .context.SliceStatusEnum slice_status = 1; + * @param value The enum numeric value on the wire for sliceStatus to set. + * @return This builder for chaining. + */ + public Builder setSliceStatusValue(int value) { + sliceStatus_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.SliceStatusEnum slice_status = 1; + * @return The sliceStatus. + */ + @java.lang.Override + public context.ContextOuterClass.SliceStatusEnum getSliceStatus() { + context.ContextOuterClass.SliceStatusEnum result = context.ContextOuterClass.SliceStatusEnum.forNumber(sliceStatus_); + return result == null ? context.ContextOuterClass.SliceStatusEnum.UNRECOGNIZED : result; + } + + /** + * .context.SliceStatusEnum slice_status = 1; + * @param value The sliceStatus to set. + * @return This builder for chaining. + */ + public Builder setSliceStatus(context.ContextOuterClass.SliceStatusEnum value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000001; + sliceStatus_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * .context.SliceStatusEnum slice_status = 1; + * @return This builder for chaining. + */ + public Builder clearSliceStatus() { + bitField0_ = (bitField0_ & ~0x00000001); + sliceStatus_ = 0; + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.SliceStatus) + } + + // @@protoc_insertion_point(class_scope:context.SliceStatus) + private static final context.ContextOuterClass.SliceStatus DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.SliceStatus(); + } + + public static context.ContextOuterClass.SliceStatus getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public SliceStatus parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.SliceStatus getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface SliceConfigOrBuilder extends // @@protoc_insertion_point(interface_extends:context.SliceConfig) + com.google.protobuf.MessageOrBuilder { + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + java.util.List getConfigRulesList(); + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + context.ContextOuterClass.ConfigRule getConfigRules(int index); + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + int getConfigRulesCount(); + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + java.util.List getConfigRulesOrBuilderList(); + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + context.ContextOuterClass.ConfigRuleOrBuilder getConfigRulesOrBuilder(int index); + } + + /** + * Protobuf type {@code context.SliceConfig} + */ + public static final class SliceConfig extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.SliceConfig) + SliceConfigOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use SliceConfig.newBuilder() to construct. + private SliceConfig(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private SliceConfig() { + configRules_ = java.util.Collections.emptyList(); + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new SliceConfig(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_SliceConfig_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_SliceConfig_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.SliceConfig.class, context.ContextOuterClass.SliceConfig.Builder.class); + } + + public static final int CONFIG_RULES_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private java.util.List configRules_; + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + @java.lang.Override + public java.util.List getConfigRulesList() { + return configRules_; + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + @java.lang.Override + public java.util.List getConfigRulesOrBuilderList() { + return configRules_; + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + @java.lang.Override + public int getConfigRulesCount() { + return configRules_.size(); + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + @java.lang.Override + public context.ContextOuterClass.ConfigRule getConfigRules(int index) { + return configRules_.get(index); + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + @java.lang.Override + public context.ContextOuterClass.ConfigRuleOrBuilder getConfigRulesOrBuilder(int index) { + return configRules_.get(index); + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + for (int i = 0; i < configRules_.size(); i++) { + output.writeMessage(1, configRules_.get(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + for (int i = 0; i < configRules_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, configRules_.get(i)); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.SliceConfig)) { + return super.equals(obj); + } + context.ContextOuterClass.SliceConfig other = (context.ContextOuterClass.SliceConfig) obj; + if (!getConfigRulesList().equals(other.getConfigRulesList())) + return false; + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getConfigRulesCount() > 0) { + hash = (37 * hash) + CONFIG_RULES_FIELD_NUMBER; + hash = (53 * hash) + getConfigRulesList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.SliceConfig parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.SliceConfig parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.SliceConfig parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.SliceConfig parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.SliceConfig parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.SliceConfig parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.SliceConfig parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.SliceConfig parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.SliceConfig parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.SliceConfig parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.SliceConfig parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.SliceConfig parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.SliceConfig prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code context.SliceConfig} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.SliceConfig) + context.ContextOuterClass.SliceConfigOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_SliceConfig_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_SliceConfig_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.SliceConfig.class, context.ContextOuterClass.SliceConfig.Builder.class); + } + + // Construct using context.ContextOuterClass.SliceConfig.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + if (configRulesBuilder_ == null) { + configRules_ = java.util.Collections.emptyList(); + } else { + configRules_ = null; + configRulesBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_SliceConfig_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.SliceConfig getDefaultInstanceForType() { + return context.ContextOuterClass.SliceConfig.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.SliceConfig build() { + context.ContextOuterClass.SliceConfig result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.SliceConfig buildPartial() { + context.ContextOuterClass.SliceConfig result = new context.ContextOuterClass.SliceConfig(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(context.ContextOuterClass.SliceConfig result) { + if (configRulesBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + configRules_ = java.util.Collections.unmodifiableList(configRules_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.configRules_ = configRules_; + } else { + result.configRules_ = configRulesBuilder_.build(); + } + } + + private void buildPartial0(context.ContextOuterClass.SliceConfig result) { + int from_bitField0_ = bitField0_; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.SliceConfig) { + return mergeFrom((context.ContextOuterClass.SliceConfig) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.SliceConfig other) { + if (other == context.ContextOuterClass.SliceConfig.getDefaultInstance()) + return this; + if (configRulesBuilder_ == null) { + if (!other.configRules_.isEmpty()) { + if (configRules_.isEmpty()) { + configRules_ = other.configRules_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureConfigRulesIsMutable(); + configRules_.addAll(other.configRules_); + } + onChanged(); + } + } else { + if (!other.configRules_.isEmpty()) { + if (configRulesBuilder_.isEmpty()) { + configRulesBuilder_.dispose(); + configRulesBuilder_ = null; + configRules_ = other.configRules_; + bitField0_ = (bitField0_ & ~0x00000001); + configRulesBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getConfigRulesFieldBuilder() : null; + } else { + configRulesBuilder_.addAllMessages(other.configRules_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + context.ContextOuterClass.ConfigRule m = input.readMessage(context.ContextOuterClass.ConfigRule.parser(), extensionRegistry); + if (configRulesBuilder_ == null) { + ensureConfigRulesIsMutable(); + configRules_.add(m); + } else { + configRulesBuilder_.addMessage(m); + } + break; + } + // case 10 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private java.util.List configRules_ = java.util.Collections.emptyList(); + + private void ensureConfigRulesIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + configRules_ = new java.util.ArrayList(configRules_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3 configRulesBuilder_; + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + public java.util.List getConfigRulesList() { + if (configRulesBuilder_ == null) { + return java.util.Collections.unmodifiableList(configRules_); + } else { + return configRulesBuilder_.getMessageList(); + } + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + public int getConfigRulesCount() { + if (configRulesBuilder_ == null) { + return configRules_.size(); + } else { + return configRulesBuilder_.getCount(); + } + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + public context.ContextOuterClass.ConfigRule getConfigRules(int index) { + if (configRulesBuilder_ == null) { + return configRules_.get(index); + } else { + return configRulesBuilder_.getMessage(index); + } + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + public Builder setConfigRules(int index, context.ContextOuterClass.ConfigRule value) { + if (configRulesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureConfigRulesIsMutable(); + configRules_.set(index, value); + onChanged(); + } else { + configRulesBuilder_.setMessage(index, value); + } + return this; + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + public Builder setConfigRules(int index, context.ContextOuterClass.ConfigRule.Builder builderForValue) { + if (configRulesBuilder_ == null) { + ensureConfigRulesIsMutable(); + configRules_.set(index, builderForValue.build()); + onChanged(); + } else { + configRulesBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + public Builder addConfigRules(context.ContextOuterClass.ConfigRule value) { + if (configRulesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureConfigRulesIsMutable(); + configRules_.add(value); + onChanged(); + } else { + configRulesBuilder_.addMessage(value); + } + return this; + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + public Builder addConfigRules(int index, context.ContextOuterClass.ConfigRule value) { + if (configRulesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureConfigRulesIsMutable(); + configRules_.add(index, value); + onChanged(); + } else { + configRulesBuilder_.addMessage(index, value); + } + return this; + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + public Builder addConfigRules(context.ContextOuterClass.ConfigRule.Builder builderForValue) { + if (configRulesBuilder_ == null) { + ensureConfigRulesIsMutable(); + configRules_.add(builderForValue.build()); + onChanged(); + } else { + configRulesBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + public Builder addConfigRules(int index, context.ContextOuterClass.ConfigRule.Builder builderForValue) { + if (configRulesBuilder_ == null) { + ensureConfigRulesIsMutable(); + configRules_.add(index, builderForValue.build()); + onChanged(); + } else { + configRulesBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + public Builder addAllConfigRules(java.lang.Iterable values) { + if (configRulesBuilder_ == null) { + ensureConfigRulesIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, configRules_); + onChanged(); + } else { + configRulesBuilder_.addAllMessages(values); + } + return this; + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + public Builder clearConfigRules() { + if (configRulesBuilder_ == null) { + configRules_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + configRulesBuilder_.clear(); + } + return this; + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + public Builder removeConfigRules(int index) { + if (configRulesBuilder_ == null) { + ensureConfigRulesIsMutable(); + configRules_.remove(index); + onChanged(); + } else { + configRulesBuilder_.remove(index); + } + return this; + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + public context.ContextOuterClass.ConfigRule.Builder getConfigRulesBuilder(int index) { + return getConfigRulesFieldBuilder().getBuilder(index); + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + public context.ContextOuterClass.ConfigRuleOrBuilder getConfigRulesOrBuilder(int index) { + if (configRulesBuilder_ == null) { + return configRules_.get(index); + } else { + return configRulesBuilder_.getMessageOrBuilder(index); + } + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + public java.util.List getConfigRulesOrBuilderList() { + if (configRulesBuilder_ != null) { + return configRulesBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(configRules_); + } + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + public context.ContextOuterClass.ConfigRule.Builder addConfigRulesBuilder() { + return getConfigRulesFieldBuilder().addBuilder(context.ContextOuterClass.ConfigRule.getDefaultInstance()); + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + public context.ContextOuterClass.ConfigRule.Builder addConfigRulesBuilder(int index) { + return getConfigRulesFieldBuilder().addBuilder(index, context.ContextOuterClass.ConfigRule.getDefaultInstance()); + } + + /** + * repeated .context.ConfigRule config_rules = 1; + */ + public java.util.List getConfigRulesBuilderList() { + return getConfigRulesFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3 getConfigRulesFieldBuilder() { + if (configRulesBuilder_ == null) { + configRulesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3(configRules_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean()); + configRules_ = null; + } + return configRulesBuilder_; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.SliceConfig) + } + + // @@protoc_insertion_point(class_scope:context.SliceConfig) + private static final context.ContextOuterClass.SliceConfig DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.SliceConfig(); + } + + public static context.ContextOuterClass.SliceConfig getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public SliceConfig parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.SliceConfig getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface SliceIdListOrBuilder extends // @@protoc_insertion_point(interface_extends:context.SliceIdList) + com.google.protobuf.MessageOrBuilder { + + /** + * repeated .context.SliceId slice_ids = 1; + */ + java.util.List getSliceIdsList(); + + /** + * repeated .context.SliceId slice_ids = 1; + */ + context.ContextOuterClass.SliceId getSliceIds(int index); + + /** + * repeated .context.SliceId slice_ids = 1; + */ + int getSliceIdsCount(); + + /** + * repeated .context.SliceId slice_ids = 1; + */ + java.util.List getSliceIdsOrBuilderList(); + + /** + * repeated .context.SliceId slice_ids = 1; + */ + context.ContextOuterClass.SliceIdOrBuilder getSliceIdsOrBuilder(int index); + } + + /** + * Protobuf type {@code context.SliceIdList} + */ + public static final class SliceIdList extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.SliceIdList) + SliceIdListOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use SliceIdList.newBuilder() to construct. + private SliceIdList(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private SliceIdList() { + sliceIds_ = java.util.Collections.emptyList(); + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new SliceIdList(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_SliceIdList_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_SliceIdList_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.SliceIdList.class, context.ContextOuterClass.SliceIdList.Builder.class); + } + + public static final int SLICE_IDS_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private java.util.List sliceIds_; + + /** + * repeated .context.SliceId slice_ids = 1; + */ + @java.lang.Override + public java.util.List getSliceIdsList() { + return sliceIds_; + } + + /** + * repeated .context.SliceId slice_ids = 1; + */ + @java.lang.Override + public java.util.List getSliceIdsOrBuilderList() { + return sliceIds_; + } + + /** + * repeated .context.SliceId slice_ids = 1; + */ + @java.lang.Override + public int getSliceIdsCount() { + return sliceIds_.size(); + } + + /** + * repeated .context.SliceId slice_ids = 1; + */ + @java.lang.Override + public context.ContextOuterClass.SliceId getSliceIds(int index) { + return sliceIds_.get(index); + } + + /** + * repeated .context.SliceId slice_ids = 1; + */ + @java.lang.Override + public context.ContextOuterClass.SliceIdOrBuilder getSliceIdsOrBuilder(int index) { + return sliceIds_.get(index); + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + for (int i = 0; i < sliceIds_.size(); i++) { + output.writeMessage(1, sliceIds_.get(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + for (int i = 0; i < sliceIds_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, sliceIds_.get(i)); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.SliceIdList)) { + return super.equals(obj); + } + context.ContextOuterClass.SliceIdList other = (context.ContextOuterClass.SliceIdList) obj; + if (!getSliceIdsList().equals(other.getSliceIdsList())) + return false; + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getSliceIdsCount() > 0) { + hash = (37 * hash) + SLICE_IDS_FIELD_NUMBER; + hash = (53 * hash) + getSliceIdsList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.SliceIdList parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.SliceIdList parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.SliceIdList parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.SliceIdList parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.SliceIdList parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.SliceIdList parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.SliceIdList parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.SliceIdList parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.SliceIdList parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.SliceIdList parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.SliceIdList parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.SliceIdList parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.SliceIdList prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code context.SliceIdList} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.SliceIdList) + context.ContextOuterClass.SliceIdListOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_SliceIdList_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_SliceIdList_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.SliceIdList.class, context.ContextOuterClass.SliceIdList.Builder.class); + } + + // Construct using context.ContextOuterClass.SliceIdList.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + if (sliceIdsBuilder_ == null) { + sliceIds_ = java.util.Collections.emptyList(); + } else { + sliceIds_ = null; + sliceIdsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_SliceIdList_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.SliceIdList getDefaultInstanceForType() { + return context.ContextOuterClass.SliceIdList.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.SliceIdList build() { + context.ContextOuterClass.SliceIdList result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.SliceIdList buildPartial() { + context.ContextOuterClass.SliceIdList result = new context.ContextOuterClass.SliceIdList(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(context.ContextOuterClass.SliceIdList result) { + if (sliceIdsBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + sliceIds_ = java.util.Collections.unmodifiableList(sliceIds_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.sliceIds_ = sliceIds_; + } else { + result.sliceIds_ = sliceIdsBuilder_.build(); + } + } + + private void buildPartial0(context.ContextOuterClass.SliceIdList result) { + int from_bitField0_ = bitField0_; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.SliceIdList) { + return mergeFrom((context.ContextOuterClass.SliceIdList) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.SliceIdList other) { + if (other == context.ContextOuterClass.SliceIdList.getDefaultInstance()) + return this; + if (sliceIdsBuilder_ == null) { + if (!other.sliceIds_.isEmpty()) { + if (sliceIds_.isEmpty()) { + sliceIds_ = other.sliceIds_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureSliceIdsIsMutable(); + sliceIds_.addAll(other.sliceIds_); + } + onChanged(); + } + } else { + if (!other.sliceIds_.isEmpty()) { + if (sliceIdsBuilder_.isEmpty()) { + sliceIdsBuilder_.dispose(); + sliceIdsBuilder_ = null; + sliceIds_ = other.sliceIds_; + bitField0_ = (bitField0_ & ~0x00000001); + sliceIdsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getSliceIdsFieldBuilder() : null; + } else { + sliceIdsBuilder_.addAllMessages(other.sliceIds_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + context.ContextOuterClass.SliceId m = input.readMessage(context.ContextOuterClass.SliceId.parser(), extensionRegistry); + if (sliceIdsBuilder_ == null) { + ensureSliceIdsIsMutable(); + sliceIds_.add(m); + } else { + sliceIdsBuilder_.addMessage(m); + } + break; + } + // case 10 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private java.util.List sliceIds_ = java.util.Collections.emptyList(); + + private void ensureSliceIdsIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + sliceIds_ = new java.util.ArrayList(sliceIds_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3 sliceIdsBuilder_; + + /** + * repeated .context.SliceId slice_ids = 1; + */ + public java.util.List getSliceIdsList() { + if (sliceIdsBuilder_ == null) { + return java.util.Collections.unmodifiableList(sliceIds_); + } else { + return sliceIdsBuilder_.getMessageList(); + } + } + + /** + * repeated .context.SliceId slice_ids = 1; + */ + public int getSliceIdsCount() { + if (sliceIdsBuilder_ == null) { + return sliceIds_.size(); + } else { + return sliceIdsBuilder_.getCount(); + } + } + + /** + * repeated .context.SliceId slice_ids = 1; + */ + public context.ContextOuterClass.SliceId getSliceIds(int index) { + if (sliceIdsBuilder_ == null) { + return sliceIds_.get(index); + } else { + return sliceIdsBuilder_.getMessage(index); + } + } + + /** + * repeated .context.SliceId slice_ids = 1; + */ + public Builder setSliceIds(int index, context.ContextOuterClass.SliceId value) { + if (sliceIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureSliceIdsIsMutable(); + sliceIds_.set(index, value); + onChanged(); + } else { + sliceIdsBuilder_.setMessage(index, value); + } + return this; + } + + /** + * repeated .context.SliceId slice_ids = 1; + */ + public Builder setSliceIds(int index, context.ContextOuterClass.SliceId.Builder builderForValue) { + if (sliceIdsBuilder_ == null) { + ensureSliceIdsIsMutable(); + sliceIds_.set(index, builderForValue.build()); + onChanged(); + } else { + sliceIdsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.SliceId slice_ids = 1; + */ + public Builder addSliceIds(context.ContextOuterClass.SliceId value) { + if (sliceIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureSliceIdsIsMutable(); + sliceIds_.add(value); + onChanged(); + } else { + sliceIdsBuilder_.addMessage(value); + } + return this; + } + + /** + * repeated .context.SliceId slice_ids = 1; + */ + public Builder addSliceIds(int index, context.ContextOuterClass.SliceId value) { + if (sliceIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureSliceIdsIsMutable(); + sliceIds_.add(index, value); + onChanged(); + } else { + sliceIdsBuilder_.addMessage(index, value); + } + return this; + } + + /** + * repeated .context.SliceId slice_ids = 1; + */ + public Builder addSliceIds(context.ContextOuterClass.SliceId.Builder builderForValue) { + if (sliceIdsBuilder_ == null) { + ensureSliceIdsIsMutable(); + sliceIds_.add(builderForValue.build()); + onChanged(); + } else { + sliceIdsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * repeated .context.SliceId slice_ids = 1; + */ + public Builder addSliceIds(int index, context.ContextOuterClass.SliceId.Builder builderForValue) { + if (sliceIdsBuilder_ == null) { + ensureSliceIdsIsMutable(); + sliceIds_.add(index, builderForValue.build()); + onChanged(); + } else { + sliceIdsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.SliceId slice_ids = 1; + */ + public Builder addAllSliceIds(java.lang.Iterable values) { + if (sliceIdsBuilder_ == null) { + ensureSliceIdsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, sliceIds_); + onChanged(); + } else { + sliceIdsBuilder_.addAllMessages(values); + } + return this; + } + + /** + * repeated .context.SliceId slice_ids = 1; + */ + public Builder clearSliceIds() { + if (sliceIdsBuilder_ == null) { + sliceIds_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + sliceIdsBuilder_.clear(); + } + return this; + } + + /** + * repeated .context.SliceId slice_ids = 1; + */ + public Builder removeSliceIds(int index) { + if (sliceIdsBuilder_ == null) { + ensureSliceIdsIsMutable(); + sliceIds_.remove(index); + onChanged(); + } else { + sliceIdsBuilder_.remove(index); + } + return this; + } + + /** + * repeated .context.SliceId slice_ids = 1; + */ + public context.ContextOuterClass.SliceId.Builder getSliceIdsBuilder(int index) { + return getSliceIdsFieldBuilder().getBuilder(index); + } + + /** + * repeated .context.SliceId slice_ids = 1; + */ + public context.ContextOuterClass.SliceIdOrBuilder getSliceIdsOrBuilder(int index) { + if (sliceIdsBuilder_ == null) { + return sliceIds_.get(index); + } else { + return sliceIdsBuilder_.getMessageOrBuilder(index); + } + } + + /** + * repeated .context.SliceId slice_ids = 1; + */ + public java.util.List getSliceIdsOrBuilderList() { + if (sliceIdsBuilder_ != null) { + return sliceIdsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(sliceIds_); + } + } + + /** + * repeated .context.SliceId slice_ids = 1; + */ + public context.ContextOuterClass.SliceId.Builder addSliceIdsBuilder() { + return getSliceIdsFieldBuilder().addBuilder(context.ContextOuterClass.SliceId.getDefaultInstance()); + } + + /** + * repeated .context.SliceId slice_ids = 1; + */ + public context.ContextOuterClass.SliceId.Builder addSliceIdsBuilder(int index) { + return getSliceIdsFieldBuilder().addBuilder(index, context.ContextOuterClass.SliceId.getDefaultInstance()); + } + + /** + * repeated .context.SliceId slice_ids = 1; + */ + public java.util.List getSliceIdsBuilderList() { + return getSliceIdsFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3 getSliceIdsFieldBuilder() { + if (sliceIdsBuilder_ == null) { + sliceIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3(sliceIds_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean()); + sliceIds_ = null; + } + return sliceIdsBuilder_; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.SliceIdList) + } + + // @@protoc_insertion_point(class_scope:context.SliceIdList) + private static final context.ContextOuterClass.SliceIdList DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.SliceIdList(); + } + + public static context.ContextOuterClass.SliceIdList getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public SliceIdList parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.SliceIdList getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface SliceListOrBuilder extends // @@protoc_insertion_point(interface_extends:context.SliceList) + com.google.protobuf.MessageOrBuilder { + + /** + * repeated .context.Slice slices = 1; + */ + java.util.List getSlicesList(); + + /** + * repeated .context.Slice slices = 1; + */ + context.ContextOuterClass.Slice getSlices(int index); + + /** + * repeated .context.Slice slices = 1; + */ + int getSlicesCount(); + + /** + * repeated .context.Slice slices = 1; + */ + java.util.List getSlicesOrBuilderList(); + + /** + * repeated .context.Slice slices = 1; + */ + context.ContextOuterClass.SliceOrBuilder getSlicesOrBuilder(int index); + } + + /** + * Protobuf type {@code context.SliceList} + */ + public static final class SliceList extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.SliceList) + SliceListOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use SliceList.newBuilder() to construct. + private SliceList(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private SliceList() { + slices_ = java.util.Collections.emptyList(); + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new SliceList(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_SliceList_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_SliceList_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.SliceList.class, context.ContextOuterClass.SliceList.Builder.class); + } + + public static final int SLICES_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private java.util.List slices_; + + /** + * repeated .context.Slice slices = 1; + */ + @java.lang.Override + public java.util.List getSlicesList() { + return slices_; + } + + /** + * repeated .context.Slice slices = 1; + */ + @java.lang.Override + public java.util.List getSlicesOrBuilderList() { + return slices_; + } + + /** + * repeated .context.Slice slices = 1; + */ + @java.lang.Override + public int getSlicesCount() { + return slices_.size(); + } + + /** + * repeated .context.Slice slices = 1; + */ + @java.lang.Override + public context.ContextOuterClass.Slice getSlices(int index) { + return slices_.get(index); + } + + /** + * repeated .context.Slice slices = 1; + */ + @java.lang.Override + public context.ContextOuterClass.SliceOrBuilder getSlicesOrBuilder(int index) { + return slices_.get(index); + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + for (int i = 0; i < slices_.size(); i++) { + output.writeMessage(1, slices_.get(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + for (int i = 0; i < slices_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, slices_.get(i)); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.SliceList)) { + return super.equals(obj); + } + context.ContextOuterClass.SliceList other = (context.ContextOuterClass.SliceList) obj; + if (!getSlicesList().equals(other.getSlicesList())) + return false; + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getSlicesCount() > 0) { + hash = (37 * hash) + SLICES_FIELD_NUMBER; + hash = (53 * hash) + getSlicesList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.SliceList parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.SliceList parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.SliceList parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.SliceList parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.SliceList parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.SliceList parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.SliceList parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.SliceList parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.SliceList parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.SliceList parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.SliceList parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.SliceList parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.SliceList prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code context.SliceList} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.SliceList) + context.ContextOuterClass.SliceListOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_SliceList_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_SliceList_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.SliceList.class, context.ContextOuterClass.SliceList.Builder.class); + } + + // Construct using context.ContextOuterClass.SliceList.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + if (slicesBuilder_ == null) { + slices_ = java.util.Collections.emptyList(); + } else { + slices_ = null; + slicesBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_SliceList_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.SliceList getDefaultInstanceForType() { + return context.ContextOuterClass.SliceList.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.SliceList build() { + context.ContextOuterClass.SliceList result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.SliceList buildPartial() { + context.ContextOuterClass.SliceList result = new context.ContextOuterClass.SliceList(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(context.ContextOuterClass.SliceList result) { + if (slicesBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + slices_ = java.util.Collections.unmodifiableList(slices_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.slices_ = slices_; + } else { + result.slices_ = slicesBuilder_.build(); + } + } + + private void buildPartial0(context.ContextOuterClass.SliceList result) { + int from_bitField0_ = bitField0_; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.SliceList) { + return mergeFrom((context.ContextOuterClass.SliceList) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.SliceList other) { + if (other == context.ContextOuterClass.SliceList.getDefaultInstance()) + return this; + if (slicesBuilder_ == null) { + if (!other.slices_.isEmpty()) { + if (slices_.isEmpty()) { + slices_ = other.slices_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureSlicesIsMutable(); + slices_.addAll(other.slices_); + } + onChanged(); + } + } else { + if (!other.slices_.isEmpty()) { + if (slicesBuilder_.isEmpty()) { + slicesBuilder_.dispose(); + slicesBuilder_ = null; + slices_ = other.slices_; + bitField0_ = (bitField0_ & ~0x00000001); + slicesBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getSlicesFieldBuilder() : null; + } else { + slicesBuilder_.addAllMessages(other.slices_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + context.ContextOuterClass.Slice m = input.readMessage(context.ContextOuterClass.Slice.parser(), extensionRegistry); + if (slicesBuilder_ == null) { + ensureSlicesIsMutable(); + slices_.add(m); + } else { + slicesBuilder_.addMessage(m); + } + break; + } + // case 10 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private java.util.List slices_ = java.util.Collections.emptyList(); + + private void ensureSlicesIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + slices_ = new java.util.ArrayList(slices_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3 slicesBuilder_; + + /** + * repeated .context.Slice slices = 1; + */ + public java.util.List getSlicesList() { + if (slicesBuilder_ == null) { + return java.util.Collections.unmodifiableList(slices_); + } else { + return slicesBuilder_.getMessageList(); + } + } + + /** + * repeated .context.Slice slices = 1; + */ + public int getSlicesCount() { + if (slicesBuilder_ == null) { + return slices_.size(); + } else { + return slicesBuilder_.getCount(); + } + } + + /** + * repeated .context.Slice slices = 1; + */ + public context.ContextOuterClass.Slice getSlices(int index) { + if (slicesBuilder_ == null) { + return slices_.get(index); + } else { + return slicesBuilder_.getMessage(index); + } + } + + /** + * repeated .context.Slice slices = 1; + */ + public Builder setSlices(int index, context.ContextOuterClass.Slice value) { + if (slicesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureSlicesIsMutable(); + slices_.set(index, value); + onChanged(); + } else { + slicesBuilder_.setMessage(index, value); + } + return this; + } + + /** + * repeated .context.Slice slices = 1; + */ + public Builder setSlices(int index, context.ContextOuterClass.Slice.Builder builderForValue) { + if (slicesBuilder_ == null) { + ensureSlicesIsMutable(); + slices_.set(index, builderForValue.build()); + onChanged(); + } else { + slicesBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.Slice slices = 1; + */ + public Builder addSlices(context.ContextOuterClass.Slice value) { + if (slicesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureSlicesIsMutable(); + slices_.add(value); + onChanged(); + } else { + slicesBuilder_.addMessage(value); + } + return this; + } + + /** + * repeated .context.Slice slices = 1; + */ + public Builder addSlices(int index, context.ContextOuterClass.Slice value) { + if (slicesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureSlicesIsMutable(); + slices_.add(index, value); + onChanged(); + } else { + slicesBuilder_.addMessage(index, value); + } + return this; + } + + /** + * repeated .context.Slice slices = 1; + */ + public Builder addSlices(context.ContextOuterClass.Slice.Builder builderForValue) { + if (slicesBuilder_ == null) { + ensureSlicesIsMutable(); + slices_.add(builderForValue.build()); + onChanged(); + } else { + slicesBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * repeated .context.Slice slices = 1; + */ + public Builder addSlices(int index, context.ContextOuterClass.Slice.Builder builderForValue) { + if (slicesBuilder_ == null) { + ensureSlicesIsMutable(); + slices_.add(index, builderForValue.build()); + onChanged(); + } else { + slicesBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.Slice slices = 1; + */ + public Builder addAllSlices(java.lang.Iterable values) { + if (slicesBuilder_ == null) { + ensureSlicesIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, slices_); + onChanged(); + } else { + slicesBuilder_.addAllMessages(values); + } + return this; + } + + /** + * repeated .context.Slice slices = 1; + */ + public Builder clearSlices() { + if (slicesBuilder_ == null) { + slices_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + slicesBuilder_.clear(); + } + return this; + } + + /** + * repeated .context.Slice slices = 1; + */ + public Builder removeSlices(int index) { + if (slicesBuilder_ == null) { + ensureSlicesIsMutable(); + slices_.remove(index); + onChanged(); + } else { + slicesBuilder_.remove(index); + } + return this; + } + + /** + * repeated .context.Slice slices = 1; + */ + public context.ContextOuterClass.Slice.Builder getSlicesBuilder(int index) { + return getSlicesFieldBuilder().getBuilder(index); + } + + /** + * repeated .context.Slice slices = 1; + */ + public context.ContextOuterClass.SliceOrBuilder getSlicesOrBuilder(int index) { + if (slicesBuilder_ == null) { + return slices_.get(index); + } else { + return slicesBuilder_.getMessageOrBuilder(index); + } + } + + /** + * repeated .context.Slice slices = 1; + */ + public java.util.List getSlicesOrBuilderList() { + if (slicesBuilder_ != null) { + return slicesBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(slices_); + } + } + + /** + * repeated .context.Slice slices = 1; + */ + public context.ContextOuterClass.Slice.Builder addSlicesBuilder() { + return getSlicesFieldBuilder().addBuilder(context.ContextOuterClass.Slice.getDefaultInstance()); + } + + /** + * repeated .context.Slice slices = 1; + */ + public context.ContextOuterClass.Slice.Builder addSlicesBuilder(int index) { + return getSlicesFieldBuilder().addBuilder(index, context.ContextOuterClass.Slice.getDefaultInstance()); + } + + /** + * repeated .context.Slice slices = 1; + */ + public java.util.List getSlicesBuilderList() { + return getSlicesFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3 getSlicesFieldBuilder() { + if (slicesBuilder_ == null) { + slicesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3(slices_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean()); + slices_ = null; + } + return slicesBuilder_; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.SliceList) + } + + // @@protoc_insertion_point(class_scope:context.SliceList) + private static final context.ContextOuterClass.SliceList DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.SliceList(); + } + + public static context.ContextOuterClass.SliceList getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public SliceList parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.SliceList getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface SliceFilterOrBuilder extends // @@protoc_insertion_point(interface_extends:context.SliceFilter) + com.google.protobuf.MessageOrBuilder { + + /** + * .context.SliceIdList slice_ids = 1; + * @return Whether the sliceIds field is set. + */ + boolean hasSliceIds(); + + /** + * .context.SliceIdList slice_ids = 1; + * @return The sliceIds. + */ + context.ContextOuterClass.SliceIdList getSliceIds(); + + /** + * .context.SliceIdList slice_ids = 1; + */ + context.ContextOuterClass.SliceIdListOrBuilder getSliceIdsOrBuilder(); + + /** + * bool include_endpoint_ids = 2; + * @return The includeEndpointIds. + */ + boolean getIncludeEndpointIds(); + + /** + * bool include_constraints = 3; + * @return The includeConstraints. + */ + boolean getIncludeConstraints(); + + /** + * bool include_service_ids = 4; + * @return The includeServiceIds. + */ + boolean getIncludeServiceIds(); + + /** + * bool include_subslice_ids = 5; + * @return The includeSubsliceIds. + */ + boolean getIncludeSubsliceIds(); + + /** + * bool include_config_rules = 6; + * @return The includeConfigRules. + */ + boolean getIncludeConfigRules(); + } + + /** + * Protobuf type {@code context.SliceFilter} + */ + public static final class SliceFilter extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.SliceFilter) + SliceFilterOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use SliceFilter.newBuilder() to construct. + private SliceFilter(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private SliceFilter() { + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new SliceFilter(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_SliceFilter_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_SliceFilter_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.SliceFilter.class, context.ContextOuterClass.SliceFilter.Builder.class); + } + + public static final int SLICE_IDS_FIELD_NUMBER = 1; + + private context.ContextOuterClass.SliceIdList sliceIds_; + + /** + * .context.SliceIdList slice_ids = 1; + * @return Whether the sliceIds field is set. + */ + @java.lang.Override + public boolean hasSliceIds() { + return sliceIds_ != null; + } + + /** + * .context.SliceIdList slice_ids = 1; + * @return The sliceIds. + */ + @java.lang.Override + public context.ContextOuterClass.SliceIdList getSliceIds() { + return sliceIds_ == null ? context.ContextOuterClass.SliceIdList.getDefaultInstance() : sliceIds_; + } + + /** + * .context.SliceIdList slice_ids = 1; + */ + @java.lang.Override + public context.ContextOuterClass.SliceIdListOrBuilder getSliceIdsOrBuilder() { + return sliceIds_ == null ? context.ContextOuterClass.SliceIdList.getDefaultInstance() : sliceIds_; + } + + public static final int INCLUDE_ENDPOINT_IDS_FIELD_NUMBER = 2; + + private boolean includeEndpointIds_ = false; + + /** + * bool include_endpoint_ids = 2; + * @return The includeEndpointIds. + */ + @java.lang.Override + public boolean getIncludeEndpointIds() { + return includeEndpointIds_; + } + + public static final int INCLUDE_CONSTRAINTS_FIELD_NUMBER = 3; + + private boolean includeConstraints_ = false; + + /** + * bool include_constraints = 3; + * @return The includeConstraints. + */ + @java.lang.Override + public boolean getIncludeConstraints() { + return includeConstraints_; + } + + public static final int INCLUDE_SERVICE_IDS_FIELD_NUMBER = 4; + + private boolean includeServiceIds_ = false; + + /** + * bool include_service_ids = 4; + * @return The includeServiceIds. + */ + @java.lang.Override + public boolean getIncludeServiceIds() { + return includeServiceIds_; + } + + public static final int INCLUDE_SUBSLICE_IDS_FIELD_NUMBER = 5; + + private boolean includeSubsliceIds_ = false; + + /** + * bool include_subslice_ids = 5; + * @return The includeSubsliceIds. + */ + @java.lang.Override + public boolean getIncludeSubsliceIds() { + return includeSubsliceIds_; + } + + public static final int INCLUDE_CONFIG_RULES_FIELD_NUMBER = 6; + + private boolean includeConfigRules_ = false; + + /** + * bool include_config_rules = 6; + * @return The includeConfigRules. + */ + @java.lang.Override + public boolean getIncludeConfigRules() { + return includeConfigRules_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (sliceIds_ != null) { + output.writeMessage(1, getSliceIds()); + } + if (includeEndpointIds_ != false) { + output.writeBool(2, includeEndpointIds_); + } + if (includeConstraints_ != false) { + output.writeBool(3, includeConstraints_); + } + if (includeServiceIds_ != false) { + output.writeBool(4, includeServiceIds_); + } + if (includeSubsliceIds_ != false) { + output.writeBool(5, includeSubsliceIds_); + } + if (includeConfigRules_ != false) { + output.writeBool(6, includeConfigRules_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + if (sliceIds_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getSliceIds()); + } + if (includeEndpointIds_ != false) { + size += com.google.protobuf.CodedOutputStream.computeBoolSize(2, includeEndpointIds_); + } + if (includeConstraints_ != false) { + size += com.google.protobuf.CodedOutputStream.computeBoolSize(3, includeConstraints_); + } + if (includeServiceIds_ != false) { + size += com.google.protobuf.CodedOutputStream.computeBoolSize(4, includeServiceIds_); + } + if (includeSubsliceIds_ != false) { + size += com.google.protobuf.CodedOutputStream.computeBoolSize(5, includeSubsliceIds_); + } + if (includeConfigRules_ != false) { + size += com.google.protobuf.CodedOutputStream.computeBoolSize(6, includeConfigRules_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.SliceFilter)) { + return super.equals(obj); + } + context.ContextOuterClass.SliceFilter other = (context.ContextOuterClass.SliceFilter) obj; + if (hasSliceIds() != other.hasSliceIds()) + return false; + if (hasSliceIds()) { + if (!getSliceIds().equals(other.getSliceIds())) + return false; + } + if (getIncludeEndpointIds() != other.getIncludeEndpointIds()) + return false; + if (getIncludeConstraints() != other.getIncludeConstraints()) + return false; + if (getIncludeServiceIds() != other.getIncludeServiceIds()) + return false; + if (getIncludeSubsliceIds() != other.getIncludeSubsliceIds()) + return false; + if (getIncludeConfigRules() != other.getIncludeConfigRules()) + return false; + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasSliceIds()) { + hash = (37 * hash) + SLICE_IDS_FIELD_NUMBER; + hash = (53 * hash) + getSliceIds().hashCode(); + } + hash = (37 * hash) + INCLUDE_ENDPOINT_IDS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getIncludeEndpointIds()); + hash = (37 * hash) + INCLUDE_CONSTRAINTS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getIncludeConstraints()); + hash = (37 * hash) + INCLUDE_SERVICE_IDS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getIncludeServiceIds()); + hash = (37 * hash) + INCLUDE_SUBSLICE_IDS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getIncludeSubsliceIds()); + hash = (37 * hash) + INCLUDE_CONFIG_RULES_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getIncludeConfigRules()); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.SliceFilter parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.SliceFilter parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.SliceFilter parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.SliceFilter parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.SliceFilter parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.SliceFilter parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.SliceFilter parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.SliceFilter parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.SliceFilter parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.SliceFilter parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.SliceFilter parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.SliceFilter parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.SliceFilter prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code context.SliceFilter} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.SliceFilter) + context.ContextOuterClass.SliceFilterOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_SliceFilter_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_SliceFilter_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.SliceFilter.class, context.ContextOuterClass.SliceFilter.Builder.class); + } + + // Construct using context.ContextOuterClass.SliceFilter.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + sliceIds_ = null; + if (sliceIdsBuilder_ != null) { + sliceIdsBuilder_.dispose(); + sliceIdsBuilder_ = null; + } + includeEndpointIds_ = false; + includeConstraints_ = false; + includeServiceIds_ = false; + includeSubsliceIds_ = false; + includeConfigRules_ = false; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_SliceFilter_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.SliceFilter getDefaultInstanceForType() { + return context.ContextOuterClass.SliceFilter.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.SliceFilter build() { + context.ContextOuterClass.SliceFilter result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.SliceFilter buildPartial() { + context.ContextOuterClass.SliceFilter result = new context.ContextOuterClass.SliceFilter(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(context.ContextOuterClass.SliceFilter result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.sliceIds_ = sliceIdsBuilder_ == null ? sliceIds_ : sliceIdsBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.includeEndpointIds_ = includeEndpointIds_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.includeConstraints_ = includeConstraints_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.includeServiceIds_ = includeServiceIds_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.includeSubsliceIds_ = includeSubsliceIds_; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.includeConfigRules_ = includeConfigRules_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.SliceFilter) { + return mergeFrom((context.ContextOuterClass.SliceFilter) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.SliceFilter other) { + if (other == context.ContextOuterClass.SliceFilter.getDefaultInstance()) + return this; + if (other.hasSliceIds()) { + mergeSliceIds(other.getSliceIds()); + } + if (other.getIncludeEndpointIds() != false) { + setIncludeEndpointIds(other.getIncludeEndpointIds()); + } + if (other.getIncludeConstraints() != false) { + setIncludeConstraints(other.getIncludeConstraints()); + } + if (other.getIncludeServiceIds() != false) { + setIncludeServiceIds(other.getIncludeServiceIds()); + } + if (other.getIncludeSubsliceIds() != false) { + setIncludeSubsliceIds(other.getIncludeSubsliceIds()); + } + if (other.getIncludeConfigRules() != false) { + setIncludeConfigRules(other.getIncludeConfigRules()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getSliceIdsFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 16: + { + includeEndpointIds_ = input.readBool(); + bitField0_ |= 0x00000002; + break; + } + // case 16 + case 24: + { + includeConstraints_ = input.readBool(); + bitField0_ |= 0x00000004; + break; + } + // case 24 + case 32: + { + includeServiceIds_ = input.readBool(); + bitField0_ |= 0x00000008; + break; + } + // case 32 + case 40: + { + includeSubsliceIds_ = input.readBool(); + bitField0_ |= 0x00000010; + break; + } + // case 40 + case 48: + { + includeConfigRules_ = input.readBool(); + bitField0_ |= 0x00000020; + break; + } + // case 48 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private context.ContextOuterClass.SliceIdList sliceIds_; + + private com.google.protobuf.SingleFieldBuilderV3 sliceIdsBuilder_; + + /** + * .context.SliceIdList slice_ids = 1; + * @return Whether the sliceIds field is set. + */ + public boolean hasSliceIds() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * .context.SliceIdList slice_ids = 1; + * @return The sliceIds. + */ + public context.ContextOuterClass.SliceIdList getSliceIds() { + if (sliceIdsBuilder_ == null) { + return sliceIds_ == null ? context.ContextOuterClass.SliceIdList.getDefaultInstance() : sliceIds_; + } else { + return sliceIdsBuilder_.getMessage(); + } + } + + /** + * .context.SliceIdList slice_ids = 1; + */ + public Builder setSliceIds(context.ContextOuterClass.SliceIdList value) { + if (sliceIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + sliceIds_ = value; + } else { + sliceIdsBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.SliceIdList slice_ids = 1; + */ + public Builder setSliceIds(context.ContextOuterClass.SliceIdList.Builder builderForValue) { + if (sliceIdsBuilder_ == null) { + sliceIds_ = builderForValue.build(); + } else { + sliceIdsBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.SliceIdList slice_ids = 1; + */ + public Builder mergeSliceIds(context.ContextOuterClass.SliceIdList value) { + if (sliceIdsBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && sliceIds_ != null && sliceIds_ != context.ContextOuterClass.SliceIdList.getDefaultInstance()) { + getSliceIdsBuilder().mergeFrom(value); + } else { + sliceIds_ = value; + } + } else { + sliceIdsBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.SliceIdList slice_ids = 1; + */ + public Builder clearSliceIds() { + bitField0_ = (bitField0_ & ~0x00000001); + sliceIds_ = null; + if (sliceIdsBuilder_ != null) { + sliceIdsBuilder_.dispose(); + sliceIdsBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.SliceIdList slice_ids = 1; + */ + public context.ContextOuterClass.SliceIdList.Builder getSliceIdsBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getSliceIdsFieldBuilder().getBuilder(); + } + + /** + * .context.SliceIdList slice_ids = 1; + */ + public context.ContextOuterClass.SliceIdListOrBuilder getSliceIdsOrBuilder() { + if (sliceIdsBuilder_ != null) { + return sliceIdsBuilder_.getMessageOrBuilder(); + } else { + return sliceIds_ == null ? context.ContextOuterClass.SliceIdList.getDefaultInstance() : sliceIds_; + } + } + + /** + * .context.SliceIdList slice_ids = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3 getSliceIdsFieldBuilder() { + if (sliceIdsBuilder_ == null) { + sliceIdsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getSliceIds(), getParentForChildren(), isClean()); + sliceIds_ = null; + } + return sliceIdsBuilder_; + } + + private boolean includeEndpointIds_; + + /** + * bool include_endpoint_ids = 2; + * @return The includeEndpointIds. + */ + @java.lang.Override + public boolean getIncludeEndpointIds() { + return includeEndpointIds_; + } + + /** + * bool include_endpoint_ids = 2; + * @param value The includeEndpointIds to set. + * @return This builder for chaining. + */ + public Builder setIncludeEndpointIds(boolean value) { + includeEndpointIds_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * bool include_endpoint_ids = 2; + * @return This builder for chaining. + */ + public Builder clearIncludeEndpointIds() { + bitField0_ = (bitField0_ & ~0x00000002); + includeEndpointIds_ = false; + onChanged(); + return this; + } + + private boolean includeConstraints_; + + /** + * bool include_constraints = 3; + * @return The includeConstraints. + */ + @java.lang.Override + public boolean getIncludeConstraints() { + return includeConstraints_; + } + + /** + * bool include_constraints = 3; + * @param value The includeConstraints to set. + * @return This builder for chaining. + */ + public Builder setIncludeConstraints(boolean value) { + includeConstraints_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * bool include_constraints = 3; + * @return This builder for chaining. + */ + public Builder clearIncludeConstraints() { + bitField0_ = (bitField0_ & ~0x00000004); + includeConstraints_ = false; + onChanged(); + return this; + } + + private boolean includeServiceIds_; + + /** + * bool include_service_ids = 4; + * @return The includeServiceIds. + */ + @java.lang.Override + public boolean getIncludeServiceIds() { + return includeServiceIds_; + } + + /** + * bool include_service_ids = 4; + * @param value The includeServiceIds to set. + * @return This builder for chaining. + */ + public Builder setIncludeServiceIds(boolean value) { + includeServiceIds_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * bool include_service_ids = 4; + * @return This builder for chaining. + */ + public Builder clearIncludeServiceIds() { + bitField0_ = (bitField0_ & ~0x00000008); + includeServiceIds_ = false; + onChanged(); + return this; + } + + private boolean includeSubsliceIds_; + + /** + * bool include_subslice_ids = 5; + * @return The includeSubsliceIds. + */ + @java.lang.Override + public boolean getIncludeSubsliceIds() { + return includeSubsliceIds_; + } + + /** + * bool include_subslice_ids = 5; + * @param value The includeSubsliceIds to set. + * @return This builder for chaining. + */ + public Builder setIncludeSubsliceIds(boolean value) { + includeSubsliceIds_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + /** + * bool include_subslice_ids = 5; + * @return This builder for chaining. + */ + public Builder clearIncludeSubsliceIds() { + bitField0_ = (bitField0_ & ~0x00000010); + includeSubsliceIds_ = false; + onChanged(); + return this; + } + + private boolean includeConfigRules_; + + /** + * bool include_config_rules = 6; + * @return The includeConfigRules. + */ + @java.lang.Override + public boolean getIncludeConfigRules() { + return includeConfigRules_; + } + + /** + * bool include_config_rules = 6; + * @param value The includeConfigRules to set. + * @return This builder for chaining. + */ + public Builder setIncludeConfigRules(boolean value) { + includeConfigRules_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + + /** + * bool include_config_rules = 6; + * @return This builder for chaining. + */ + public Builder clearIncludeConfigRules() { + bitField0_ = (bitField0_ & ~0x00000020); + includeConfigRules_ = false; + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.SliceFilter) + } + + // @@protoc_insertion_point(class_scope:context.SliceFilter) + private static final context.ContextOuterClass.SliceFilter DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.SliceFilter(); + } + + public static context.ContextOuterClass.SliceFilter getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public SliceFilter parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.SliceFilter getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface SliceEventOrBuilder extends // @@protoc_insertion_point(interface_extends:context.SliceEvent) + com.google.protobuf.MessageOrBuilder { + + /** + * .context.Event event = 1; + * @return Whether the event field is set. + */ + boolean hasEvent(); + + /** + * .context.Event event = 1; + * @return The event. + */ + context.ContextOuterClass.Event getEvent(); + + /** + * .context.Event event = 1; + */ + context.ContextOuterClass.EventOrBuilder getEventOrBuilder(); + + /** + * .context.SliceId slice_id = 2; + * @return Whether the sliceId field is set. + */ + boolean hasSliceId(); + + /** + * .context.SliceId slice_id = 2; + * @return The sliceId. + */ + context.ContextOuterClass.SliceId getSliceId(); + + /** + * .context.SliceId slice_id = 2; + */ + context.ContextOuterClass.SliceIdOrBuilder getSliceIdOrBuilder(); + } + + /** + * Protobuf type {@code context.SliceEvent} + */ + public static final class SliceEvent extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.SliceEvent) + SliceEventOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use SliceEvent.newBuilder() to construct. + private SliceEvent(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private SliceEvent() { + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new SliceEvent(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_SliceEvent_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_SliceEvent_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.SliceEvent.class, context.ContextOuterClass.SliceEvent.Builder.class); + } + + public static final int EVENT_FIELD_NUMBER = 1; + + private context.ContextOuterClass.Event event_; + + /** + * .context.Event event = 1; + * @return Whether the event field is set. + */ + @java.lang.Override + public boolean hasEvent() { + return event_ != null; + } + + /** + * .context.Event event = 1; + * @return The event. + */ + @java.lang.Override + public context.ContextOuterClass.Event getEvent() { + return event_ == null ? context.ContextOuterClass.Event.getDefaultInstance() : event_; + } + + /** + * .context.Event event = 1; + */ + @java.lang.Override + public context.ContextOuterClass.EventOrBuilder getEventOrBuilder() { + return event_ == null ? context.ContextOuterClass.Event.getDefaultInstance() : event_; + } + + public static final int SLICE_ID_FIELD_NUMBER = 2; + + private context.ContextOuterClass.SliceId sliceId_; + + /** + * .context.SliceId slice_id = 2; + * @return Whether the sliceId field is set. + */ + @java.lang.Override + public boolean hasSliceId() { + return sliceId_ != null; + } + + /** + * .context.SliceId slice_id = 2; + * @return The sliceId. + */ + @java.lang.Override + public context.ContextOuterClass.SliceId getSliceId() { + return sliceId_ == null ? context.ContextOuterClass.SliceId.getDefaultInstance() : sliceId_; + } + + /** + * .context.SliceId slice_id = 2; + */ + @java.lang.Override + public context.ContextOuterClass.SliceIdOrBuilder getSliceIdOrBuilder() { + return sliceId_ == null ? context.ContextOuterClass.SliceId.getDefaultInstance() : sliceId_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (event_ != null) { + output.writeMessage(1, getEvent()); + } + if (sliceId_ != null) { + output.writeMessage(2, getSliceId()); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + if (event_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getEvent()); + } + if (sliceId_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getSliceId()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.SliceEvent)) { + return super.equals(obj); + } + context.ContextOuterClass.SliceEvent other = (context.ContextOuterClass.SliceEvent) obj; + if (hasEvent() != other.hasEvent()) + return false; + if (hasEvent()) { + if (!getEvent().equals(other.getEvent())) + return false; + } + if (hasSliceId() != other.hasSliceId()) + return false; + if (hasSliceId()) { + if (!getSliceId().equals(other.getSliceId())) + return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasEvent()) { + hash = (37 * hash) + EVENT_FIELD_NUMBER; + hash = (53 * hash) + getEvent().hashCode(); + } + if (hasSliceId()) { + hash = (37 * hash) + SLICE_ID_FIELD_NUMBER; + hash = (53 * hash) + getSliceId().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.SliceEvent parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.SliceEvent parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.SliceEvent parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.SliceEvent parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.SliceEvent parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.SliceEvent parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.SliceEvent parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.SliceEvent parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.SliceEvent parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.SliceEvent parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.SliceEvent parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.SliceEvent parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.SliceEvent prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code context.SliceEvent} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.SliceEvent) + context.ContextOuterClass.SliceEventOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_SliceEvent_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_SliceEvent_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.SliceEvent.class, context.ContextOuterClass.SliceEvent.Builder.class); + } + + // Construct using context.ContextOuterClass.SliceEvent.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + event_ = null; + if (eventBuilder_ != null) { + eventBuilder_.dispose(); + eventBuilder_ = null; + } + sliceId_ = null; + if (sliceIdBuilder_ != null) { + sliceIdBuilder_.dispose(); + sliceIdBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_SliceEvent_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.SliceEvent getDefaultInstanceForType() { + return context.ContextOuterClass.SliceEvent.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.SliceEvent build() { + context.ContextOuterClass.SliceEvent result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.SliceEvent buildPartial() { + context.ContextOuterClass.SliceEvent result = new context.ContextOuterClass.SliceEvent(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(context.ContextOuterClass.SliceEvent result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.event_ = eventBuilder_ == null ? event_ : eventBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.sliceId_ = sliceIdBuilder_ == null ? sliceId_ : sliceIdBuilder_.build(); + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.SliceEvent) { + return mergeFrom((context.ContextOuterClass.SliceEvent) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.SliceEvent other) { + if (other == context.ContextOuterClass.SliceEvent.getDefaultInstance()) + return this; + if (other.hasEvent()) { + mergeEvent(other.getEvent()); + } + if (other.hasSliceId()) { + mergeSliceId(other.getSliceId()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getEventFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + input.readMessage(getSliceIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000002; + break; + } + // case 18 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private context.ContextOuterClass.Event event_; + + private com.google.protobuf.SingleFieldBuilderV3 eventBuilder_; + + /** + * .context.Event event = 1; + * @return Whether the event field is set. + */ + public boolean hasEvent() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * .context.Event event = 1; + * @return The event. + */ + public context.ContextOuterClass.Event getEvent() { + if (eventBuilder_ == null) { + return event_ == null ? context.ContextOuterClass.Event.getDefaultInstance() : event_; + } else { + return eventBuilder_.getMessage(); + } + } + + /** + * .context.Event event = 1; + */ + public Builder setEvent(context.ContextOuterClass.Event value) { + if (eventBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + event_ = value; + } else { + eventBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.Event event = 1; + */ + public Builder setEvent(context.ContextOuterClass.Event.Builder builderForValue) { + if (eventBuilder_ == null) { + event_ = builderForValue.build(); + } else { + eventBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.Event event = 1; + */ + public Builder mergeEvent(context.ContextOuterClass.Event value) { + if (eventBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && event_ != null && event_ != context.ContextOuterClass.Event.getDefaultInstance()) { + getEventBuilder().mergeFrom(value); + } else { + event_ = value; + } + } else { + eventBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.Event event = 1; + */ + public Builder clearEvent() { + bitField0_ = (bitField0_ & ~0x00000001); + event_ = null; + if (eventBuilder_ != null) { + eventBuilder_.dispose(); + eventBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.Event event = 1; + */ + public context.ContextOuterClass.Event.Builder getEventBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getEventFieldBuilder().getBuilder(); + } + + /** + * .context.Event event = 1; + */ + public context.ContextOuterClass.EventOrBuilder getEventOrBuilder() { + if (eventBuilder_ != null) { + return eventBuilder_.getMessageOrBuilder(); + } else { + return event_ == null ? context.ContextOuterClass.Event.getDefaultInstance() : event_; + } + } + + /** + * .context.Event event = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3 getEventFieldBuilder() { + if (eventBuilder_ == null) { + eventBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getEvent(), getParentForChildren(), isClean()); + event_ = null; + } + return eventBuilder_; + } + + private context.ContextOuterClass.SliceId sliceId_; + + private com.google.protobuf.SingleFieldBuilderV3 sliceIdBuilder_; + + /** + * .context.SliceId slice_id = 2; + * @return Whether the sliceId field is set. + */ + public boolean hasSliceId() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * .context.SliceId slice_id = 2; + * @return The sliceId. + */ + public context.ContextOuterClass.SliceId getSliceId() { + if (sliceIdBuilder_ == null) { + return sliceId_ == null ? context.ContextOuterClass.SliceId.getDefaultInstance() : sliceId_; + } else { + return sliceIdBuilder_.getMessage(); + } + } + + /** + * .context.SliceId slice_id = 2; + */ + public Builder setSliceId(context.ContextOuterClass.SliceId value) { + if (sliceIdBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + sliceId_ = value; + } else { + sliceIdBuilder_.setMessage(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * .context.SliceId slice_id = 2; + */ + public Builder setSliceId(context.ContextOuterClass.SliceId.Builder builderForValue) { + if (sliceIdBuilder_ == null) { + sliceId_ = builderForValue.build(); + } else { + sliceIdBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * .context.SliceId slice_id = 2; + */ + public Builder mergeSliceId(context.ContextOuterClass.SliceId value) { + if (sliceIdBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0) && sliceId_ != null && sliceId_ != context.ContextOuterClass.SliceId.getDefaultInstance()) { + getSliceIdBuilder().mergeFrom(value); + } else { + sliceId_ = value; + } + } else { + sliceIdBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * .context.SliceId slice_id = 2; + */ + public Builder clearSliceId() { + bitField0_ = (bitField0_ & ~0x00000002); + sliceId_ = null; + if (sliceIdBuilder_ != null) { + sliceIdBuilder_.dispose(); + sliceIdBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.SliceId slice_id = 2; + */ + public context.ContextOuterClass.SliceId.Builder getSliceIdBuilder() { + bitField0_ |= 0x00000002; + onChanged(); + return getSliceIdFieldBuilder().getBuilder(); + } + + /** + * .context.SliceId slice_id = 2; + */ + public context.ContextOuterClass.SliceIdOrBuilder getSliceIdOrBuilder() { + if (sliceIdBuilder_ != null) { + return sliceIdBuilder_.getMessageOrBuilder(); + } else { + return sliceId_ == null ? context.ContextOuterClass.SliceId.getDefaultInstance() : sliceId_; + } + } + + /** + * .context.SliceId slice_id = 2; + */ + private com.google.protobuf.SingleFieldBuilderV3 getSliceIdFieldBuilder() { + if (sliceIdBuilder_ == null) { + sliceIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getSliceId(), getParentForChildren(), isClean()); + sliceId_ = null; + } + return sliceIdBuilder_; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.SliceEvent) + } + + // @@protoc_insertion_point(class_scope:context.SliceEvent) + private static final context.ContextOuterClass.SliceEvent DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.SliceEvent(); + } + + public static context.ContextOuterClass.SliceEvent getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public SliceEvent parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.SliceEvent getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface ConnectionIdOrBuilder extends // @@protoc_insertion_point(interface_extends:context.ConnectionId) + com.google.protobuf.MessageOrBuilder { + + /** + * .context.Uuid connection_uuid = 1; + * @return Whether the connectionUuid field is set. + */ + boolean hasConnectionUuid(); + + /** + * .context.Uuid connection_uuid = 1; + * @return The connectionUuid. + */ + context.ContextOuterClass.Uuid getConnectionUuid(); + + /** + * .context.Uuid connection_uuid = 1; + */ + context.ContextOuterClass.UuidOrBuilder getConnectionUuidOrBuilder(); + } + + /** + *
+     * ----- Connection ----------------------------------------------------------------------------------------------------
+     * 
+ * + * Protobuf type {@code context.ConnectionId} + */ + public static final class ConnectionId extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.ConnectionId) + ConnectionIdOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use ConnectionId.newBuilder() to construct. + private ConnectionId(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private ConnectionId() { + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new ConnectionId(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_ConnectionId_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_ConnectionId_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.ConnectionId.class, context.ContextOuterClass.ConnectionId.Builder.class); + } + + public static final int CONNECTION_UUID_FIELD_NUMBER = 1; + + private context.ContextOuterClass.Uuid connectionUuid_; + + /** + * .context.Uuid connection_uuid = 1; + * @return Whether the connectionUuid field is set. + */ + @java.lang.Override + public boolean hasConnectionUuid() { + return connectionUuid_ != null; + } + + /** + * .context.Uuid connection_uuid = 1; + * @return The connectionUuid. + */ + @java.lang.Override + public context.ContextOuterClass.Uuid getConnectionUuid() { + return connectionUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : connectionUuid_; + } + + /** + * .context.Uuid connection_uuid = 1; + */ + @java.lang.Override + public context.ContextOuterClass.UuidOrBuilder getConnectionUuidOrBuilder() { + return connectionUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : connectionUuid_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (connectionUuid_ != null) { + output.writeMessage(1, getConnectionUuid()); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + if (connectionUuid_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getConnectionUuid()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.ConnectionId)) { + return super.equals(obj); + } + context.ContextOuterClass.ConnectionId other = (context.ContextOuterClass.ConnectionId) obj; + if (hasConnectionUuid() != other.hasConnectionUuid()) + return false; + if (hasConnectionUuid()) { + if (!getConnectionUuid().equals(other.getConnectionUuid())) + return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasConnectionUuid()) { + hash = (37 * hash) + CONNECTION_UUID_FIELD_NUMBER; + hash = (53 * hash) + getConnectionUuid().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.ConnectionId parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ConnectionId parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ConnectionId parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ConnectionId parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ConnectionId parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ConnectionId parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ConnectionId parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ConnectionId parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.ConnectionId parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ConnectionId parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.ConnectionId parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ConnectionId parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.ConnectionId prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + *
+         * ----- Connection ----------------------------------------------------------------------------------------------------
+         * 
+ * + * Protobuf type {@code context.ConnectionId} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.ConnectionId) + context.ContextOuterClass.ConnectionIdOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_ConnectionId_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_ConnectionId_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.ConnectionId.class, context.ContextOuterClass.ConnectionId.Builder.class); + } + + // Construct using context.ContextOuterClass.ConnectionId.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + connectionUuid_ = null; + if (connectionUuidBuilder_ != null) { + connectionUuidBuilder_.dispose(); + connectionUuidBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_ConnectionId_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.ConnectionId getDefaultInstanceForType() { + return context.ContextOuterClass.ConnectionId.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.ConnectionId build() { + context.ContextOuterClass.ConnectionId result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.ConnectionId buildPartial() { + context.ContextOuterClass.ConnectionId result = new context.ContextOuterClass.ConnectionId(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(context.ContextOuterClass.ConnectionId result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.connectionUuid_ = connectionUuidBuilder_ == null ? connectionUuid_ : connectionUuidBuilder_.build(); + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.ConnectionId) { + return mergeFrom((context.ContextOuterClass.ConnectionId) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.ConnectionId other) { + if (other == context.ContextOuterClass.ConnectionId.getDefaultInstance()) + return this; + if (other.hasConnectionUuid()) { + mergeConnectionUuid(other.getConnectionUuid()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getConnectionUuidFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private context.ContextOuterClass.Uuid connectionUuid_; + + private com.google.protobuf.SingleFieldBuilderV3 connectionUuidBuilder_; + + /** + * .context.Uuid connection_uuid = 1; + * @return Whether the connectionUuid field is set. + */ + public boolean hasConnectionUuid() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * .context.Uuid connection_uuid = 1; + * @return The connectionUuid. + */ + public context.ContextOuterClass.Uuid getConnectionUuid() { + if (connectionUuidBuilder_ == null) { + return connectionUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : connectionUuid_; + } else { + return connectionUuidBuilder_.getMessage(); + } + } + + /** + * .context.Uuid connection_uuid = 1; + */ + public Builder setConnectionUuid(context.ContextOuterClass.Uuid value) { + if (connectionUuidBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + connectionUuid_ = value; + } else { + connectionUuidBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.Uuid connection_uuid = 1; + */ + public Builder setConnectionUuid(context.ContextOuterClass.Uuid.Builder builderForValue) { + if (connectionUuidBuilder_ == null) { + connectionUuid_ = builderForValue.build(); + } else { + connectionUuidBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.Uuid connection_uuid = 1; + */ + public Builder mergeConnectionUuid(context.ContextOuterClass.Uuid value) { + if (connectionUuidBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && connectionUuid_ != null && connectionUuid_ != context.ContextOuterClass.Uuid.getDefaultInstance()) { + getConnectionUuidBuilder().mergeFrom(value); + } else { + connectionUuid_ = value; + } + } else { + connectionUuidBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.Uuid connection_uuid = 1; + */ + public Builder clearConnectionUuid() { + bitField0_ = (bitField0_ & ~0x00000001); + connectionUuid_ = null; + if (connectionUuidBuilder_ != null) { + connectionUuidBuilder_.dispose(); + connectionUuidBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.Uuid connection_uuid = 1; + */ + public context.ContextOuterClass.Uuid.Builder getConnectionUuidBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getConnectionUuidFieldBuilder().getBuilder(); + } + + /** + * .context.Uuid connection_uuid = 1; + */ + public context.ContextOuterClass.UuidOrBuilder getConnectionUuidOrBuilder() { + if (connectionUuidBuilder_ != null) { + return connectionUuidBuilder_.getMessageOrBuilder(); + } else { + return connectionUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : connectionUuid_; + } + } + + /** + * .context.Uuid connection_uuid = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3 getConnectionUuidFieldBuilder() { + if (connectionUuidBuilder_ == null) { + connectionUuidBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getConnectionUuid(), getParentForChildren(), isClean()); + connectionUuid_ = null; + } + return connectionUuidBuilder_; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.ConnectionId) + } + + // @@protoc_insertion_point(class_scope:context.ConnectionId) + private static final context.ContextOuterClass.ConnectionId DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.ConnectionId(); + } + + public static context.ContextOuterClass.ConnectionId getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public ConnectionId parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.ConnectionId getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface ConnectionSettings_L0OrBuilder extends // @@protoc_insertion_point(interface_extends:context.ConnectionSettings_L0) + com.google.protobuf.MessageOrBuilder { + + /** + * string lsp_symbolic_name = 1; + * @return The lspSymbolicName. + */ + java.lang.String getLspSymbolicName(); + + /** + * string lsp_symbolic_name = 1; + * @return The bytes for lspSymbolicName. + */ + com.google.protobuf.ByteString getLspSymbolicNameBytes(); + } + + /** + * Protobuf type {@code context.ConnectionSettings_L0} + */ + public static final class ConnectionSettings_L0 extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.ConnectionSettings_L0) + ConnectionSettings_L0OrBuilder { + + private static final long serialVersionUID = 0L; + + // Use ConnectionSettings_L0.newBuilder() to construct. + private ConnectionSettings_L0(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private ConnectionSettings_L0() { + lspSymbolicName_ = ""; + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new ConnectionSettings_L0(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_ConnectionSettings_L0_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_ConnectionSettings_L0_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.ConnectionSettings_L0.class, context.ContextOuterClass.ConnectionSettings_L0.Builder.class); + } + + public static final int LSP_SYMBOLIC_NAME_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private volatile java.lang.Object lspSymbolicName_ = ""; + + /** + * string lsp_symbolic_name = 1; + * @return The lspSymbolicName. + */ + @java.lang.Override + public java.lang.String getLspSymbolicName() { + java.lang.Object ref = lspSymbolicName_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + lspSymbolicName_ = s; + return s; + } + } + + /** + * string lsp_symbolic_name = 1; + * @return The bytes for lspSymbolicName. + */ + @java.lang.Override + public com.google.protobuf.ByteString getLspSymbolicNameBytes() { + java.lang.Object ref = lspSymbolicName_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + lspSymbolicName_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(lspSymbolicName_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, lspSymbolicName_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(lspSymbolicName_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, lspSymbolicName_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.ConnectionSettings_L0)) { + return super.equals(obj); + } + context.ContextOuterClass.ConnectionSettings_L0 other = (context.ContextOuterClass.ConnectionSettings_L0) obj; + if (!getLspSymbolicName().equals(other.getLspSymbolicName())) + return false; + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + LSP_SYMBOLIC_NAME_FIELD_NUMBER; + hash = (53 * hash) + getLspSymbolicName().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.ConnectionSettings_L0 parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ConnectionSettings_L0 parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ConnectionSettings_L0 parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ConnectionSettings_L0 parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ConnectionSettings_L0 parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ConnectionSettings_L0 parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ConnectionSettings_L0 parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ConnectionSettings_L0 parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.ConnectionSettings_L0 parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ConnectionSettings_L0 parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.ConnectionSettings_L0 parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ConnectionSettings_L0 parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.ConnectionSettings_L0 prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code context.ConnectionSettings_L0} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.ConnectionSettings_L0) + context.ContextOuterClass.ConnectionSettings_L0OrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_ConnectionSettings_L0_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_ConnectionSettings_L0_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.ConnectionSettings_L0.class, context.ContextOuterClass.ConnectionSettings_L0.Builder.class); + } + + // Construct using context.ContextOuterClass.ConnectionSettings_L0.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + lspSymbolicName_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_ConnectionSettings_L0_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.ConnectionSettings_L0 getDefaultInstanceForType() { + return context.ContextOuterClass.ConnectionSettings_L0.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.ConnectionSettings_L0 build() { + context.ContextOuterClass.ConnectionSettings_L0 result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.ConnectionSettings_L0 buildPartial() { + context.ContextOuterClass.ConnectionSettings_L0 result = new context.ContextOuterClass.ConnectionSettings_L0(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(context.ContextOuterClass.ConnectionSettings_L0 result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.lspSymbolicName_ = lspSymbolicName_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.ConnectionSettings_L0) { + return mergeFrom((context.ContextOuterClass.ConnectionSettings_L0) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.ConnectionSettings_L0 other) { + if (other == context.ContextOuterClass.ConnectionSettings_L0.getDefaultInstance()) + return this; + if (!other.getLspSymbolicName().isEmpty()) { + lspSymbolicName_ = other.lspSymbolicName_; + bitField0_ |= 0x00000001; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + lspSymbolicName_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } + // case 10 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private java.lang.Object lspSymbolicName_ = ""; + + /** + * string lsp_symbolic_name = 1; + * @return The lspSymbolicName. + */ + public java.lang.String getLspSymbolicName() { + java.lang.Object ref = lspSymbolicName_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + lspSymbolicName_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * string lsp_symbolic_name = 1; + * @return The bytes for lspSymbolicName. + */ + public com.google.protobuf.ByteString getLspSymbolicNameBytes() { + java.lang.Object ref = lspSymbolicName_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + lspSymbolicName_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * string lsp_symbolic_name = 1; + * @param value The lspSymbolicName to set. + * @return This builder for chaining. + */ + public Builder setLspSymbolicName(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + lspSymbolicName_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * string lsp_symbolic_name = 1; + * @return This builder for chaining. + */ + public Builder clearLspSymbolicName() { + lspSymbolicName_ = getDefaultInstance().getLspSymbolicName(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + + /** + * string lsp_symbolic_name = 1; + * @param value The bytes for lspSymbolicName to set. + * @return This builder for chaining. + */ + public Builder setLspSymbolicNameBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + lspSymbolicName_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.ConnectionSettings_L0) + } + + // @@protoc_insertion_point(class_scope:context.ConnectionSettings_L0) + private static final context.ContextOuterClass.ConnectionSettings_L0 DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.ConnectionSettings_L0(); + } + + public static context.ContextOuterClass.ConnectionSettings_L0 getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public ConnectionSettings_L0 parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.ConnectionSettings_L0 getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface ConnectionSettings_L2OrBuilder extends // @@protoc_insertion_point(interface_extends:context.ConnectionSettings_L2) + com.google.protobuf.MessageOrBuilder { + + /** + * string src_mac_address = 1; + * @return The srcMacAddress. + */ + java.lang.String getSrcMacAddress(); + + /** + * string src_mac_address = 1; + * @return The bytes for srcMacAddress. + */ + com.google.protobuf.ByteString getSrcMacAddressBytes(); + + /** + * string dst_mac_address = 2; + * @return The dstMacAddress. + */ + java.lang.String getDstMacAddress(); + + /** + * string dst_mac_address = 2; + * @return The bytes for dstMacAddress. + */ + com.google.protobuf.ByteString getDstMacAddressBytes(); + + /** + * uint32 ether_type = 3; + * @return The etherType. + */ + int getEtherType(); + + /** + * uint32 vlan_id = 4; + * @return The vlanId. + */ + int getVlanId(); + + /** + * uint32 mpls_label = 5; + * @return The mplsLabel. + */ + int getMplsLabel(); + + /** + * uint32 mpls_traffic_class = 6; + * @return The mplsTrafficClass. + */ + int getMplsTrafficClass(); + } + + /** + * Protobuf type {@code context.ConnectionSettings_L2} + */ + public static final class ConnectionSettings_L2 extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.ConnectionSettings_L2) + ConnectionSettings_L2OrBuilder { + + private static final long serialVersionUID = 0L; + + // Use ConnectionSettings_L2.newBuilder() to construct. + private ConnectionSettings_L2(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private ConnectionSettings_L2() { + srcMacAddress_ = ""; + dstMacAddress_ = ""; + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new ConnectionSettings_L2(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_ConnectionSettings_L2_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_ConnectionSettings_L2_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.ConnectionSettings_L2.class, context.ContextOuterClass.ConnectionSettings_L2.Builder.class); + } + + public static final int SRC_MAC_ADDRESS_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private volatile java.lang.Object srcMacAddress_ = ""; + + /** + * string src_mac_address = 1; + * @return The srcMacAddress. + */ + @java.lang.Override + public java.lang.String getSrcMacAddress() { + java.lang.Object ref = srcMacAddress_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + srcMacAddress_ = s; + return s; + } + } + + /** + * string src_mac_address = 1; + * @return The bytes for srcMacAddress. + */ + @java.lang.Override + public com.google.protobuf.ByteString getSrcMacAddressBytes() { + java.lang.Object ref = srcMacAddress_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + srcMacAddress_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int DST_MAC_ADDRESS_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object dstMacAddress_ = ""; + + /** + * string dst_mac_address = 2; + * @return The dstMacAddress. + */ + @java.lang.Override + public java.lang.String getDstMacAddress() { + java.lang.Object ref = dstMacAddress_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + dstMacAddress_ = s; + return s; + } + } + + /** + * string dst_mac_address = 2; + * @return The bytes for dstMacAddress. + */ + @java.lang.Override + public com.google.protobuf.ByteString getDstMacAddressBytes() { + java.lang.Object ref = dstMacAddress_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + dstMacAddress_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int ETHER_TYPE_FIELD_NUMBER = 3; + + private int etherType_ = 0; + + /** + * uint32 ether_type = 3; + * @return The etherType. + */ + @java.lang.Override + public int getEtherType() { + return etherType_; + } + + public static final int VLAN_ID_FIELD_NUMBER = 4; + + private int vlanId_ = 0; + + /** + * uint32 vlan_id = 4; + * @return The vlanId. + */ + @java.lang.Override + public int getVlanId() { + return vlanId_; + } + + public static final int MPLS_LABEL_FIELD_NUMBER = 5; + + private int mplsLabel_ = 0; + + /** + * uint32 mpls_label = 5; + * @return The mplsLabel. + */ + @java.lang.Override + public int getMplsLabel() { + return mplsLabel_; + } + + public static final int MPLS_TRAFFIC_CLASS_FIELD_NUMBER = 6; + + private int mplsTrafficClass_ = 0; + + /** + * uint32 mpls_traffic_class = 6; + * @return The mplsTrafficClass. + */ + @java.lang.Override + public int getMplsTrafficClass() { + return mplsTrafficClass_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(srcMacAddress_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, srcMacAddress_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(dstMacAddress_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, dstMacAddress_); + } + if (etherType_ != 0) { + output.writeUInt32(3, etherType_); + } + if (vlanId_ != 0) { + output.writeUInt32(4, vlanId_); + } + if (mplsLabel_ != 0) { + output.writeUInt32(5, mplsLabel_); + } + if (mplsTrafficClass_ != 0) { + output.writeUInt32(6, mplsTrafficClass_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(srcMacAddress_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, srcMacAddress_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(dstMacAddress_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, dstMacAddress_); + } + if (etherType_ != 0) { + size += com.google.protobuf.CodedOutputStream.computeUInt32Size(3, etherType_); + } + if (vlanId_ != 0) { + size += com.google.protobuf.CodedOutputStream.computeUInt32Size(4, vlanId_); + } + if (mplsLabel_ != 0) { + size += com.google.protobuf.CodedOutputStream.computeUInt32Size(5, mplsLabel_); + } + if (mplsTrafficClass_ != 0) { + size += com.google.protobuf.CodedOutputStream.computeUInt32Size(6, mplsTrafficClass_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.ConnectionSettings_L2)) { + return super.equals(obj); + } + context.ContextOuterClass.ConnectionSettings_L2 other = (context.ContextOuterClass.ConnectionSettings_L2) obj; + if (!getSrcMacAddress().equals(other.getSrcMacAddress())) + return false; + if (!getDstMacAddress().equals(other.getDstMacAddress())) + return false; + if (getEtherType() != other.getEtherType()) + return false; + if (getVlanId() != other.getVlanId()) + return false; + if (getMplsLabel() != other.getMplsLabel()) + return false; + if (getMplsTrafficClass() != other.getMplsTrafficClass()) + return false; + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + SRC_MAC_ADDRESS_FIELD_NUMBER; + hash = (53 * hash) + getSrcMacAddress().hashCode(); + hash = (37 * hash) + DST_MAC_ADDRESS_FIELD_NUMBER; + hash = (53 * hash) + getDstMacAddress().hashCode(); + hash = (37 * hash) + ETHER_TYPE_FIELD_NUMBER; + hash = (53 * hash) + getEtherType(); + hash = (37 * hash) + VLAN_ID_FIELD_NUMBER; + hash = (53 * hash) + getVlanId(); + hash = (37 * hash) + MPLS_LABEL_FIELD_NUMBER; + hash = (53 * hash) + getMplsLabel(); + hash = (37 * hash) + MPLS_TRAFFIC_CLASS_FIELD_NUMBER; + hash = (53 * hash) + getMplsTrafficClass(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.ConnectionSettings_L2 parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ConnectionSettings_L2 parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ConnectionSettings_L2 parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ConnectionSettings_L2 parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ConnectionSettings_L2 parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ConnectionSettings_L2 parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ConnectionSettings_L2 parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ConnectionSettings_L2 parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.ConnectionSettings_L2 parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ConnectionSettings_L2 parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.ConnectionSettings_L2 parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ConnectionSettings_L2 parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.ConnectionSettings_L2 prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code context.ConnectionSettings_L2} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.ConnectionSettings_L2) + context.ContextOuterClass.ConnectionSettings_L2OrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_ConnectionSettings_L2_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_ConnectionSettings_L2_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.ConnectionSettings_L2.class, context.ContextOuterClass.ConnectionSettings_L2.Builder.class); + } + + // Construct using context.ContextOuterClass.ConnectionSettings_L2.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + srcMacAddress_ = ""; + dstMacAddress_ = ""; + etherType_ = 0; + vlanId_ = 0; + mplsLabel_ = 0; + mplsTrafficClass_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_ConnectionSettings_L2_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.ConnectionSettings_L2 getDefaultInstanceForType() { + return context.ContextOuterClass.ConnectionSettings_L2.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.ConnectionSettings_L2 build() { + context.ContextOuterClass.ConnectionSettings_L2 result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.ConnectionSettings_L2 buildPartial() { + context.ContextOuterClass.ConnectionSettings_L2 result = new context.ContextOuterClass.ConnectionSettings_L2(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(context.ContextOuterClass.ConnectionSettings_L2 result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.srcMacAddress_ = srcMacAddress_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.dstMacAddress_ = dstMacAddress_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.etherType_ = etherType_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.vlanId_ = vlanId_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.mplsLabel_ = mplsLabel_; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.mplsTrafficClass_ = mplsTrafficClass_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.ConnectionSettings_L2) { + return mergeFrom((context.ContextOuterClass.ConnectionSettings_L2) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.ConnectionSettings_L2 other) { + if (other == context.ContextOuterClass.ConnectionSettings_L2.getDefaultInstance()) + return this; + if (!other.getSrcMacAddress().isEmpty()) { + srcMacAddress_ = other.srcMacAddress_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (!other.getDstMacAddress().isEmpty()) { + dstMacAddress_ = other.dstMacAddress_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (other.getEtherType() != 0) { + setEtherType(other.getEtherType()); + } + if (other.getVlanId() != 0) { + setVlanId(other.getVlanId()); + } + if (other.getMplsLabel() != 0) { + setMplsLabel(other.getMplsLabel()); + } + if (other.getMplsTrafficClass() != 0) { + setMplsTrafficClass(other.getMplsTrafficClass()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + srcMacAddress_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + dstMacAddress_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } + // case 18 + case 24: + { + etherType_ = input.readUInt32(); + bitField0_ |= 0x00000004; + break; + } + // case 24 + case 32: + { + vlanId_ = input.readUInt32(); + bitField0_ |= 0x00000008; + break; + } + // case 32 + case 40: + { + mplsLabel_ = input.readUInt32(); + bitField0_ |= 0x00000010; + break; + } + // case 40 + case 48: + { + mplsTrafficClass_ = input.readUInt32(); + bitField0_ |= 0x00000020; + break; + } + // case 48 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private java.lang.Object srcMacAddress_ = ""; + + /** + * string src_mac_address = 1; + * @return The srcMacAddress. + */ + public java.lang.String getSrcMacAddress() { + java.lang.Object ref = srcMacAddress_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + srcMacAddress_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * string src_mac_address = 1; + * @return The bytes for srcMacAddress. + */ + public com.google.protobuf.ByteString getSrcMacAddressBytes() { + java.lang.Object ref = srcMacAddress_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + srcMacAddress_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * string src_mac_address = 1; + * @param value The srcMacAddress to set. + * @return This builder for chaining. + */ + public Builder setSrcMacAddress(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + srcMacAddress_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * string src_mac_address = 1; + * @return This builder for chaining. + */ + public Builder clearSrcMacAddress() { + srcMacAddress_ = getDefaultInstance().getSrcMacAddress(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + + /** + * string src_mac_address = 1; + * @param value The bytes for srcMacAddress to set. + * @return This builder for chaining. + */ + public Builder setSrcMacAddressBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + srcMacAddress_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private java.lang.Object dstMacAddress_ = ""; + + /** + * string dst_mac_address = 2; + * @return The dstMacAddress. + */ + public java.lang.String getDstMacAddress() { + java.lang.Object ref = dstMacAddress_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + dstMacAddress_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * string dst_mac_address = 2; + * @return The bytes for dstMacAddress. + */ + public com.google.protobuf.ByteString getDstMacAddressBytes() { + java.lang.Object ref = dstMacAddress_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + dstMacAddress_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * string dst_mac_address = 2; + * @param value The dstMacAddress to set. + * @return This builder for chaining. + */ + public Builder setDstMacAddress(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + dstMacAddress_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * string dst_mac_address = 2; + * @return This builder for chaining. + */ + public Builder clearDstMacAddress() { + dstMacAddress_ = getDefaultInstance().getDstMacAddress(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * string dst_mac_address = 2; + * @param value The bytes for dstMacAddress to set. + * @return This builder for chaining. + */ + public Builder setDstMacAddressBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + dstMacAddress_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private int etherType_; + + /** + * uint32 ether_type = 3; + * @return The etherType. + */ + @java.lang.Override + public int getEtherType() { + return etherType_; + } + + /** + * uint32 ether_type = 3; + * @param value The etherType to set. + * @return This builder for chaining. + */ + public Builder setEtherType(int value) { + etherType_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * uint32 ether_type = 3; + * @return This builder for chaining. + */ + public Builder clearEtherType() { + bitField0_ = (bitField0_ & ~0x00000004); + etherType_ = 0; + onChanged(); + return this; + } + + private int vlanId_; + + /** + * uint32 vlan_id = 4; + * @return The vlanId. + */ + @java.lang.Override + public int getVlanId() { + return vlanId_; + } + + /** + * uint32 vlan_id = 4; + * @param value The vlanId to set. + * @return This builder for chaining. + */ + public Builder setVlanId(int value) { + vlanId_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * uint32 vlan_id = 4; + * @return This builder for chaining. + */ + public Builder clearVlanId() { + bitField0_ = (bitField0_ & ~0x00000008); + vlanId_ = 0; + onChanged(); + return this; + } + + private int mplsLabel_; + + /** + * uint32 mpls_label = 5; + * @return The mplsLabel. + */ + @java.lang.Override + public int getMplsLabel() { + return mplsLabel_; + } + + /** + * uint32 mpls_label = 5; + * @param value The mplsLabel to set. + * @return This builder for chaining. + */ + public Builder setMplsLabel(int value) { + mplsLabel_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + /** + * uint32 mpls_label = 5; + * @return This builder for chaining. + */ + public Builder clearMplsLabel() { + bitField0_ = (bitField0_ & ~0x00000010); + mplsLabel_ = 0; + onChanged(); + return this; + } + + private int mplsTrafficClass_; + + /** + * uint32 mpls_traffic_class = 6; + * @return The mplsTrafficClass. + */ + @java.lang.Override + public int getMplsTrafficClass() { + return mplsTrafficClass_; + } + + /** + * uint32 mpls_traffic_class = 6; + * @param value The mplsTrafficClass to set. + * @return This builder for chaining. + */ + public Builder setMplsTrafficClass(int value) { + mplsTrafficClass_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + + /** + * uint32 mpls_traffic_class = 6; + * @return This builder for chaining. + */ + public Builder clearMplsTrafficClass() { + bitField0_ = (bitField0_ & ~0x00000020); + mplsTrafficClass_ = 0; + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.ConnectionSettings_L2) + } + + // @@protoc_insertion_point(class_scope:context.ConnectionSettings_L2) + private static final context.ContextOuterClass.ConnectionSettings_L2 DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.ConnectionSettings_L2(); + } + + public static context.ContextOuterClass.ConnectionSettings_L2 getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public ConnectionSettings_L2 parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.ConnectionSettings_L2 getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface ConnectionSettings_L3OrBuilder extends // @@protoc_insertion_point(interface_extends:context.ConnectionSettings_L3) + com.google.protobuf.MessageOrBuilder { + + /** + * string src_ip_address = 1; + * @return The srcIpAddress. + */ + java.lang.String getSrcIpAddress(); + + /** + * string src_ip_address = 1; + * @return The bytes for srcIpAddress. + */ + com.google.protobuf.ByteString getSrcIpAddressBytes(); + + /** + * string dst_ip_address = 2; + * @return The dstIpAddress. + */ + java.lang.String getDstIpAddress(); + + /** + * string dst_ip_address = 2; + * @return The bytes for dstIpAddress. + */ + com.google.protobuf.ByteString getDstIpAddressBytes(); + + /** + * uint32 dscp = 3; + * @return The dscp. + */ + int getDscp(); + + /** + * uint32 protocol = 4; + * @return The protocol. + */ + int getProtocol(); + + /** + * uint32 ttl = 5; + * @return The ttl. + */ + int getTtl(); + } + + /** + * Protobuf type {@code context.ConnectionSettings_L3} + */ + public static final class ConnectionSettings_L3 extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.ConnectionSettings_L3) + ConnectionSettings_L3OrBuilder { + + private static final long serialVersionUID = 0L; + + // Use ConnectionSettings_L3.newBuilder() to construct. + private ConnectionSettings_L3(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private ConnectionSettings_L3() { + srcIpAddress_ = ""; + dstIpAddress_ = ""; + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new ConnectionSettings_L3(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_ConnectionSettings_L3_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_ConnectionSettings_L3_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.ConnectionSettings_L3.class, context.ContextOuterClass.ConnectionSettings_L3.Builder.class); + } + + public static final int SRC_IP_ADDRESS_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private volatile java.lang.Object srcIpAddress_ = ""; + + /** + * string src_ip_address = 1; + * @return The srcIpAddress. + */ + @java.lang.Override + public java.lang.String getSrcIpAddress() { + java.lang.Object ref = srcIpAddress_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + srcIpAddress_ = s; + return s; + } + } + + /** + * string src_ip_address = 1; + * @return The bytes for srcIpAddress. + */ + @java.lang.Override + public com.google.protobuf.ByteString getSrcIpAddressBytes() { + java.lang.Object ref = srcIpAddress_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + srcIpAddress_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int DST_IP_ADDRESS_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object dstIpAddress_ = ""; + + /** + * string dst_ip_address = 2; + * @return The dstIpAddress. + */ + @java.lang.Override + public java.lang.String getDstIpAddress() { + java.lang.Object ref = dstIpAddress_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + dstIpAddress_ = s; + return s; + } + } + + /** + * string dst_ip_address = 2; + * @return The bytes for dstIpAddress. + */ + @java.lang.Override + public com.google.protobuf.ByteString getDstIpAddressBytes() { + java.lang.Object ref = dstIpAddress_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + dstIpAddress_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int DSCP_FIELD_NUMBER = 3; + + private int dscp_ = 0; + + /** + * uint32 dscp = 3; + * @return The dscp. + */ + @java.lang.Override + public int getDscp() { + return dscp_; + } + + public static final int PROTOCOL_FIELD_NUMBER = 4; + + private int protocol_ = 0; + + /** + * uint32 protocol = 4; + * @return The protocol. + */ + @java.lang.Override + public int getProtocol() { + return protocol_; + } + + public static final int TTL_FIELD_NUMBER = 5; + + private int ttl_ = 0; + + /** + * uint32 ttl = 5; + * @return The ttl. + */ + @java.lang.Override + public int getTtl() { + return ttl_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(srcIpAddress_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, srcIpAddress_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(dstIpAddress_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, dstIpAddress_); + } + if (dscp_ != 0) { + output.writeUInt32(3, dscp_); + } + if (protocol_ != 0) { + output.writeUInt32(4, protocol_); + } + if (ttl_ != 0) { + output.writeUInt32(5, ttl_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(srcIpAddress_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, srcIpAddress_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(dstIpAddress_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, dstIpAddress_); + } + if (dscp_ != 0) { + size += com.google.protobuf.CodedOutputStream.computeUInt32Size(3, dscp_); + } + if (protocol_ != 0) { + size += com.google.protobuf.CodedOutputStream.computeUInt32Size(4, protocol_); + } + if (ttl_ != 0) { + size += com.google.protobuf.CodedOutputStream.computeUInt32Size(5, ttl_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.ConnectionSettings_L3)) { + return super.equals(obj); + } + context.ContextOuterClass.ConnectionSettings_L3 other = (context.ContextOuterClass.ConnectionSettings_L3) obj; + if (!getSrcIpAddress().equals(other.getSrcIpAddress())) + return false; + if (!getDstIpAddress().equals(other.getDstIpAddress())) + return false; + if (getDscp() != other.getDscp()) + return false; + if (getProtocol() != other.getProtocol()) + return false; + if (getTtl() != other.getTtl()) + return false; + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + SRC_IP_ADDRESS_FIELD_NUMBER; + hash = (53 * hash) + getSrcIpAddress().hashCode(); + hash = (37 * hash) + DST_IP_ADDRESS_FIELD_NUMBER; + hash = (53 * hash) + getDstIpAddress().hashCode(); + hash = (37 * hash) + DSCP_FIELD_NUMBER; + hash = (53 * hash) + getDscp(); + hash = (37 * hash) + PROTOCOL_FIELD_NUMBER; + hash = (53 * hash) + getProtocol(); + hash = (37 * hash) + TTL_FIELD_NUMBER; + hash = (53 * hash) + getTtl(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.ConnectionSettings_L3 parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ConnectionSettings_L3 parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ConnectionSettings_L3 parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ConnectionSettings_L3 parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ConnectionSettings_L3 parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ConnectionSettings_L3 parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ConnectionSettings_L3 parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ConnectionSettings_L3 parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.ConnectionSettings_L3 parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ConnectionSettings_L3 parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.ConnectionSettings_L3 parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ConnectionSettings_L3 parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.ConnectionSettings_L3 prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code context.ConnectionSettings_L3} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.ConnectionSettings_L3) + context.ContextOuterClass.ConnectionSettings_L3OrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_ConnectionSettings_L3_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_ConnectionSettings_L3_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.ConnectionSettings_L3.class, context.ContextOuterClass.ConnectionSettings_L3.Builder.class); + } + + // Construct using context.ContextOuterClass.ConnectionSettings_L3.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + srcIpAddress_ = ""; + dstIpAddress_ = ""; + dscp_ = 0; + protocol_ = 0; + ttl_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_ConnectionSettings_L3_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.ConnectionSettings_L3 getDefaultInstanceForType() { + return context.ContextOuterClass.ConnectionSettings_L3.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.ConnectionSettings_L3 build() { + context.ContextOuterClass.ConnectionSettings_L3 result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.ConnectionSettings_L3 buildPartial() { + context.ContextOuterClass.ConnectionSettings_L3 result = new context.ContextOuterClass.ConnectionSettings_L3(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(context.ContextOuterClass.ConnectionSettings_L3 result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.srcIpAddress_ = srcIpAddress_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.dstIpAddress_ = dstIpAddress_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.dscp_ = dscp_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.protocol_ = protocol_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.ttl_ = ttl_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.ConnectionSettings_L3) { + return mergeFrom((context.ContextOuterClass.ConnectionSettings_L3) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.ConnectionSettings_L3 other) { + if (other == context.ContextOuterClass.ConnectionSettings_L3.getDefaultInstance()) + return this; + if (!other.getSrcIpAddress().isEmpty()) { + srcIpAddress_ = other.srcIpAddress_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (!other.getDstIpAddress().isEmpty()) { + dstIpAddress_ = other.dstIpAddress_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (other.getDscp() != 0) { + setDscp(other.getDscp()); + } + if (other.getProtocol() != 0) { + setProtocol(other.getProtocol()); + } + if (other.getTtl() != 0) { + setTtl(other.getTtl()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + srcIpAddress_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + dstIpAddress_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } + // case 18 + case 24: + { + dscp_ = input.readUInt32(); + bitField0_ |= 0x00000004; + break; + } + // case 24 + case 32: + { + protocol_ = input.readUInt32(); + bitField0_ |= 0x00000008; + break; + } + // case 32 + case 40: + { + ttl_ = input.readUInt32(); + bitField0_ |= 0x00000010; + break; + } + // case 40 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private java.lang.Object srcIpAddress_ = ""; + + /** + * string src_ip_address = 1; + * @return The srcIpAddress. + */ + public java.lang.String getSrcIpAddress() { + java.lang.Object ref = srcIpAddress_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + srcIpAddress_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * string src_ip_address = 1; + * @return The bytes for srcIpAddress. + */ + public com.google.protobuf.ByteString getSrcIpAddressBytes() { + java.lang.Object ref = srcIpAddress_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + srcIpAddress_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * string src_ip_address = 1; + * @param value The srcIpAddress to set. + * @return This builder for chaining. + */ + public Builder setSrcIpAddress(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + srcIpAddress_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * string src_ip_address = 1; + * @return This builder for chaining. + */ + public Builder clearSrcIpAddress() { + srcIpAddress_ = getDefaultInstance().getSrcIpAddress(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + + /** + * string src_ip_address = 1; + * @param value The bytes for srcIpAddress to set. + * @return This builder for chaining. + */ + public Builder setSrcIpAddressBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + srcIpAddress_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private java.lang.Object dstIpAddress_ = ""; + + /** + * string dst_ip_address = 2; + * @return The dstIpAddress. + */ + public java.lang.String getDstIpAddress() { + java.lang.Object ref = dstIpAddress_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + dstIpAddress_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * string dst_ip_address = 2; + * @return The bytes for dstIpAddress. + */ + public com.google.protobuf.ByteString getDstIpAddressBytes() { + java.lang.Object ref = dstIpAddress_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + dstIpAddress_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * string dst_ip_address = 2; + * @param value The dstIpAddress to set. + * @return This builder for chaining. + */ + public Builder setDstIpAddress(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + dstIpAddress_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * string dst_ip_address = 2; + * @return This builder for chaining. + */ + public Builder clearDstIpAddress() { + dstIpAddress_ = getDefaultInstance().getDstIpAddress(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * string dst_ip_address = 2; + * @param value The bytes for dstIpAddress to set. + * @return This builder for chaining. + */ + public Builder setDstIpAddressBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + dstIpAddress_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private int dscp_; + + /** + * uint32 dscp = 3; + * @return The dscp. + */ + @java.lang.Override + public int getDscp() { + return dscp_; + } + + /** + * uint32 dscp = 3; + * @param value The dscp to set. + * @return This builder for chaining. + */ + public Builder setDscp(int value) { + dscp_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * uint32 dscp = 3; + * @return This builder for chaining. + */ + public Builder clearDscp() { + bitField0_ = (bitField0_ & ~0x00000004); + dscp_ = 0; + onChanged(); + return this; + } + + private int protocol_; + + /** + * uint32 protocol = 4; + * @return The protocol. + */ + @java.lang.Override + public int getProtocol() { + return protocol_; + } + + /** + * uint32 protocol = 4; + * @param value The protocol to set. + * @return This builder for chaining. + */ + public Builder setProtocol(int value) { + protocol_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * uint32 protocol = 4; + * @return This builder for chaining. + */ + public Builder clearProtocol() { + bitField0_ = (bitField0_ & ~0x00000008); + protocol_ = 0; + onChanged(); + return this; + } + + private int ttl_; + + /** + * uint32 ttl = 5; + * @return The ttl. + */ + @java.lang.Override + public int getTtl() { + return ttl_; + } + + /** + * uint32 ttl = 5; + * @param value The ttl to set. + * @return This builder for chaining. + */ + public Builder setTtl(int value) { + ttl_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + /** + * uint32 ttl = 5; + * @return This builder for chaining. + */ + public Builder clearTtl() { + bitField0_ = (bitField0_ & ~0x00000010); + ttl_ = 0; + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.ConnectionSettings_L3) + } + + // @@protoc_insertion_point(class_scope:context.ConnectionSettings_L3) + private static final context.ContextOuterClass.ConnectionSettings_L3 DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.ConnectionSettings_L3(); + } + + public static context.ContextOuterClass.ConnectionSettings_L3 getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public ConnectionSettings_L3 parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.ConnectionSettings_L3 getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface ConnectionSettings_L4OrBuilder extends // @@protoc_insertion_point(interface_extends:context.ConnectionSettings_L4) + com.google.protobuf.MessageOrBuilder { + + /** + * uint32 src_port = 1; + * @return The srcPort. + */ + int getSrcPort(); + + /** + * uint32 dst_port = 2; + * @return The dstPort. + */ + int getDstPort(); + + /** + * uint32 tcp_flags = 3; + * @return The tcpFlags. + */ + int getTcpFlags(); + + /** + * uint32 ttl = 4; + * @return The ttl. + */ + int getTtl(); + } + + /** + * Protobuf type {@code context.ConnectionSettings_L4} + */ + public static final class ConnectionSettings_L4 extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.ConnectionSettings_L4) + ConnectionSettings_L4OrBuilder { + + private static final long serialVersionUID = 0L; + + // Use ConnectionSettings_L4.newBuilder() to construct. + private ConnectionSettings_L4(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private ConnectionSettings_L4() { + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new ConnectionSettings_L4(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_ConnectionSettings_L4_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_ConnectionSettings_L4_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.ConnectionSettings_L4.class, context.ContextOuterClass.ConnectionSettings_L4.Builder.class); + } + + public static final int SRC_PORT_FIELD_NUMBER = 1; + + private int srcPort_ = 0; + + /** + * uint32 src_port = 1; + * @return The srcPort. + */ + @java.lang.Override + public int getSrcPort() { + return srcPort_; + } + + public static final int DST_PORT_FIELD_NUMBER = 2; + + private int dstPort_ = 0; + + /** + * uint32 dst_port = 2; + * @return The dstPort. + */ + @java.lang.Override + public int getDstPort() { + return dstPort_; + } + + public static final int TCP_FLAGS_FIELD_NUMBER = 3; + + private int tcpFlags_ = 0; + + /** + * uint32 tcp_flags = 3; + * @return The tcpFlags. + */ + @java.lang.Override + public int getTcpFlags() { + return tcpFlags_; + } + + public static final int TTL_FIELD_NUMBER = 4; + + private int ttl_ = 0; + + /** + * uint32 ttl = 4; + * @return The ttl. + */ + @java.lang.Override + public int getTtl() { + return ttl_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (srcPort_ != 0) { + output.writeUInt32(1, srcPort_); + } + if (dstPort_ != 0) { + output.writeUInt32(2, dstPort_); + } + if (tcpFlags_ != 0) { + output.writeUInt32(3, tcpFlags_); + } + if (ttl_ != 0) { + output.writeUInt32(4, ttl_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + if (srcPort_ != 0) { + size += com.google.protobuf.CodedOutputStream.computeUInt32Size(1, srcPort_); + } + if (dstPort_ != 0) { + size += com.google.protobuf.CodedOutputStream.computeUInt32Size(2, dstPort_); + } + if (tcpFlags_ != 0) { + size += com.google.protobuf.CodedOutputStream.computeUInt32Size(3, tcpFlags_); + } + if (ttl_ != 0) { + size += com.google.protobuf.CodedOutputStream.computeUInt32Size(4, ttl_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.ConnectionSettings_L4)) { + return super.equals(obj); + } + context.ContextOuterClass.ConnectionSettings_L4 other = (context.ContextOuterClass.ConnectionSettings_L4) obj; + if (getSrcPort() != other.getSrcPort()) + return false; + if (getDstPort() != other.getDstPort()) + return false; + if (getTcpFlags() != other.getTcpFlags()) + return false; + if (getTtl() != other.getTtl()) + return false; + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + SRC_PORT_FIELD_NUMBER; + hash = (53 * hash) + getSrcPort(); + hash = (37 * hash) + DST_PORT_FIELD_NUMBER; + hash = (53 * hash) + getDstPort(); + hash = (37 * hash) + TCP_FLAGS_FIELD_NUMBER; + hash = (53 * hash) + getTcpFlags(); + hash = (37 * hash) + TTL_FIELD_NUMBER; + hash = (53 * hash) + getTtl(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.ConnectionSettings_L4 parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ConnectionSettings_L4 parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ConnectionSettings_L4 parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ConnectionSettings_L4 parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ConnectionSettings_L4 parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ConnectionSettings_L4 parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ConnectionSettings_L4 parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ConnectionSettings_L4 parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.ConnectionSettings_L4 parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ConnectionSettings_L4 parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.ConnectionSettings_L4 parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ConnectionSettings_L4 parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.ConnectionSettings_L4 prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code context.ConnectionSettings_L4} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.ConnectionSettings_L4) + context.ContextOuterClass.ConnectionSettings_L4OrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_ConnectionSettings_L4_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_ConnectionSettings_L4_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.ConnectionSettings_L4.class, context.ContextOuterClass.ConnectionSettings_L4.Builder.class); + } + + // Construct using context.ContextOuterClass.ConnectionSettings_L4.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + srcPort_ = 0; + dstPort_ = 0; + tcpFlags_ = 0; + ttl_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_ConnectionSettings_L4_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.ConnectionSettings_L4 getDefaultInstanceForType() { + return context.ContextOuterClass.ConnectionSettings_L4.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.ConnectionSettings_L4 build() { + context.ContextOuterClass.ConnectionSettings_L4 result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.ConnectionSettings_L4 buildPartial() { + context.ContextOuterClass.ConnectionSettings_L4 result = new context.ContextOuterClass.ConnectionSettings_L4(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(context.ContextOuterClass.ConnectionSettings_L4 result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.srcPort_ = srcPort_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.dstPort_ = dstPort_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.tcpFlags_ = tcpFlags_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.ttl_ = ttl_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.ConnectionSettings_L4) { + return mergeFrom((context.ContextOuterClass.ConnectionSettings_L4) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.ConnectionSettings_L4 other) { + if (other == context.ContextOuterClass.ConnectionSettings_L4.getDefaultInstance()) + return this; + if (other.getSrcPort() != 0) { + setSrcPort(other.getSrcPort()); + } + if (other.getDstPort() != 0) { + setDstPort(other.getDstPort()); + } + if (other.getTcpFlags() != 0) { + setTcpFlags(other.getTcpFlags()); + } + if (other.getTtl() != 0) { + setTtl(other.getTtl()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 8: + { + srcPort_ = input.readUInt32(); + bitField0_ |= 0x00000001; + break; + } + // case 8 + case 16: + { + dstPort_ = input.readUInt32(); + bitField0_ |= 0x00000002; + break; + } + // case 16 + case 24: + { + tcpFlags_ = input.readUInt32(); + bitField0_ |= 0x00000004; + break; + } + // case 24 + case 32: + { + ttl_ = input.readUInt32(); + bitField0_ |= 0x00000008; + break; + } + // case 32 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private int srcPort_; + + /** + * uint32 src_port = 1; + * @return The srcPort. + */ + @java.lang.Override + public int getSrcPort() { + return srcPort_; + } + + /** + * uint32 src_port = 1; + * @param value The srcPort to set. + * @return This builder for chaining. + */ + public Builder setSrcPort(int value) { + srcPort_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * uint32 src_port = 1; + * @return This builder for chaining. + */ + public Builder clearSrcPort() { + bitField0_ = (bitField0_ & ~0x00000001); + srcPort_ = 0; + onChanged(); + return this; + } + + private int dstPort_; + + /** + * uint32 dst_port = 2; + * @return The dstPort. + */ + @java.lang.Override + public int getDstPort() { + return dstPort_; + } + + /** + * uint32 dst_port = 2; + * @param value The dstPort to set. + * @return This builder for chaining. + */ + public Builder setDstPort(int value) { + dstPort_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * uint32 dst_port = 2; + * @return This builder for chaining. + */ + public Builder clearDstPort() { + bitField0_ = (bitField0_ & ~0x00000002); + dstPort_ = 0; + onChanged(); + return this; + } + + private int tcpFlags_; + + /** + * uint32 tcp_flags = 3; + * @return The tcpFlags. + */ + @java.lang.Override + public int getTcpFlags() { + return tcpFlags_; + } + + /** + * uint32 tcp_flags = 3; + * @param value The tcpFlags to set. + * @return This builder for chaining. + */ + public Builder setTcpFlags(int value) { + tcpFlags_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * uint32 tcp_flags = 3; + * @return This builder for chaining. + */ + public Builder clearTcpFlags() { + bitField0_ = (bitField0_ & ~0x00000004); + tcpFlags_ = 0; + onChanged(); + return this; + } + + private int ttl_; + + /** + * uint32 ttl = 4; + * @return The ttl. + */ + @java.lang.Override + public int getTtl() { + return ttl_; + } + + /** + * uint32 ttl = 4; + * @param value The ttl to set. + * @return This builder for chaining. + */ + public Builder setTtl(int value) { + ttl_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * uint32 ttl = 4; + * @return This builder for chaining. + */ + public Builder clearTtl() { + bitField0_ = (bitField0_ & ~0x00000008); + ttl_ = 0; + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.ConnectionSettings_L4) + } + + // @@protoc_insertion_point(class_scope:context.ConnectionSettings_L4) + private static final context.ContextOuterClass.ConnectionSettings_L4 DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.ConnectionSettings_L4(); + } + + public static context.ContextOuterClass.ConnectionSettings_L4 getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public ConnectionSettings_L4 parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.ConnectionSettings_L4 getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface ConnectionSettingsOrBuilder extends // @@protoc_insertion_point(interface_extends:context.ConnectionSettings) + com.google.protobuf.MessageOrBuilder { + + /** + * .context.ConnectionSettings_L0 l0 = 1; + * @return Whether the l0 field is set. + */ + boolean hasL0(); + + /** + * .context.ConnectionSettings_L0 l0 = 1; + * @return The l0. + */ + context.ContextOuterClass.ConnectionSettings_L0 getL0(); + + /** + * .context.ConnectionSettings_L0 l0 = 1; + */ + context.ContextOuterClass.ConnectionSettings_L0OrBuilder getL0OrBuilder(); + + /** + * .context.ConnectionSettings_L2 l2 = 2; + * @return Whether the l2 field is set. + */ + boolean hasL2(); + + /** + * .context.ConnectionSettings_L2 l2 = 2; + * @return The l2. + */ + context.ContextOuterClass.ConnectionSettings_L2 getL2(); + + /** + * .context.ConnectionSettings_L2 l2 = 2; + */ + context.ContextOuterClass.ConnectionSettings_L2OrBuilder getL2OrBuilder(); + + /** + * .context.ConnectionSettings_L3 l3 = 3; + * @return Whether the l3 field is set. + */ + boolean hasL3(); + + /** + * .context.ConnectionSettings_L3 l3 = 3; + * @return The l3. + */ + context.ContextOuterClass.ConnectionSettings_L3 getL3(); + + /** + * .context.ConnectionSettings_L3 l3 = 3; + */ + context.ContextOuterClass.ConnectionSettings_L3OrBuilder getL3OrBuilder(); + + /** + * .context.ConnectionSettings_L4 l4 = 4; + * @return Whether the l4 field is set. + */ + boolean hasL4(); + + /** + * .context.ConnectionSettings_L4 l4 = 4; + * @return The l4. + */ + context.ContextOuterClass.ConnectionSettings_L4 getL4(); + + /** + * .context.ConnectionSettings_L4 l4 = 4; + */ + context.ContextOuterClass.ConnectionSettings_L4OrBuilder getL4OrBuilder(); + } + + /** + * Protobuf type {@code context.ConnectionSettings} + */ + public static final class ConnectionSettings extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.ConnectionSettings) + ConnectionSettingsOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use ConnectionSettings.newBuilder() to construct. + private ConnectionSettings(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private ConnectionSettings() { + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new ConnectionSettings(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_ConnectionSettings_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_ConnectionSettings_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.ConnectionSettings.class, context.ContextOuterClass.ConnectionSettings.Builder.class); + } + + public static final int L0_FIELD_NUMBER = 1; + + private context.ContextOuterClass.ConnectionSettings_L0 l0_; + + /** + * .context.ConnectionSettings_L0 l0 = 1; + * @return Whether the l0 field is set. + */ + @java.lang.Override + public boolean hasL0() { + return l0_ != null; + } + + /** + * .context.ConnectionSettings_L0 l0 = 1; + * @return The l0. + */ + @java.lang.Override + public context.ContextOuterClass.ConnectionSettings_L0 getL0() { + return l0_ == null ? context.ContextOuterClass.ConnectionSettings_L0.getDefaultInstance() : l0_; + } + + /** + * .context.ConnectionSettings_L0 l0 = 1; + */ + @java.lang.Override + public context.ContextOuterClass.ConnectionSettings_L0OrBuilder getL0OrBuilder() { + return l0_ == null ? context.ContextOuterClass.ConnectionSettings_L0.getDefaultInstance() : l0_; + } + + public static final int L2_FIELD_NUMBER = 2; + + private context.ContextOuterClass.ConnectionSettings_L2 l2_; + + /** + * .context.ConnectionSettings_L2 l2 = 2; + * @return Whether the l2 field is set. + */ + @java.lang.Override + public boolean hasL2() { + return l2_ != null; + } + + /** + * .context.ConnectionSettings_L2 l2 = 2; + * @return The l2. + */ + @java.lang.Override + public context.ContextOuterClass.ConnectionSettings_L2 getL2() { + return l2_ == null ? context.ContextOuterClass.ConnectionSettings_L2.getDefaultInstance() : l2_; + } + + /** + * .context.ConnectionSettings_L2 l2 = 2; + */ + @java.lang.Override + public context.ContextOuterClass.ConnectionSettings_L2OrBuilder getL2OrBuilder() { + return l2_ == null ? context.ContextOuterClass.ConnectionSettings_L2.getDefaultInstance() : l2_; + } + + public static final int L3_FIELD_NUMBER = 3; + + private context.ContextOuterClass.ConnectionSettings_L3 l3_; + + /** + * .context.ConnectionSettings_L3 l3 = 3; + * @return Whether the l3 field is set. + */ + @java.lang.Override + public boolean hasL3() { + return l3_ != null; + } + + /** + * .context.ConnectionSettings_L3 l3 = 3; + * @return The l3. + */ + @java.lang.Override + public context.ContextOuterClass.ConnectionSettings_L3 getL3() { + return l3_ == null ? context.ContextOuterClass.ConnectionSettings_L3.getDefaultInstance() : l3_; + } + + /** + * .context.ConnectionSettings_L3 l3 = 3; + */ + @java.lang.Override + public context.ContextOuterClass.ConnectionSettings_L3OrBuilder getL3OrBuilder() { + return l3_ == null ? context.ContextOuterClass.ConnectionSettings_L3.getDefaultInstance() : l3_; + } + + public static final int L4_FIELD_NUMBER = 4; + + private context.ContextOuterClass.ConnectionSettings_L4 l4_; + + /** + * .context.ConnectionSettings_L4 l4 = 4; + * @return Whether the l4 field is set. + */ + @java.lang.Override + public boolean hasL4() { + return l4_ != null; + } + + /** + * .context.ConnectionSettings_L4 l4 = 4; + * @return The l4. + */ + @java.lang.Override + public context.ContextOuterClass.ConnectionSettings_L4 getL4() { + return l4_ == null ? context.ContextOuterClass.ConnectionSettings_L4.getDefaultInstance() : l4_; + } + + /** + * .context.ConnectionSettings_L4 l4 = 4; + */ + @java.lang.Override + public context.ContextOuterClass.ConnectionSettings_L4OrBuilder getL4OrBuilder() { + return l4_ == null ? context.ContextOuterClass.ConnectionSettings_L4.getDefaultInstance() : l4_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (l0_ != null) { + output.writeMessage(1, getL0()); + } + if (l2_ != null) { + output.writeMessage(2, getL2()); + } + if (l3_ != null) { + output.writeMessage(3, getL3()); + } + if (l4_ != null) { + output.writeMessage(4, getL4()); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + if (l0_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getL0()); + } + if (l2_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getL2()); + } + if (l3_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getL3()); + } + if (l4_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, getL4()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.ConnectionSettings)) { + return super.equals(obj); + } + context.ContextOuterClass.ConnectionSettings other = (context.ContextOuterClass.ConnectionSettings) obj; + if (hasL0() != other.hasL0()) + return false; + if (hasL0()) { + if (!getL0().equals(other.getL0())) + return false; + } + if (hasL2() != other.hasL2()) + return false; + if (hasL2()) { + if (!getL2().equals(other.getL2())) + return false; + } + if (hasL3() != other.hasL3()) + return false; + if (hasL3()) { + if (!getL3().equals(other.getL3())) + return false; + } + if (hasL4() != other.hasL4()) + return false; + if (hasL4()) { + if (!getL4().equals(other.getL4())) + return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasL0()) { + hash = (37 * hash) + L0_FIELD_NUMBER; + hash = (53 * hash) + getL0().hashCode(); + } + if (hasL2()) { + hash = (37 * hash) + L2_FIELD_NUMBER; + hash = (53 * hash) + getL2().hashCode(); + } + if (hasL3()) { + hash = (37 * hash) + L3_FIELD_NUMBER; + hash = (53 * hash) + getL3().hashCode(); + } + if (hasL4()) { + hash = (37 * hash) + L4_FIELD_NUMBER; + hash = (53 * hash) + getL4().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.ConnectionSettings parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ConnectionSettings parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ConnectionSettings parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ConnectionSettings parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ConnectionSettings parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ConnectionSettings parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ConnectionSettings parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ConnectionSettings parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.ConnectionSettings parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ConnectionSettings parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.ConnectionSettings parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ConnectionSettings parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.ConnectionSettings prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code context.ConnectionSettings} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.ConnectionSettings) + context.ContextOuterClass.ConnectionSettingsOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_ConnectionSettings_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_ConnectionSettings_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.ConnectionSettings.class, context.ContextOuterClass.ConnectionSettings.Builder.class); + } + + // Construct using context.ContextOuterClass.ConnectionSettings.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + l0_ = null; + if (l0Builder_ != null) { + l0Builder_.dispose(); + l0Builder_ = null; + } + l2_ = null; + if (l2Builder_ != null) { + l2Builder_.dispose(); + l2Builder_ = null; + } + l3_ = null; + if (l3Builder_ != null) { + l3Builder_.dispose(); + l3Builder_ = null; + } + l4_ = null; + if (l4Builder_ != null) { + l4Builder_.dispose(); + l4Builder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_ConnectionSettings_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.ConnectionSettings getDefaultInstanceForType() { + return context.ContextOuterClass.ConnectionSettings.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.ConnectionSettings build() { + context.ContextOuterClass.ConnectionSettings result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.ConnectionSettings buildPartial() { + context.ContextOuterClass.ConnectionSettings result = new context.ContextOuterClass.ConnectionSettings(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(context.ContextOuterClass.ConnectionSettings result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.l0_ = l0Builder_ == null ? l0_ : l0Builder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.l2_ = l2Builder_ == null ? l2_ : l2Builder_.build(); + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.l3_ = l3Builder_ == null ? l3_ : l3Builder_.build(); + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.l4_ = l4Builder_ == null ? l4_ : l4Builder_.build(); + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.ConnectionSettings) { + return mergeFrom((context.ContextOuterClass.ConnectionSettings) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.ConnectionSettings other) { + if (other == context.ContextOuterClass.ConnectionSettings.getDefaultInstance()) + return this; + if (other.hasL0()) { + mergeL0(other.getL0()); + } + if (other.hasL2()) { + mergeL2(other.getL2()); + } + if (other.hasL3()) { + mergeL3(other.getL3()); + } + if (other.hasL4()) { + mergeL4(other.getL4()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getL0FieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + input.readMessage(getL2FieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000002; + break; + } + // case 18 + case 26: + { + input.readMessage(getL3FieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000004; + break; + } + // case 26 + case 34: + { + input.readMessage(getL4FieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000008; + break; + } + // case 34 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private context.ContextOuterClass.ConnectionSettings_L0 l0_; + + private com.google.protobuf.SingleFieldBuilderV3 l0Builder_; + + /** + * .context.ConnectionSettings_L0 l0 = 1; + * @return Whether the l0 field is set. + */ + public boolean hasL0() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * .context.ConnectionSettings_L0 l0 = 1; + * @return The l0. + */ + public context.ContextOuterClass.ConnectionSettings_L0 getL0() { + if (l0Builder_ == null) { + return l0_ == null ? context.ContextOuterClass.ConnectionSettings_L0.getDefaultInstance() : l0_; + } else { + return l0Builder_.getMessage(); + } + } + + /** + * .context.ConnectionSettings_L0 l0 = 1; + */ + public Builder setL0(context.ContextOuterClass.ConnectionSettings_L0 value) { + if (l0Builder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + l0_ = value; + } else { + l0Builder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.ConnectionSettings_L0 l0 = 1; + */ + public Builder setL0(context.ContextOuterClass.ConnectionSettings_L0.Builder builderForValue) { + if (l0Builder_ == null) { + l0_ = builderForValue.build(); + } else { + l0Builder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.ConnectionSettings_L0 l0 = 1; + */ + public Builder mergeL0(context.ContextOuterClass.ConnectionSettings_L0 value) { + if (l0Builder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && l0_ != null && l0_ != context.ContextOuterClass.ConnectionSettings_L0.getDefaultInstance()) { + getL0Builder().mergeFrom(value); + } else { + l0_ = value; + } + } else { + l0Builder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.ConnectionSettings_L0 l0 = 1; + */ + public Builder clearL0() { + bitField0_ = (bitField0_ & ~0x00000001); + l0_ = null; + if (l0Builder_ != null) { + l0Builder_.dispose(); + l0Builder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.ConnectionSettings_L0 l0 = 1; + */ + public context.ContextOuterClass.ConnectionSettings_L0.Builder getL0Builder() { + bitField0_ |= 0x00000001; + onChanged(); + return getL0FieldBuilder().getBuilder(); + } + + /** + * .context.ConnectionSettings_L0 l0 = 1; + */ + public context.ContextOuterClass.ConnectionSettings_L0OrBuilder getL0OrBuilder() { + if (l0Builder_ != null) { + return l0Builder_.getMessageOrBuilder(); + } else { + return l0_ == null ? context.ContextOuterClass.ConnectionSettings_L0.getDefaultInstance() : l0_; + } + } + + /** + * .context.ConnectionSettings_L0 l0 = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3 getL0FieldBuilder() { + if (l0Builder_ == null) { + l0Builder_ = new com.google.protobuf.SingleFieldBuilderV3(getL0(), getParentForChildren(), isClean()); + l0_ = null; + } + return l0Builder_; + } + + private context.ContextOuterClass.ConnectionSettings_L2 l2_; + + private com.google.protobuf.SingleFieldBuilderV3 l2Builder_; + + /** + * .context.ConnectionSettings_L2 l2 = 2; + * @return Whether the l2 field is set. + */ + public boolean hasL2() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * .context.ConnectionSettings_L2 l2 = 2; + * @return The l2. + */ + public context.ContextOuterClass.ConnectionSettings_L2 getL2() { + if (l2Builder_ == null) { + return l2_ == null ? context.ContextOuterClass.ConnectionSettings_L2.getDefaultInstance() : l2_; + } else { + return l2Builder_.getMessage(); + } + } + + /** + * .context.ConnectionSettings_L2 l2 = 2; + */ + public Builder setL2(context.ContextOuterClass.ConnectionSettings_L2 value) { + if (l2Builder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + l2_ = value; + } else { + l2Builder_.setMessage(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * .context.ConnectionSettings_L2 l2 = 2; + */ + public Builder setL2(context.ContextOuterClass.ConnectionSettings_L2.Builder builderForValue) { + if (l2Builder_ == null) { + l2_ = builderForValue.build(); + } else { + l2Builder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * .context.ConnectionSettings_L2 l2 = 2; + */ + public Builder mergeL2(context.ContextOuterClass.ConnectionSettings_L2 value) { + if (l2Builder_ == null) { + if (((bitField0_ & 0x00000002) != 0) && l2_ != null && l2_ != context.ContextOuterClass.ConnectionSettings_L2.getDefaultInstance()) { + getL2Builder().mergeFrom(value); + } else { + l2_ = value; + } + } else { + l2Builder_.mergeFrom(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * .context.ConnectionSettings_L2 l2 = 2; + */ + public Builder clearL2() { + bitField0_ = (bitField0_ & ~0x00000002); + l2_ = null; + if (l2Builder_ != null) { + l2Builder_.dispose(); + l2Builder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.ConnectionSettings_L2 l2 = 2; + */ + public context.ContextOuterClass.ConnectionSettings_L2.Builder getL2Builder() { + bitField0_ |= 0x00000002; + onChanged(); + return getL2FieldBuilder().getBuilder(); + } + + /** + * .context.ConnectionSettings_L2 l2 = 2; + */ + public context.ContextOuterClass.ConnectionSettings_L2OrBuilder getL2OrBuilder() { + if (l2Builder_ != null) { + return l2Builder_.getMessageOrBuilder(); + } else { + return l2_ == null ? context.ContextOuterClass.ConnectionSettings_L2.getDefaultInstance() : l2_; + } + } + + /** + * .context.ConnectionSettings_L2 l2 = 2; + */ + private com.google.protobuf.SingleFieldBuilderV3 getL2FieldBuilder() { + if (l2Builder_ == null) { + l2Builder_ = new com.google.protobuf.SingleFieldBuilderV3(getL2(), getParentForChildren(), isClean()); + l2_ = null; + } + return l2Builder_; + } + + private context.ContextOuterClass.ConnectionSettings_L3 l3_; + + private com.google.protobuf.SingleFieldBuilderV3 l3Builder_; + + /** + * .context.ConnectionSettings_L3 l3 = 3; + * @return Whether the l3 field is set. + */ + public boolean hasL3() { + return ((bitField0_ & 0x00000004) != 0); + } + + /** + * .context.ConnectionSettings_L3 l3 = 3; + * @return The l3. + */ + public context.ContextOuterClass.ConnectionSettings_L3 getL3() { + if (l3Builder_ == null) { + return l3_ == null ? context.ContextOuterClass.ConnectionSettings_L3.getDefaultInstance() : l3_; + } else { + return l3Builder_.getMessage(); + } + } + + /** + * .context.ConnectionSettings_L3 l3 = 3; + */ + public Builder setL3(context.ContextOuterClass.ConnectionSettings_L3 value) { + if (l3Builder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + l3_ = value; + } else { + l3Builder_.setMessage(value); + } + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * .context.ConnectionSettings_L3 l3 = 3; + */ + public Builder setL3(context.ContextOuterClass.ConnectionSettings_L3.Builder builderForValue) { + if (l3Builder_ == null) { + l3_ = builderForValue.build(); + } else { + l3Builder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * .context.ConnectionSettings_L3 l3 = 3; + */ + public Builder mergeL3(context.ContextOuterClass.ConnectionSettings_L3 value) { + if (l3Builder_ == null) { + if (((bitField0_ & 0x00000004) != 0) && l3_ != null && l3_ != context.ContextOuterClass.ConnectionSettings_L3.getDefaultInstance()) { + getL3Builder().mergeFrom(value); + } else { + l3_ = value; + } + } else { + l3Builder_.mergeFrom(value); + } + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * .context.ConnectionSettings_L3 l3 = 3; + */ + public Builder clearL3() { + bitField0_ = (bitField0_ & ~0x00000004); + l3_ = null; + if (l3Builder_ != null) { + l3Builder_.dispose(); + l3Builder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.ConnectionSettings_L3 l3 = 3; + */ + public context.ContextOuterClass.ConnectionSettings_L3.Builder getL3Builder() { + bitField0_ |= 0x00000004; + onChanged(); + return getL3FieldBuilder().getBuilder(); + } + + /** + * .context.ConnectionSettings_L3 l3 = 3; + */ + public context.ContextOuterClass.ConnectionSettings_L3OrBuilder getL3OrBuilder() { + if (l3Builder_ != null) { + return l3Builder_.getMessageOrBuilder(); + } else { + return l3_ == null ? context.ContextOuterClass.ConnectionSettings_L3.getDefaultInstance() : l3_; + } + } + + /** + * .context.ConnectionSettings_L3 l3 = 3; + */ + private com.google.protobuf.SingleFieldBuilderV3 getL3FieldBuilder() { + if (l3Builder_ == null) { + l3Builder_ = new com.google.protobuf.SingleFieldBuilderV3(getL3(), getParentForChildren(), isClean()); + l3_ = null; + } + return l3Builder_; + } + + private context.ContextOuterClass.ConnectionSettings_L4 l4_; + + private com.google.protobuf.SingleFieldBuilderV3 l4Builder_; + + /** + * .context.ConnectionSettings_L4 l4 = 4; + * @return Whether the l4 field is set. + */ + public boolean hasL4() { + return ((bitField0_ & 0x00000008) != 0); + } + + /** + * .context.ConnectionSettings_L4 l4 = 4; + * @return The l4. + */ + public context.ContextOuterClass.ConnectionSettings_L4 getL4() { + if (l4Builder_ == null) { + return l4_ == null ? context.ContextOuterClass.ConnectionSettings_L4.getDefaultInstance() : l4_; + } else { + return l4Builder_.getMessage(); + } + } + + /** + * .context.ConnectionSettings_L4 l4 = 4; + */ + public Builder setL4(context.ContextOuterClass.ConnectionSettings_L4 value) { + if (l4Builder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + l4_ = value; + } else { + l4Builder_.setMessage(value); + } + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * .context.ConnectionSettings_L4 l4 = 4; + */ + public Builder setL4(context.ContextOuterClass.ConnectionSettings_L4.Builder builderForValue) { + if (l4Builder_ == null) { + l4_ = builderForValue.build(); + } else { + l4Builder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * .context.ConnectionSettings_L4 l4 = 4; + */ + public Builder mergeL4(context.ContextOuterClass.ConnectionSettings_L4 value) { + if (l4Builder_ == null) { + if (((bitField0_ & 0x00000008) != 0) && l4_ != null && l4_ != context.ContextOuterClass.ConnectionSettings_L4.getDefaultInstance()) { + getL4Builder().mergeFrom(value); + } else { + l4_ = value; + } + } else { + l4Builder_.mergeFrom(value); + } + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * .context.ConnectionSettings_L4 l4 = 4; + */ + public Builder clearL4() { + bitField0_ = (bitField0_ & ~0x00000008); + l4_ = null; + if (l4Builder_ != null) { + l4Builder_.dispose(); + l4Builder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.ConnectionSettings_L4 l4 = 4; + */ + public context.ContextOuterClass.ConnectionSettings_L4.Builder getL4Builder() { + bitField0_ |= 0x00000008; + onChanged(); + return getL4FieldBuilder().getBuilder(); + } + + /** + * .context.ConnectionSettings_L4 l4 = 4; + */ + public context.ContextOuterClass.ConnectionSettings_L4OrBuilder getL4OrBuilder() { + if (l4Builder_ != null) { + return l4Builder_.getMessageOrBuilder(); + } else { + return l4_ == null ? context.ContextOuterClass.ConnectionSettings_L4.getDefaultInstance() : l4_; + } + } + + /** + * .context.ConnectionSettings_L4 l4 = 4; + */ + private com.google.protobuf.SingleFieldBuilderV3 getL4FieldBuilder() { + if (l4Builder_ == null) { + l4Builder_ = new com.google.protobuf.SingleFieldBuilderV3(getL4(), getParentForChildren(), isClean()); + l4_ = null; + } + return l4Builder_; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.ConnectionSettings) + } + + // @@protoc_insertion_point(class_scope:context.ConnectionSettings) + private static final context.ContextOuterClass.ConnectionSettings DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.ConnectionSettings(); + } + + public static context.ContextOuterClass.ConnectionSettings getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public ConnectionSettings parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.ConnectionSettings getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface ConnectionOrBuilder extends // @@protoc_insertion_point(interface_extends:context.Connection) + com.google.protobuf.MessageOrBuilder { + + /** + * .context.ConnectionId connection_id = 1; + * @return Whether the connectionId field is set. + */ + boolean hasConnectionId(); + + /** + * .context.ConnectionId connection_id = 1; + * @return The connectionId. + */ + context.ContextOuterClass.ConnectionId getConnectionId(); + + /** + * .context.ConnectionId connection_id = 1; + */ + context.ContextOuterClass.ConnectionIdOrBuilder getConnectionIdOrBuilder(); + + /** + * .context.ServiceId service_id = 2; + * @return Whether the serviceId field is set. + */ + boolean hasServiceId(); + + /** + * .context.ServiceId service_id = 2; + * @return The serviceId. + */ + context.ContextOuterClass.ServiceId getServiceId(); + + /** + * .context.ServiceId service_id = 2; + */ + context.ContextOuterClass.ServiceIdOrBuilder getServiceIdOrBuilder(); + + /** + * repeated .context.EndPointId path_hops_endpoint_ids = 3; + */ + java.util.List getPathHopsEndpointIdsList(); + + /** + * repeated .context.EndPointId path_hops_endpoint_ids = 3; + */ + context.ContextOuterClass.EndPointId getPathHopsEndpointIds(int index); + + /** + * repeated .context.EndPointId path_hops_endpoint_ids = 3; + */ + int getPathHopsEndpointIdsCount(); + + /** + * repeated .context.EndPointId path_hops_endpoint_ids = 3; + */ + java.util.List getPathHopsEndpointIdsOrBuilderList(); + + /** + * repeated .context.EndPointId path_hops_endpoint_ids = 3; + */ + context.ContextOuterClass.EndPointIdOrBuilder getPathHopsEndpointIdsOrBuilder(int index); + + /** + * repeated .context.ServiceId sub_service_ids = 4; + */ + java.util.List getSubServiceIdsList(); + + /** + * repeated .context.ServiceId sub_service_ids = 4; + */ + context.ContextOuterClass.ServiceId getSubServiceIds(int index); + + /** + * repeated .context.ServiceId sub_service_ids = 4; + */ + int getSubServiceIdsCount(); + + /** + * repeated .context.ServiceId sub_service_ids = 4; + */ + java.util.List getSubServiceIdsOrBuilderList(); + + /** + * repeated .context.ServiceId sub_service_ids = 4; + */ + context.ContextOuterClass.ServiceIdOrBuilder getSubServiceIdsOrBuilder(int index); + + /** + * .context.ConnectionSettings settings = 5; + * @return Whether the settings field is set. + */ + boolean hasSettings(); + + /** + * .context.ConnectionSettings settings = 5; + * @return The settings. + */ + context.ContextOuterClass.ConnectionSettings getSettings(); + + /** + * .context.ConnectionSettings settings = 5; + */ + context.ContextOuterClass.ConnectionSettingsOrBuilder getSettingsOrBuilder(); + } + + /** + * Protobuf type {@code context.Connection} + */ + public static final class Connection extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.Connection) + ConnectionOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use Connection.newBuilder() to construct. + private Connection(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private Connection() { + pathHopsEndpointIds_ = java.util.Collections.emptyList(); + subServiceIds_ = java.util.Collections.emptyList(); + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new Connection(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_Connection_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_Connection_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.Connection.class, context.ContextOuterClass.Connection.Builder.class); + } + + public static final int CONNECTION_ID_FIELD_NUMBER = 1; + + private context.ContextOuterClass.ConnectionId connectionId_; + + /** + * .context.ConnectionId connection_id = 1; + * @return Whether the connectionId field is set. + */ + @java.lang.Override + public boolean hasConnectionId() { + return connectionId_ != null; + } + + /** + * .context.ConnectionId connection_id = 1; + * @return The connectionId. + */ + @java.lang.Override + public context.ContextOuterClass.ConnectionId getConnectionId() { + return connectionId_ == null ? context.ContextOuterClass.ConnectionId.getDefaultInstance() : connectionId_; + } + + /** + * .context.ConnectionId connection_id = 1; + */ + @java.lang.Override + public context.ContextOuterClass.ConnectionIdOrBuilder getConnectionIdOrBuilder() { + return connectionId_ == null ? context.ContextOuterClass.ConnectionId.getDefaultInstance() : connectionId_; + } + + public static final int SERVICE_ID_FIELD_NUMBER = 2; + + private context.ContextOuterClass.ServiceId serviceId_; + + /** + * .context.ServiceId service_id = 2; + * @return Whether the serviceId field is set. + */ + @java.lang.Override + public boolean hasServiceId() { + return serviceId_ != null; + } + + /** + * .context.ServiceId service_id = 2; + * @return The serviceId. + */ + @java.lang.Override + public context.ContextOuterClass.ServiceId getServiceId() { + return serviceId_ == null ? context.ContextOuterClass.ServiceId.getDefaultInstance() : serviceId_; + } + + /** + * .context.ServiceId service_id = 2; + */ + @java.lang.Override + public context.ContextOuterClass.ServiceIdOrBuilder getServiceIdOrBuilder() { + return serviceId_ == null ? context.ContextOuterClass.ServiceId.getDefaultInstance() : serviceId_; + } + + public static final int PATH_HOPS_ENDPOINT_IDS_FIELD_NUMBER = 3; + + @SuppressWarnings("serial") + private java.util.List pathHopsEndpointIds_; + + /** + * repeated .context.EndPointId path_hops_endpoint_ids = 3; + */ + @java.lang.Override + public java.util.List getPathHopsEndpointIdsList() { + return pathHopsEndpointIds_; + } + + /** + * repeated .context.EndPointId path_hops_endpoint_ids = 3; + */ + @java.lang.Override + public java.util.List getPathHopsEndpointIdsOrBuilderList() { + return pathHopsEndpointIds_; + } + + /** + * repeated .context.EndPointId path_hops_endpoint_ids = 3; + */ + @java.lang.Override + public int getPathHopsEndpointIdsCount() { + return pathHopsEndpointIds_.size(); + } + + /** + * repeated .context.EndPointId path_hops_endpoint_ids = 3; + */ + @java.lang.Override + public context.ContextOuterClass.EndPointId getPathHopsEndpointIds(int index) { + return pathHopsEndpointIds_.get(index); + } + + /** + * repeated .context.EndPointId path_hops_endpoint_ids = 3; + */ + @java.lang.Override + public context.ContextOuterClass.EndPointIdOrBuilder getPathHopsEndpointIdsOrBuilder(int index) { + return pathHopsEndpointIds_.get(index); + } + + public static final int SUB_SERVICE_IDS_FIELD_NUMBER = 4; + + @SuppressWarnings("serial") + private java.util.List subServiceIds_; + + /** + * repeated .context.ServiceId sub_service_ids = 4; + */ + @java.lang.Override + public java.util.List getSubServiceIdsList() { + return subServiceIds_; + } + + /** + * repeated .context.ServiceId sub_service_ids = 4; + */ + @java.lang.Override + public java.util.List getSubServiceIdsOrBuilderList() { + return subServiceIds_; + } + + /** + * repeated .context.ServiceId sub_service_ids = 4; + */ + @java.lang.Override + public int getSubServiceIdsCount() { + return subServiceIds_.size(); + } + + /** + * repeated .context.ServiceId sub_service_ids = 4; + */ + @java.lang.Override + public context.ContextOuterClass.ServiceId getSubServiceIds(int index) { + return subServiceIds_.get(index); + } + + /** + * repeated .context.ServiceId sub_service_ids = 4; + */ + @java.lang.Override + public context.ContextOuterClass.ServiceIdOrBuilder getSubServiceIdsOrBuilder(int index) { + return subServiceIds_.get(index); + } + + public static final int SETTINGS_FIELD_NUMBER = 5; + + private context.ContextOuterClass.ConnectionSettings settings_; + + /** + * .context.ConnectionSettings settings = 5; + * @return Whether the settings field is set. + */ + @java.lang.Override + public boolean hasSettings() { + return settings_ != null; + } + + /** + * .context.ConnectionSettings settings = 5; + * @return The settings. + */ + @java.lang.Override + public context.ContextOuterClass.ConnectionSettings getSettings() { + return settings_ == null ? context.ContextOuterClass.ConnectionSettings.getDefaultInstance() : settings_; + } + + /** + * .context.ConnectionSettings settings = 5; + */ + @java.lang.Override + public context.ContextOuterClass.ConnectionSettingsOrBuilder getSettingsOrBuilder() { + return settings_ == null ? context.ContextOuterClass.ConnectionSettings.getDefaultInstance() : settings_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (connectionId_ != null) { + output.writeMessage(1, getConnectionId()); + } + if (serviceId_ != null) { + output.writeMessage(2, getServiceId()); + } + for (int i = 0; i < pathHopsEndpointIds_.size(); i++) { + output.writeMessage(3, pathHopsEndpointIds_.get(i)); + } + for (int i = 0; i < subServiceIds_.size(); i++) { + output.writeMessage(4, subServiceIds_.get(i)); + } + if (settings_ != null) { + output.writeMessage(5, getSettings()); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + if (connectionId_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getConnectionId()); + } + if (serviceId_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getServiceId()); + } + for (int i = 0; i < pathHopsEndpointIds_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, pathHopsEndpointIds_.get(i)); + } + for (int i = 0; i < subServiceIds_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, subServiceIds_.get(i)); + } + if (settings_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, getSettings()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.Connection)) { + return super.equals(obj); + } + context.ContextOuterClass.Connection other = (context.ContextOuterClass.Connection) obj; + if (hasConnectionId() != other.hasConnectionId()) + return false; + if (hasConnectionId()) { + if (!getConnectionId().equals(other.getConnectionId())) + return false; + } + if (hasServiceId() != other.hasServiceId()) + return false; + if (hasServiceId()) { + if (!getServiceId().equals(other.getServiceId())) + return false; + } + if (!getPathHopsEndpointIdsList().equals(other.getPathHopsEndpointIdsList())) + return false; + if (!getSubServiceIdsList().equals(other.getSubServiceIdsList())) + return false; + if (hasSettings() != other.hasSettings()) + return false; + if (hasSettings()) { + if (!getSettings().equals(other.getSettings())) + return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasConnectionId()) { + hash = (37 * hash) + CONNECTION_ID_FIELD_NUMBER; + hash = (53 * hash) + getConnectionId().hashCode(); + } + if (hasServiceId()) { + hash = (37 * hash) + SERVICE_ID_FIELD_NUMBER; + hash = (53 * hash) + getServiceId().hashCode(); + } + if (getPathHopsEndpointIdsCount() > 0) { + hash = (37 * hash) + PATH_HOPS_ENDPOINT_IDS_FIELD_NUMBER; + hash = (53 * hash) + getPathHopsEndpointIdsList().hashCode(); + } + if (getSubServiceIdsCount() > 0) { + hash = (37 * hash) + SUB_SERVICE_IDS_FIELD_NUMBER; + hash = (53 * hash) + getSubServiceIdsList().hashCode(); + } + if (hasSettings()) { + hash = (37 * hash) + SETTINGS_FIELD_NUMBER; + hash = (53 * hash) + getSettings().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.Connection parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.Connection parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.Connection parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.Connection parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.Connection parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.Connection parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.Connection parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.Connection parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.Connection parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.Connection parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.Connection parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.Connection parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.Connection prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code context.Connection} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.Connection) + context.ContextOuterClass.ConnectionOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_Connection_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_Connection_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.Connection.class, context.ContextOuterClass.Connection.Builder.class); + } + + // Construct using context.ContextOuterClass.Connection.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + connectionId_ = null; + if (connectionIdBuilder_ != null) { + connectionIdBuilder_.dispose(); + connectionIdBuilder_ = null; + } + serviceId_ = null; + if (serviceIdBuilder_ != null) { + serviceIdBuilder_.dispose(); + serviceIdBuilder_ = null; + } + if (pathHopsEndpointIdsBuilder_ == null) { + pathHopsEndpointIds_ = java.util.Collections.emptyList(); + } else { + pathHopsEndpointIds_ = null; + pathHopsEndpointIdsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000004); + if (subServiceIdsBuilder_ == null) { + subServiceIds_ = java.util.Collections.emptyList(); + } else { + subServiceIds_ = null; + subServiceIdsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000008); + settings_ = null; + if (settingsBuilder_ != null) { + settingsBuilder_.dispose(); + settingsBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_Connection_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.Connection getDefaultInstanceForType() { + return context.ContextOuterClass.Connection.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.Connection build() { + context.ContextOuterClass.Connection result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.Connection buildPartial() { + context.ContextOuterClass.Connection result = new context.ContextOuterClass.Connection(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(context.ContextOuterClass.Connection result) { + if (pathHopsEndpointIdsBuilder_ == null) { + if (((bitField0_ & 0x00000004) != 0)) { + pathHopsEndpointIds_ = java.util.Collections.unmodifiableList(pathHopsEndpointIds_); + bitField0_ = (bitField0_ & ~0x00000004); + } + result.pathHopsEndpointIds_ = pathHopsEndpointIds_; + } else { + result.pathHopsEndpointIds_ = pathHopsEndpointIdsBuilder_.build(); + } + if (subServiceIdsBuilder_ == null) { + if (((bitField0_ & 0x00000008) != 0)) { + subServiceIds_ = java.util.Collections.unmodifiableList(subServiceIds_); + bitField0_ = (bitField0_ & ~0x00000008); + } + result.subServiceIds_ = subServiceIds_; + } else { + result.subServiceIds_ = subServiceIdsBuilder_.build(); + } + } + + private void buildPartial0(context.ContextOuterClass.Connection result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.connectionId_ = connectionIdBuilder_ == null ? connectionId_ : connectionIdBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.serviceId_ = serviceIdBuilder_ == null ? serviceId_ : serviceIdBuilder_.build(); + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.settings_ = settingsBuilder_ == null ? settings_ : settingsBuilder_.build(); + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.Connection) { + return mergeFrom((context.ContextOuterClass.Connection) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.Connection other) { + if (other == context.ContextOuterClass.Connection.getDefaultInstance()) + return this; + if (other.hasConnectionId()) { + mergeConnectionId(other.getConnectionId()); + } + if (other.hasServiceId()) { + mergeServiceId(other.getServiceId()); + } + if (pathHopsEndpointIdsBuilder_ == null) { + if (!other.pathHopsEndpointIds_.isEmpty()) { + if (pathHopsEndpointIds_.isEmpty()) { + pathHopsEndpointIds_ = other.pathHopsEndpointIds_; + bitField0_ = (bitField0_ & ~0x00000004); + } else { + ensurePathHopsEndpointIdsIsMutable(); + pathHopsEndpointIds_.addAll(other.pathHopsEndpointIds_); + } + onChanged(); + } + } else { + if (!other.pathHopsEndpointIds_.isEmpty()) { + if (pathHopsEndpointIdsBuilder_.isEmpty()) { + pathHopsEndpointIdsBuilder_.dispose(); + pathHopsEndpointIdsBuilder_ = null; + pathHopsEndpointIds_ = other.pathHopsEndpointIds_; + bitField0_ = (bitField0_ & ~0x00000004); + pathHopsEndpointIdsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getPathHopsEndpointIdsFieldBuilder() : null; + } else { + pathHopsEndpointIdsBuilder_.addAllMessages(other.pathHopsEndpointIds_); + } + } + } + if (subServiceIdsBuilder_ == null) { + if (!other.subServiceIds_.isEmpty()) { + if (subServiceIds_.isEmpty()) { + subServiceIds_ = other.subServiceIds_; + bitField0_ = (bitField0_ & ~0x00000008); + } else { + ensureSubServiceIdsIsMutable(); + subServiceIds_.addAll(other.subServiceIds_); + } + onChanged(); + } + } else { + if (!other.subServiceIds_.isEmpty()) { + if (subServiceIdsBuilder_.isEmpty()) { + subServiceIdsBuilder_.dispose(); + subServiceIdsBuilder_ = null; + subServiceIds_ = other.subServiceIds_; + bitField0_ = (bitField0_ & ~0x00000008); + subServiceIdsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getSubServiceIdsFieldBuilder() : null; + } else { + subServiceIdsBuilder_.addAllMessages(other.subServiceIds_); + } + } + } + if (other.hasSettings()) { + mergeSettings(other.getSettings()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getConnectionIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + input.readMessage(getServiceIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000002; + break; + } + // case 18 + case 26: + { + context.ContextOuterClass.EndPointId m = input.readMessage(context.ContextOuterClass.EndPointId.parser(), extensionRegistry); + if (pathHopsEndpointIdsBuilder_ == null) { + ensurePathHopsEndpointIdsIsMutable(); + pathHopsEndpointIds_.add(m); + } else { + pathHopsEndpointIdsBuilder_.addMessage(m); + } + break; + } + // case 26 + case 34: + { + context.ContextOuterClass.ServiceId m = input.readMessage(context.ContextOuterClass.ServiceId.parser(), extensionRegistry); + if (subServiceIdsBuilder_ == null) { + ensureSubServiceIdsIsMutable(); + subServiceIds_.add(m); + } else { + subServiceIdsBuilder_.addMessage(m); + } + break; + } + // case 34 + case 42: + { + input.readMessage(getSettingsFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000010; + break; + } + // case 42 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private context.ContextOuterClass.ConnectionId connectionId_; + + private com.google.protobuf.SingleFieldBuilderV3 connectionIdBuilder_; + + /** + * .context.ConnectionId connection_id = 1; + * @return Whether the connectionId field is set. + */ + public boolean hasConnectionId() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * .context.ConnectionId connection_id = 1; + * @return The connectionId. + */ + public context.ContextOuterClass.ConnectionId getConnectionId() { + if (connectionIdBuilder_ == null) { + return connectionId_ == null ? context.ContextOuterClass.ConnectionId.getDefaultInstance() : connectionId_; + } else { + return connectionIdBuilder_.getMessage(); + } + } + + /** + * .context.ConnectionId connection_id = 1; + */ + public Builder setConnectionId(context.ContextOuterClass.ConnectionId value) { + if (connectionIdBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + connectionId_ = value; + } else { + connectionIdBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.ConnectionId connection_id = 1; + */ + public Builder setConnectionId(context.ContextOuterClass.ConnectionId.Builder builderForValue) { + if (connectionIdBuilder_ == null) { + connectionId_ = builderForValue.build(); + } else { + connectionIdBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.ConnectionId connection_id = 1; + */ + public Builder mergeConnectionId(context.ContextOuterClass.ConnectionId value) { + if (connectionIdBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && connectionId_ != null && connectionId_ != context.ContextOuterClass.ConnectionId.getDefaultInstance()) { + getConnectionIdBuilder().mergeFrom(value); + } else { + connectionId_ = value; + } + } else { + connectionIdBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.ConnectionId connection_id = 1; + */ + public Builder clearConnectionId() { + bitField0_ = (bitField0_ & ~0x00000001); + connectionId_ = null; + if (connectionIdBuilder_ != null) { + connectionIdBuilder_.dispose(); + connectionIdBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.ConnectionId connection_id = 1; + */ + public context.ContextOuterClass.ConnectionId.Builder getConnectionIdBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getConnectionIdFieldBuilder().getBuilder(); + } + + /** + * .context.ConnectionId connection_id = 1; + */ + public context.ContextOuterClass.ConnectionIdOrBuilder getConnectionIdOrBuilder() { + if (connectionIdBuilder_ != null) { + return connectionIdBuilder_.getMessageOrBuilder(); + } else { + return connectionId_ == null ? context.ContextOuterClass.ConnectionId.getDefaultInstance() : connectionId_; + } + } + + /** + * .context.ConnectionId connection_id = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3 getConnectionIdFieldBuilder() { + if (connectionIdBuilder_ == null) { + connectionIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getConnectionId(), getParentForChildren(), isClean()); + connectionId_ = null; + } + return connectionIdBuilder_; + } + + private context.ContextOuterClass.ServiceId serviceId_; + + private com.google.protobuf.SingleFieldBuilderV3 serviceIdBuilder_; + + /** + * .context.ServiceId service_id = 2; + * @return Whether the serviceId field is set. + */ + public boolean hasServiceId() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * .context.ServiceId service_id = 2; + * @return The serviceId. + */ + public context.ContextOuterClass.ServiceId getServiceId() { + if (serviceIdBuilder_ == null) { + return serviceId_ == null ? context.ContextOuterClass.ServiceId.getDefaultInstance() : serviceId_; + } else { + return serviceIdBuilder_.getMessage(); + } + } + + /** + * .context.ServiceId service_id = 2; + */ + public Builder setServiceId(context.ContextOuterClass.ServiceId value) { + if (serviceIdBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + serviceId_ = value; + } else { + serviceIdBuilder_.setMessage(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * .context.ServiceId service_id = 2; + */ + public Builder setServiceId(context.ContextOuterClass.ServiceId.Builder builderForValue) { + if (serviceIdBuilder_ == null) { + serviceId_ = builderForValue.build(); + } else { + serviceIdBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * .context.ServiceId service_id = 2; + */ + public Builder mergeServiceId(context.ContextOuterClass.ServiceId value) { + if (serviceIdBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0) && serviceId_ != null && serviceId_ != context.ContextOuterClass.ServiceId.getDefaultInstance()) { + getServiceIdBuilder().mergeFrom(value); + } else { + serviceId_ = value; + } + } else { + serviceIdBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * .context.ServiceId service_id = 2; + */ + public Builder clearServiceId() { + bitField0_ = (bitField0_ & ~0x00000002); + serviceId_ = null; + if (serviceIdBuilder_ != null) { + serviceIdBuilder_.dispose(); + serviceIdBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.ServiceId service_id = 2; + */ + public context.ContextOuterClass.ServiceId.Builder getServiceIdBuilder() { + bitField0_ |= 0x00000002; + onChanged(); + return getServiceIdFieldBuilder().getBuilder(); + } + + /** + * .context.ServiceId service_id = 2; + */ + public context.ContextOuterClass.ServiceIdOrBuilder getServiceIdOrBuilder() { + if (serviceIdBuilder_ != null) { + return serviceIdBuilder_.getMessageOrBuilder(); + } else { + return serviceId_ == null ? context.ContextOuterClass.ServiceId.getDefaultInstance() : serviceId_; + } + } + + /** + * .context.ServiceId service_id = 2; + */ + private com.google.protobuf.SingleFieldBuilderV3 getServiceIdFieldBuilder() { + if (serviceIdBuilder_ == null) { + serviceIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getServiceId(), getParentForChildren(), isClean()); + serviceId_ = null; + } + return serviceIdBuilder_; + } + + private java.util.List pathHopsEndpointIds_ = java.util.Collections.emptyList(); + + private void ensurePathHopsEndpointIdsIsMutable() { + if (!((bitField0_ & 0x00000004) != 0)) { + pathHopsEndpointIds_ = new java.util.ArrayList(pathHopsEndpointIds_); + bitField0_ |= 0x00000004; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3 pathHopsEndpointIdsBuilder_; + + /** + * repeated .context.EndPointId path_hops_endpoint_ids = 3; + */ + public java.util.List getPathHopsEndpointIdsList() { + if (pathHopsEndpointIdsBuilder_ == null) { + return java.util.Collections.unmodifiableList(pathHopsEndpointIds_); + } else { + return pathHopsEndpointIdsBuilder_.getMessageList(); + } + } + + /** + * repeated .context.EndPointId path_hops_endpoint_ids = 3; + */ + public int getPathHopsEndpointIdsCount() { + if (pathHopsEndpointIdsBuilder_ == null) { + return pathHopsEndpointIds_.size(); + } else { + return pathHopsEndpointIdsBuilder_.getCount(); + } + } + + /** + * repeated .context.EndPointId path_hops_endpoint_ids = 3; + */ + public context.ContextOuterClass.EndPointId getPathHopsEndpointIds(int index) { + if (pathHopsEndpointIdsBuilder_ == null) { + return pathHopsEndpointIds_.get(index); + } else { + return pathHopsEndpointIdsBuilder_.getMessage(index); + } + } + + /** + * repeated .context.EndPointId path_hops_endpoint_ids = 3; + */ + public Builder setPathHopsEndpointIds(int index, context.ContextOuterClass.EndPointId value) { + if (pathHopsEndpointIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensurePathHopsEndpointIdsIsMutable(); + pathHopsEndpointIds_.set(index, value); + onChanged(); + } else { + pathHopsEndpointIdsBuilder_.setMessage(index, value); + } + return this; + } + + /** + * repeated .context.EndPointId path_hops_endpoint_ids = 3; + */ + public Builder setPathHopsEndpointIds(int index, context.ContextOuterClass.EndPointId.Builder builderForValue) { + if (pathHopsEndpointIdsBuilder_ == null) { + ensurePathHopsEndpointIdsIsMutable(); + pathHopsEndpointIds_.set(index, builderForValue.build()); + onChanged(); + } else { + pathHopsEndpointIdsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.EndPointId path_hops_endpoint_ids = 3; + */ + public Builder addPathHopsEndpointIds(context.ContextOuterClass.EndPointId value) { + if (pathHopsEndpointIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensurePathHopsEndpointIdsIsMutable(); + pathHopsEndpointIds_.add(value); + onChanged(); + } else { + pathHopsEndpointIdsBuilder_.addMessage(value); + } + return this; + } + + /** + * repeated .context.EndPointId path_hops_endpoint_ids = 3; + */ + public Builder addPathHopsEndpointIds(int index, context.ContextOuterClass.EndPointId value) { + if (pathHopsEndpointIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensurePathHopsEndpointIdsIsMutable(); + pathHopsEndpointIds_.add(index, value); + onChanged(); + } else { + pathHopsEndpointIdsBuilder_.addMessage(index, value); + } + return this; + } + + /** + * repeated .context.EndPointId path_hops_endpoint_ids = 3; + */ + public Builder addPathHopsEndpointIds(context.ContextOuterClass.EndPointId.Builder builderForValue) { + if (pathHopsEndpointIdsBuilder_ == null) { + ensurePathHopsEndpointIdsIsMutable(); + pathHopsEndpointIds_.add(builderForValue.build()); + onChanged(); + } else { + pathHopsEndpointIdsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * repeated .context.EndPointId path_hops_endpoint_ids = 3; + */ + public Builder addPathHopsEndpointIds(int index, context.ContextOuterClass.EndPointId.Builder builderForValue) { + if (pathHopsEndpointIdsBuilder_ == null) { + ensurePathHopsEndpointIdsIsMutable(); + pathHopsEndpointIds_.add(index, builderForValue.build()); + onChanged(); + } else { + pathHopsEndpointIdsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.EndPointId path_hops_endpoint_ids = 3; + */ + public Builder addAllPathHopsEndpointIds(java.lang.Iterable values) { + if (pathHopsEndpointIdsBuilder_ == null) { + ensurePathHopsEndpointIdsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, pathHopsEndpointIds_); + onChanged(); + } else { + pathHopsEndpointIdsBuilder_.addAllMessages(values); + } + return this; + } + + /** + * repeated .context.EndPointId path_hops_endpoint_ids = 3; + */ + public Builder clearPathHopsEndpointIds() { + if (pathHopsEndpointIdsBuilder_ == null) { + pathHopsEndpointIds_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + } else { + pathHopsEndpointIdsBuilder_.clear(); + } + return this; + } + + /** + * repeated .context.EndPointId path_hops_endpoint_ids = 3; + */ + public Builder removePathHopsEndpointIds(int index) { + if (pathHopsEndpointIdsBuilder_ == null) { + ensurePathHopsEndpointIdsIsMutable(); + pathHopsEndpointIds_.remove(index); + onChanged(); + } else { + pathHopsEndpointIdsBuilder_.remove(index); + } + return this; + } + + /** + * repeated .context.EndPointId path_hops_endpoint_ids = 3; + */ + public context.ContextOuterClass.EndPointId.Builder getPathHopsEndpointIdsBuilder(int index) { + return getPathHopsEndpointIdsFieldBuilder().getBuilder(index); + } + + /** + * repeated .context.EndPointId path_hops_endpoint_ids = 3; + */ + public context.ContextOuterClass.EndPointIdOrBuilder getPathHopsEndpointIdsOrBuilder(int index) { + if (pathHopsEndpointIdsBuilder_ == null) { + return pathHopsEndpointIds_.get(index); + } else { + return pathHopsEndpointIdsBuilder_.getMessageOrBuilder(index); + } + } + + /** + * repeated .context.EndPointId path_hops_endpoint_ids = 3; + */ + public java.util.List getPathHopsEndpointIdsOrBuilderList() { + if (pathHopsEndpointIdsBuilder_ != null) { + return pathHopsEndpointIdsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(pathHopsEndpointIds_); + } + } + + /** + * repeated .context.EndPointId path_hops_endpoint_ids = 3; + */ + public context.ContextOuterClass.EndPointId.Builder addPathHopsEndpointIdsBuilder() { + return getPathHopsEndpointIdsFieldBuilder().addBuilder(context.ContextOuterClass.EndPointId.getDefaultInstance()); + } + + /** + * repeated .context.EndPointId path_hops_endpoint_ids = 3; + */ + public context.ContextOuterClass.EndPointId.Builder addPathHopsEndpointIdsBuilder(int index) { + return getPathHopsEndpointIdsFieldBuilder().addBuilder(index, context.ContextOuterClass.EndPointId.getDefaultInstance()); + } + + /** + * repeated .context.EndPointId path_hops_endpoint_ids = 3; + */ + public java.util.List getPathHopsEndpointIdsBuilderList() { + return getPathHopsEndpointIdsFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3 getPathHopsEndpointIdsFieldBuilder() { + if (pathHopsEndpointIdsBuilder_ == null) { + pathHopsEndpointIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3(pathHopsEndpointIds_, ((bitField0_ & 0x00000004) != 0), getParentForChildren(), isClean()); + pathHopsEndpointIds_ = null; + } + return pathHopsEndpointIdsBuilder_; + } + + private java.util.List subServiceIds_ = java.util.Collections.emptyList(); + + private void ensureSubServiceIdsIsMutable() { + if (!((bitField0_ & 0x00000008) != 0)) { + subServiceIds_ = new java.util.ArrayList(subServiceIds_); + bitField0_ |= 0x00000008; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3 subServiceIdsBuilder_; + + /** + * repeated .context.ServiceId sub_service_ids = 4; + */ + public java.util.List getSubServiceIdsList() { + if (subServiceIdsBuilder_ == null) { + return java.util.Collections.unmodifiableList(subServiceIds_); + } else { + return subServiceIdsBuilder_.getMessageList(); + } + } + + /** + * repeated .context.ServiceId sub_service_ids = 4; + */ + public int getSubServiceIdsCount() { + if (subServiceIdsBuilder_ == null) { + return subServiceIds_.size(); + } else { + return subServiceIdsBuilder_.getCount(); + } + } + + /** + * repeated .context.ServiceId sub_service_ids = 4; + */ + public context.ContextOuterClass.ServiceId getSubServiceIds(int index) { + if (subServiceIdsBuilder_ == null) { + return subServiceIds_.get(index); + } else { + return subServiceIdsBuilder_.getMessage(index); + } + } + + /** + * repeated .context.ServiceId sub_service_ids = 4; + */ + public Builder setSubServiceIds(int index, context.ContextOuterClass.ServiceId value) { + if (subServiceIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureSubServiceIdsIsMutable(); + subServiceIds_.set(index, value); + onChanged(); + } else { + subServiceIdsBuilder_.setMessage(index, value); + } + return this; + } + + /** + * repeated .context.ServiceId sub_service_ids = 4; + */ + public Builder setSubServiceIds(int index, context.ContextOuterClass.ServiceId.Builder builderForValue) { + if (subServiceIdsBuilder_ == null) { + ensureSubServiceIdsIsMutable(); + subServiceIds_.set(index, builderForValue.build()); + onChanged(); + } else { + subServiceIdsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.ServiceId sub_service_ids = 4; + */ + public Builder addSubServiceIds(context.ContextOuterClass.ServiceId value) { + if (subServiceIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureSubServiceIdsIsMutable(); + subServiceIds_.add(value); + onChanged(); + } else { + subServiceIdsBuilder_.addMessage(value); + } + return this; + } + + /** + * repeated .context.ServiceId sub_service_ids = 4; + */ + public Builder addSubServiceIds(int index, context.ContextOuterClass.ServiceId value) { + if (subServiceIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureSubServiceIdsIsMutable(); + subServiceIds_.add(index, value); + onChanged(); + } else { + subServiceIdsBuilder_.addMessage(index, value); + } + return this; + } + + /** + * repeated .context.ServiceId sub_service_ids = 4; + */ + public Builder addSubServiceIds(context.ContextOuterClass.ServiceId.Builder builderForValue) { + if (subServiceIdsBuilder_ == null) { + ensureSubServiceIdsIsMutable(); + subServiceIds_.add(builderForValue.build()); + onChanged(); + } else { + subServiceIdsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * repeated .context.ServiceId sub_service_ids = 4; + */ + public Builder addSubServiceIds(int index, context.ContextOuterClass.ServiceId.Builder builderForValue) { + if (subServiceIdsBuilder_ == null) { + ensureSubServiceIdsIsMutable(); + subServiceIds_.add(index, builderForValue.build()); + onChanged(); + } else { + subServiceIdsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.ServiceId sub_service_ids = 4; + */ + public Builder addAllSubServiceIds(java.lang.Iterable values) { + if (subServiceIdsBuilder_ == null) { + ensureSubServiceIdsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, subServiceIds_); + onChanged(); + } else { + subServiceIdsBuilder_.addAllMessages(values); + } + return this; + } + + /** + * repeated .context.ServiceId sub_service_ids = 4; + */ + public Builder clearSubServiceIds() { + if (subServiceIdsBuilder_ == null) { + subServiceIds_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000008); + onChanged(); + } else { + subServiceIdsBuilder_.clear(); + } + return this; + } + + /** + * repeated .context.ServiceId sub_service_ids = 4; + */ + public Builder removeSubServiceIds(int index) { + if (subServiceIdsBuilder_ == null) { + ensureSubServiceIdsIsMutable(); + subServiceIds_.remove(index); + onChanged(); + } else { + subServiceIdsBuilder_.remove(index); + } + return this; + } + + /** + * repeated .context.ServiceId sub_service_ids = 4; + */ + public context.ContextOuterClass.ServiceId.Builder getSubServiceIdsBuilder(int index) { + return getSubServiceIdsFieldBuilder().getBuilder(index); + } + + /** + * repeated .context.ServiceId sub_service_ids = 4; + */ + public context.ContextOuterClass.ServiceIdOrBuilder getSubServiceIdsOrBuilder(int index) { + if (subServiceIdsBuilder_ == null) { + return subServiceIds_.get(index); + } else { + return subServiceIdsBuilder_.getMessageOrBuilder(index); + } + } + + /** + * repeated .context.ServiceId sub_service_ids = 4; + */ + public java.util.List getSubServiceIdsOrBuilderList() { + if (subServiceIdsBuilder_ != null) { + return subServiceIdsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(subServiceIds_); + } + } + + /** + * repeated .context.ServiceId sub_service_ids = 4; + */ + public context.ContextOuterClass.ServiceId.Builder addSubServiceIdsBuilder() { + return getSubServiceIdsFieldBuilder().addBuilder(context.ContextOuterClass.ServiceId.getDefaultInstance()); + } + + /** + * repeated .context.ServiceId sub_service_ids = 4; + */ + public context.ContextOuterClass.ServiceId.Builder addSubServiceIdsBuilder(int index) { + return getSubServiceIdsFieldBuilder().addBuilder(index, context.ContextOuterClass.ServiceId.getDefaultInstance()); + } + + /** + * repeated .context.ServiceId sub_service_ids = 4; + */ + public java.util.List getSubServiceIdsBuilderList() { + return getSubServiceIdsFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3 getSubServiceIdsFieldBuilder() { + if (subServiceIdsBuilder_ == null) { + subServiceIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3(subServiceIds_, ((bitField0_ & 0x00000008) != 0), getParentForChildren(), isClean()); + subServiceIds_ = null; + } + return subServiceIdsBuilder_; + } + + private context.ContextOuterClass.ConnectionSettings settings_; + + private com.google.protobuf.SingleFieldBuilderV3 settingsBuilder_; + + /** + * .context.ConnectionSettings settings = 5; + * @return Whether the settings field is set. + */ + public boolean hasSettings() { + return ((bitField0_ & 0x00000010) != 0); + } + + /** + * .context.ConnectionSettings settings = 5; + * @return The settings. + */ + public context.ContextOuterClass.ConnectionSettings getSettings() { + if (settingsBuilder_ == null) { + return settings_ == null ? context.ContextOuterClass.ConnectionSettings.getDefaultInstance() : settings_; + } else { + return settingsBuilder_.getMessage(); + } + } + + /** + * .context.ConnectionSettings settings = 5; + */ + public Builder setSettings(context.ContextOuterClass.ConnectionSettings value) { + if (settingsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + settings_ = value; + } else { + settingsBuilder_.setMessage(value); + } + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + /** + * .context.ConnectionSettings settings = 5; + */ + public Builder setSettings(context.ContextOuterClass.ConnectionSettings.Builder builderForValue) { + if (settingsBuilder_ == null) { + settings_ = builderForValue.build(); + } else { + settingsBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + /** + * .context.ConnectionSettings settings = 5; + */ + public Builder mergeSettings(context.ContextOuterClass.ConnectionSettings value) { + if (settingsBuilder_ == null) { + if (((bitField0_ & 0x00000010) != 0) && settings_ != null && settings_ != context.ContextOuterClass.ConnectionSettings.getDefaultInstance()) { + getSettingsBuilder().mergeFrom(value); + } else { + settings_ = value; + } + } else { + settingsBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + /** + * .context.ConnectionSettings settings = 5; + */ + public Builder clearSettings() { + bitField0_ = (bitField0_ & ~0x00000010); + settings_ = null; + if (settingsBuilder_ != null) { + settingsBuilder_.dispose(); + settingsBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.ConnectionSettings settings = 5; + */ + public context.ContextOuterClass.ConnectionSettings.Builder getSettingsBuilder() { + bitField0_ |= 0x00000010; + onChanged(); + return getSettingsFieldBuilder().getBuilder(); + } + + /** + * .context.ConnectionSettings settings = 5; + */ + public context.ContextOuterClass.ConnectionSettingsOrBuilder getSettingsOrBuilder() { + if (settingsBuilder_ != null) { + return settingsBuilder_.getMessageOrBuilder(); + } else { + return settings_ == null ? context.ContextOuterClass.ConnectionSettings.getDefaultInstance() : settings_; + } + } + + /** + * .context.ConnectionSettings settings = 5; + */ + private com.google.protobuf.SingleFieldBuilderV3 getSettingsFieldBuilder() { + if (settingsBuilder_ == null) { + settingsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getSettings(), getParentForChildren(), isClean()); + settings_ = null; + } + return settingsBuilder_; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.Connection) + } + + // @@protoc_insertion_point(class_scope:context.Connection) + private static final context.ContextOuterClass.Connection DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.Connection(); + } + + public static context.ContextOuterClass.Connection getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public Connection parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.Connection getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface ConnectionIdListOrBuilder extends // @@protoc_insertion_point(interface_extends:context.ConnectionIdList) + com.google.protobuf.MessageOrBuilder { + + /** + * repeated .context.ConnectionId connection_ids = 1; + */ + java.util.List getConnectionIdsList(); + + /** + * repeated .context.ConnectionId connection_ids = 1; + */ + context.ContextOuterClass.ConnectionId getConnectionIds(int index); + + /** + * repeated .context.ConnectionId connection_ids = 1; + */ + int getConnectionIdsCount(); + + /** + * repeated .context.ConnectionId connection_ids = 1; + */ + java.util.List getConnectionIdsOrBuilderList(); + + /** + * repeated .context.ConnectionId connection_ids = 1; + */ + context.ContextOuterClass.ConnectionIdOrBuilder getConnectionIdsOrBuilder(int index); + } + + /** + * Protobuf type {@code context.ConnectionIdList} + */ + public static final class ConnectionIdList extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.ConnectionIdList) + ConnectionIdListOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use ConnectionIdList.newBuilder() to construct. + private ConnectionIdList(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private ConnectionIdList() { + connectionIds_ = java.util.Collections.emptyList(); + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new ConnectionIdList(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_ConnectionIdList_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_ConnectionIdList_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.ConnectionIdList.class, context.ContextOuterClass.ConnectionIdList.Builder.class); + } + + public static final int CONNECTION_IDS_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private java.util.List connectionIds_; + + /** + * repeated .context.ConnectionId connection_ids = 1; + */ + @java.lang.Override + public java.util.List getConnectionIdsList() { + return connectionIds_; + } + + /** + * repeated .context.ConnectionId connection_ids = 1; + */ + @java.lang.Override + public java.util.List getConnectionIdsOrBuilderList() { + return connectionIds_; + } + + /** + * repeated .context.ConnectionId connection_ids = 1; + */ + @java.lang.Override + public int getConnectionIdsCount() { + return connectionIds_.size(); + } + + /** + * repeated .context.ConnectionId connection_ids = 1; + */ + @java.lang.Override + public context.ContextOuterClass.ConnectionId getConnectionIds(int index) { + return connectionIds_.get(index); + } + + /** + * repeated .context.ConnectionId connection_ids = 1; + */ + @java.lang.Override + public context.ContextOuterClass.ConnectionIdOrBuilder getConnectionIdsOrBuilder(int index) { + return connectionIds_.get(index); + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + for (int i = 0; i < connectionIds_.size(); i++) { + output.writeMessage(1, connectionIds_.get(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + for (int i = 0; i < connectionIds_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, connectionIds_.get(i)); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.ConnectionIdList)) { + return super.equals(obj); + } + context.ContextOuterClass.ConnectionIdList other = (context.ContextOuterClass.ConnectionIdList) obj; + if (!getConnectionIdsList().equals(other.getConnectionIdsList())) + return false; + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getConnectionIdsCount() > 0) { + hash = (37 * hash) + CONNECTION_IDS_FIELD_NUMBER; + hash = (53 * hash) + getConnectionIdsList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.ConnectionIdList parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ConnectionIdList parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ConnectionIdList parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ConnectionIdList parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ConnectionIdList parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ConnectionIdList parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ConnectionIdList parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ConnectionIdList parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.ConnectionIdList parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ConnectionIdList parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.ConnectionIdList parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ConnectionIdList parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.ConnectionIdList prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code context.ConnectionIdList} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.ConnectionIdList) + context.ContextOuterClass.ConnectionIdListOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_ConnectionIdList_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_ConnectionIdList_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.ConnectionIdList.class, context.ContextOuterClass.ConnectionIdList.Builder.class); + } + + // Construct using context.ContextOuterClass.ConnectionIdList.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + if (connectionIdsBuilder_ == null) { + connectionIds_ = java.util.Collections.emptyList(); + } else { + connectionIds_ = null; + connectionIdsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_ConnectionIdList_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.ConnectionIdList getDefaultInstanceForType() { + return context.ContextOuterClass.ConnectionIdList.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.ConnectionIdList build() { + context.ContextOuterClass.ConnectionIdList result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.ConnectionIdList buildPartial() { + context.ContextOuterClass.ConnectionIdList result = new context.ContextOuterClass.ConnectionIdList(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(context.ContextOuterClass.ConnectionIdList result) { + if (connectionIdsBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + connectionIds_ = java.util.Collections.unmodifiableList(connectionIds_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.connectionIds_ = connectionIds_; + } else { + result.connectionIds_ = connectionIdsBuilder_.build(); + } + } + + private void buildPartial0(context.ContextOuterClass.ConnectionIdList result) { + int from_bitField0_ = bitField0_; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.ConnectionIdList) { + return mergeFrom((context.ContextOuterClass.ConnectionIdList) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.ConnectionIdList other) { + if (other == context.ContextOuterClass.ConnectionIdList.getDefaultInstance()) + return this; + if (connectionIdsBuilder_ == null) { + if (!other.connectionIds_.isEmpty()) { + if (connectionIds_.isEmpty()) { + connectionIds_ = other.connectionIds_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureConnectionIdsIsMutable(); + connectionIds_.addAll(other.connectionIds_); + } + onChanged(); + } + } else { + if (!other.connectionIds_.isEmpty()) { + if (connectionIdsBuilder_.isEmpty()) { + connectionIdsBuilder_.dispose(); + connectionIdsBuilder_ = null; + connectionIds_ = other.connectionIds_; + bitField0_ = (bitField0_ & ~0x00000001); + connectionIdsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getConnectionIdsFieldBuilder() : null; + } else { + connectionIdsBuilder_.addAllMessages(other.connectionIds_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + context.ContextOuterClass.ConnectionId m = input.readMessage(context.ContextOuterClass.ConnectionId.parser(), extensionRegistry); + if (connectionIdsBuilder_ == null) { + ensureConnectionIdsIsMutable(); + connectionIds_.add(m); + } else { + connectionIdsBuilder_.addMessage(m); + } + break; + } + // case 10 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private java.util.List connectionIds_ = java.util.Collections.emptyList(); + + private void ensureConnectionIdsIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + connectionIds_ = new java.util.ArrayList(connectionIds_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3 connectionIdsBuilder_; + + /** + * repeated .context.ConnectionId connection_ids = 1; + */ + public java.util.List getConnectionIdsList() { + if (connectionIdsBuilder_ == null) { + return java.util.Collections.unmodifiableList(connectionIds_); + } else { + return connectionIdsBuilder_.getMessageList(); + } + } + + /** + * repeated .context.ConnectionId connection_ids = 1; + */ + public int getConnectionIdsCount() { + if (connectionIdsBuilder_ == null) { + return connectionIds_.size(); + } else { + return connectionIdsBuilder_.getCount(); + } + } + + /** + * repeated .context.ConnectionId connection_ids = 1; + */ + public context.ContextOuterClass.ConnectionId getConnectionIds(int index) { + if (connectionIdsBuilder_ == null) { + return connectionIds_.get(index); + } else { + return connectionIdsBuilder_.getMessage(index); + } + } + + /** + * repeated .context.ConnectionId connection_ids = 1; + */ + public Builder setConnectionIds(int index, context.ContextOuterClass.ConnectionId value) { + if (connectionIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureConnectionIdsIsMutable(); + connectionIds_.set(index, value); + onChanged(); + } else { + connectionIdsBuilder_.setMessage(index, value); + } + return this; + } + + /** + * repeated .context.ConnectionId connection_ids = 1; + */ + public Builder setConnectionIds(int index, context.ContextOuterClass.ConnectionId.Builder builderForValue) { + if (connectionIdsBuilder_ == null) { + ensureConnectionIdsIsMutable(); + connectionIds_.set(index, builderForValue.build()); + onChanged(); + } else { + connectionIdsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.ConnectionId connection_ids = 1; + */ + public Builder addConnectionIds(context.ContextOuterClass.ConnectionId value) { + if (connectionIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureConnectionIdsIsMutable(); + connectionIds_.add(value); + onChanged(); + } else { + connectionIdsBuilder_.addMessage(value); + } + return this; + } + + /** + * repeated .context.ConnectionId connection_ids = 1; + */ + public Builder addConnectionIds(int index, context.ContextOuterClass.ConnectionId value) { + if (connectionIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureConnectionIdsIsMutable(); + connectionIds_.add(index, value); + onChanged(); + } else { + connectionIdsBuilder_.addMessage(index, value); + } + return this; + } + + /** + * repeated .context.ConnectionId connection_ids = 1; + */ + public Builder addConnectionIds(context.ContextOuterClass.ConnectionId.Builder builderForValue) { + if (connectionIdsBuilder_ == null) { + ensureConnectionIdsIsMutable(); + connectionIds_.add(builderForValue.build()); + onChanged(); + } else { + connectionIdsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * repeated .context.ConnectionId connection_ids = 1; + */ + public Builder addConnectionIds(int index, context.ContextOuterClass.ConnectionId.Builder builderForValue) { + if (connectionIdsBuilder_ == null) { + ensureConnectionIdsIsMutable(); + connectionIds_.add(index, builderForValue.build()); + onChanged(); + } else { + connectionIdsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.ConnectionId connection_ids = 1; + */ + public Builder addAllConnectionIds(java.lang.Iterable values) { + if (connectionIdsBuilder_ == null) { + ensureConnectionIdsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, connectionIds_); + onChanged(); + } else { + connectionIdsBuilder_.addAllMessages(values); + } + return this; + } + + /** + * repeated .context.ConnectionId connection_ids = 1; + */ + public Builder clearConnectionIds() { + if (connectionIdsBuilder_ == null) { + connectionIds_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + connectionIdsBuilder_.clear(); + } + return this; + } + + /** + * repeated .context.ConnectionId connection_ids = 1; + */ + public Builder removeConnectionIds(int index) { + if (connectionIdsBuilder_ == null) { + ensureConnectionIdsIsMutable(); + connectionIds_.remove(index); + onChanged(); + } else { + connectionIdsBuilder_.remove(index); + } + return this; + } + + /** + * repeated .context.ConnectionId connection_ids = 1; + */ + public context.ContextOuterClass.ConnectionId.Builder getConnectionIdsBuilder(int index) { + return getConnectionIdsFieldBuilder().getBuilder(index); + } + + /** + * repeated .context.ConnectionId connection_ids = 1; + */ + public context.ContextOuterClass.ConnectionIdOrBuilder getConnectionIdsOrBuilder(int index) { + if (connectionIdsBuilder_ == null) { + return connectionIds_.get(index); + } else { + return connectionIdsBuilder_.getMessageOrBuilder(index); + } + } + + /** + * repeated .context.ConnectionId connection_ids = 1; + */ + public java.util.List getConnectionIdsOrBuilderList() { + if (connectionIdsBuilder_ != null) { + return connectionIdsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(connectionIds_); + } + } + + /** + * repeated .context.ConnectionId connection_ids = 1; + */ + public context.ContextOuterClass.ConnectionId.Builder addConnectionIdsBuilder() { + return getConnectionIdsFieldBuilder().addBuilder(context.ContextOuterClass.ConnectionId.getDefaultInstance()); + } + + /** + * repeated .context.ConnectionId connection_ids = 1; + */ + public context.ContextOuterClass.ConnectionId.Builder addConnectionIdsBuilder(int index) { + return getConnectionIdsFieldBuilder().addBuilder(index, context.ContextOuterClass.ConnectionId.getDefaultInstance()); + } + + /** + * repeated .context.ConnectionId connection_ids = 1; + */ + public java.util.List getConnectionIdsBuilderList() { + return getConnectionIdsFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3 getConnectionIdsFieldBuilder() { + if (connectionIdsBuilder_ == null) { + connectionIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3(connectionIds_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean()); + connectionIds_ = null; + } + return connectionIdsBuilder_; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.ConnectionIdList) + } + + // @@protoc_insertion_point(class_scope:context.ConnectionIdList) + private static final context.ContextOuterClass.ConnectionIdList DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.ConnectionIdList(); + } + + public static context.ContextOuterClass.ConnectionIdList getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public ConnectionIdList parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.ConnectionIdList getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface ConnectionListOrBuilder extends // @@protoc_insertion_point(interface_extends:context.ConnectionList) + com.google.protobuf.MessageOrBuilder { + + /** + * repeated .context.Connection connections = 1; + */ + java.util.List getConnectionsList(); + + /** + * repeated .context.Connection connections = 1; + */ + context.ContextOuterClass.Connection getConnections(int index); + + /** + * repeated .context.Connection connections = 1; + */ + int getConnectionsCount(); + + /** + * repeated .context.Connection connections = 1; + */ + java.util.List getConnectionsOrBuilderList(); + + /** + * repeated .context.Connection connections = 1; + */ + context.ContextOuterClass.ConnectionOrBuilder getConnectionsOrBuilder(int index); + } + + /** + * Protobuf type {@code context.ConnectionList} + */ + public static final class ConnectionList extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.ConnectionList) + ConnectionListOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use ConnectionList.newBuilder() to construct. + private ConnectionList(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private ConnectionList() { + connections_ = java.util.Collections.emptyList(); + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new ConnectionList(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_ConnectionList_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_ConnectionList_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.ConnectionList.class, context.ContextOuterClass.ConnectionList.Builder.class); + } + + public static final int CONNECTIONS_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private java.util.List connections_; + + /** + * repeated .context.Connection connections = 1; + */ + @java.lang.Override + public java.util.List getConnectionsList() { + return connections_; + } + + /** + * repeated .context.Connection connections = 1; + */ + @java.lang.Override + public java.util.List getConnectionsOrBuilderList() { + return connections_; + } + + /** + * repeated .context.Connection connections = 1; + */ + @java.lang.Override + public int getConnectionsCount() { + return connections_.size(); + } + + /** + * repeated .context.Connection connections = 1; + */ + @java.lang.Override + public context.ContextOuterClass.Connection getConnections(int index) { + return connections_.get(index); + } + + /** + * repeated .context.Connection connections = 1; + */ + @java.lang.Override + public context.ContextOuterClass.ConnectionOrBuilder getConnectionsOrBuilder(int index) { + return connections_.get(index); + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + for (int i = 0; i < connections_.size(); i++) { + output.writeMessage(1, connections_.get(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + for (int i = 0; i < connections_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, connections_.get(i)); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.ConnectionList)) { + return super.equals(obj); + } + context.ContextOuterClass.ConnectionList other = (context.ContextOuterClass.ConnectionList) obj; + if (!getConnectionsList().equals(other.getConnectionsList())) + return false; + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getConnectionsCount() > 0) { + hash = (37 * hash) + CONNECTIONS_FIELD_NUMBER; + hash = (53 * hash) + getConnectionsList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.ConnectionList parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ConnectionList parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ConnectionList parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ConnectionList parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ConnectionList parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ConnectionList parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ConnectionList parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ConnectionList parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.ConnectionList parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ConnectionList parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.ConnectionList parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ConnectionList parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.ConnectionList prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code context.ConnectionList} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.ConnectionList) + context.ContextOuterClass.ConnectionListOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_ConnectionList_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_ConnectionList_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.ConnectionList.class, context.ContextOuterClass.ConnectionList.Builder.class); + } + + // Construct using context.ContextOuterClass.ConnectionList.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + if (connectionsBuilder_ == null) { + connections_ = java.util.Collections.emptyList(); + } else { + connections_ = null; + connectionsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_ConnectionList_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.ConnectionList getDefaultInstanceForType() { + return context.ContextOuterClass.ConnectionList.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.ConnectionList build() { + context.ContextOuterClass.ConnectionList result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.ConnectionList buildPartial() { + context.ContextOuterClass.ConnectionList result = new context.ContextOuterClass.ConnectionList(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(context.ContextOuterClass.ConnectionList result) { + if (connectionsBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + connections_ = java.util.Collections.unmodifiableList(connections_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.connections_ = connections_; + } else { + result.connections_ = connectionsBuilder_.build(); + } + } + + private void buildPartial0(context.ContextOuterClass.ConnectionList result) { + int from_bitField0_ = bitField0_; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.ConnectionList) { + return mergeFrom((context.ContextOuterClass.ConnectionList) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.ConnectionList other) { + if (other == context.ContextOuterClass.ConnectionList.getDefaultInstance()) + return this; + if (connectionsBuilder_ == null) { + if (!other.connections_.isEmpty()) { + if (connections_.isEmpty()) { + connections_ = other.connections_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureConnectionsIsMutable(); + connections_.addAll(other.connections_); + } + onChanged(); + } + } else { + if (!other.connections_.isEmpty()) { + if (connectionsBuilder_.isEmpty()) { + connectionsBuilder_.dispose(); + connectionsBuilder_ = null; + connections_ = other.connections_; + bitField0_ = (bitField0_ & ~0x00000001); + connectionsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getConnectionsFieldBuilder() : null; + } else { + connectionsBuilder_.addAllMessages(other.connections_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + context.ContextOuterClass.Connection m = input.readMessage(context.ContextOuterClass.Connection.parser(), extensionRegistry); + if (connectionsBuilder_ == null) { + ensureConnectionsIsMutable(); + connections_.add(m); + } else { + connectionsBuilder_.addMessage(m); + } + break; + } + // case 10 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private java.util.List connections_ = java.util.Collections.emptyList(); + + private void ensureConnectionsIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + connections_ = new java.util.ArrayList(connections_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3 connectionsBuilder_; + + /** + * repeated .context.Connection connections = 1; + */ + public java.util.List getConnectionsList() { + if (connectionsBuilder_ == null) { + return java.util.Collections.unmodifiableList(connections_); + } else { + return connectionsBuilder_.getMessageList(); + } + } + + /** + * repeated .context.Connection connections = 1; + */ + public int getConnectionsCount() { + if (connectionsBuilder_ == null) { + return connections_.size(); + } else { + return connectionsBuilder_.getCount(); + } + } + + /** + * repeated .context.Connection connections = 1; + */ + public context.ContextOuterClass.Connection getConnections(int index) { + if (connectionsBuilder_ == null) { + return connections_.get(index); + } else { + return connectionsBuilder_.getMessage(index); + } + } + + /** + * repeated .context.Connection connections = 1; + */ + public Builder setConnections(int index, context.ContextOuterClass.Connection value) { + if (connectionsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureConnectionsIsMutable(); + connections_.set(index, value); + onChanged(); + } else { + connectionsBuilder_.setMessage(index, value); + } + return this; + } + + /** + * repeated .context.Connection connections = 1; + */ + public Builder setConnections(int index, context.ContextOuterClass.Connection.Builder builderForValue) { + if (connectionsBuilder_ == null) { + ensureConnectionsIsMutable(); + connections_.set(index, builderForValue.build()); + onChanged(); + } else { + connectionsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.Connection connections = 1; + */ + public Builder addConnections(context.ContextOuterClass.Connection value) { + if (connectionsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureConnectionsIsMutable(); + connections_.add(value); + onChanged(); + } else { + connectionsBuilder_.addMessage(value); + } + return this; + } + + /** + * repeated .context.Connection connections = 1; + */ + public Builder addConnections(int index, context.ContextOuterClass.Connection value) { + if (connectionsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureConnectionsIsMutable(); + connections_.add(index, value); + onChanged(); + } else { + connectionsBuilder_.addMessage(index, value); + } + return this; + } + + /** + * repeated .context.Connection connections = 1; + */ + public Builder addConnections(context.ContextOuterClass.Connection.Builder builderForValue) { + if (connectionsBuilder_ == null) { + ensureConnectionsIsMutable(); + connections_.add(builderForValue.build()); + onChanged(); + } else { + connectionsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * repeated .context.Connection connections = 1; + */ + public Builder addConnections(int index, context.ContextOuterClass.Connection.Builder builderForValue) { + if (connectionsBuilder_ == null) { + ensureConnectionsIsMutable(); + connections_.add(index, builderForValue.build()); + onChanged(); + } else { + connectionsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.Connection connections = 1; + */ + public Builder addAllConnections(java.lang.Iterable values) { + if (connectionsBuilder_ == null) { + ensureConnectionsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, connections_); + onChanged(); + } else { + connectionsBuilder_.addAllMessages(values); + } + return this; + } + + /** + * repeated .context.Connection connections = 1; + */ + public Builder clearConnections() { + if (connectionsBuilder_ == null) { + connections_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + connectionsBuilder_.clear(); + } + return this; + } + + /** + * repeated .context.Connection connections = 1; + */ + public Builder removeConnections(int index) { + if (connectionsBuilder_ == null) { + ensureConnectionsIsMutable(); + connections_.remove(index); + onChanged(); + } else { + connectionsBuilder_.remove(index); + } + return this; + } + + /** + * repeated .context.Connection connections = 1; + */ + public context.ContextOuterClass.Connection.Builder getConnectionsBuilder(int index) { + return getConnectionsFieldBuilder().getBuilder(index); + } + + /** + * repeated .context.Connection connections = 1; + */ + public context.ContextOuterClass.ConnectionOrBuilder getConnectionsOrBuilder(int index) { + if (connectionsBuilder_ == null) { + return connections_.get(index); + } else { + return connectionsBuilder_.getMessageOrBuilder(index); + } + } + + /** + * repeated .context.Connection connections = 1; + */ + public java.util.List getConnectionsOrBuilderList() { + if (connectionsBuilder_ != null) { + return connectionsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(connections_); + } + } + + /** + * repeated .context.Connection connections = 1; + */ + public context.ContextOuterClass.Connection.Builder addConnectionsBuilder() { + return getConnectionsFieldBuilder().addBuilder(context.ContextOuterClass.Connection.getDefaultInstance()); + } + + /** + * repeated .context.Connection connections = 1; + */ + public context.ContextOuterClass.Connection.Builder addConnectionsBuilder(int index) { + return getConnectionsFieldBuilder().addBuilder(index, context.ContextOuterClass.Connection.getDefaultInstance()); + } + + /** + * repeated .context.Connection connections = 1; + */ + public java.util.List getConnectionsBuilderList() { + return getConnectionsFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3 getConnectionsFieldBuilder() { + if (connectionsBuilder_ == null) { + connectionsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3(connections_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean()); + connections_ = null; + } + return connectionsBuilder_; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.ConnectionList) + } + + // @@protoc_insertion_point(class_scope:context.ConnectionList) + private static final context.ContextOuterClass.ConnectionList DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.ConnectionList(); + } + + public static context.ContextOuterClass.ConnectionList getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public ConnectionList parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.ConnectionList getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface ConnectionEventOrBuilder extends // @@protoc_insertion_point(interface_extends:context.ConnectionEvent) + com.google.protobuf.MessageOrBuilder { + + /** + * .context.Event event = 1; + * @return Whether the event field is set. + */ + boolean hasEvent(); + + /** + * .context.Event event = 1; + * @return The event. + */ + context.ContextOuterClass.Event getEvent(); + + /** + * .context.Event event = 1; + */ + context.ContextOuterClass.EventOrBuilder getEventOrBuilder(); + + /** + * .context.ConnectionId connection_id = 2; + * @return Whether the connectionId field is set. + */ + boolean hasConnectionId(); + + /** + * .context.ConnectionId connection_id = 2; + * @return The connectionId. + */ + context.ContextOuterClass.ConnectionId getConnectionId(); + + /** + * .context.ConnectionId connection_id = 2; + */ + context.ContextOuterClass.ConnectionIdOrBuilder getConnectionIdOrBuilder(); + } + + /** + * Protobuf type {@code context.ConnectionEvent} + */ + public static final class ConnectionEvent extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.ConnectionEvent) + ConnectionEventOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use ConnectionEvent.newBuilder() to construct. + private ConnectionEvent(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private ConnectionEvent() { + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new ConnectionEvent(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_ConnectionEvent_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_ConnectionEvent_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.ConnectionEvent.class, context.ContextOuterClass.ConnectionEvent.Builder.class); + } + + public static final int EVENT_FIELD_NUMBER = 1; + + private context.ContextOuterClass.Event event_; + + /** + * .context.Event event = 1; + * @return Whether the event field is set. + */ + @java.lang.Override + public boolean hasEvent() { + return event_ != null; + } + + /** + * .context.Event event = 1; + * @return The event. + */ + @java.lang.Override + public context.ContextOuterClass.Event getEvent() { + return event_ == null ? context.ContextOuterClass.Event.getDefaultInstance() : event_; + } + + /** + * .context.Event event = 1; + */ + @java.lang.Override + public context.ContextOuterClass.EventOrBuilder getEventOrBuilder() { + return event_ == null ? context.ContextOuterClass.Event.getDefaultInstance() : event_; + } + + public static final int CONNECTION_ID_FIELD_NUMBER = 2; + + private context.ContextOuterClass.ConnectionId connectionId_; + + /** + * .context.ConnectionId connection_id = 2; + * @return Whether the connectionId field is set. + */ + @java.lang.Override + public boolean hasConnectionId() { + return connectionId_ != null; + } + + /** + * .context.ConnectionId connection_id = 2; + * @return The connectionId. + */ + @java.lang.Override + public context.ContextOuterClass.ConnectionId getConnectionId() { + return connectionId_ == null ? context.ContextOuterClass.ConnectionId.getDefaultInstance() : connectionId_; + } + + /** + * .context.ConnectionId connection_id = 2; + */ + @java.lang.Override + public context.ContextOuterClass.ConnectionIdOrBuilder getConnectionIdOrBuilder() { + return connectionId_ == null ? context.ContextOuterClass.ConnectionId.getDefaultInstance() : connectionId_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (event_ != null) { + output.writeMessage(1, getEvent()); + } + if (connectionId_ != null) { + output.writeMessage(2, getConnectionId()); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + if (event_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getEvent()); + } + if (connectionId_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getConnectionId()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.ConnectionEvent)) { + return super.equals(obj); + } + context.ContextOuterClass.ConnectionEvent other = (context.ContextOuterClass.ConnectionEvent) obj; + if (hasEvent() != other.hasEvent()) + return false; + if (hasEvent()) { + if (!getEvent().equals(other.getEvent())) + return false; + } + if (hasConnectionId() != other.hasConnectionId()) + return false; + if (hasConnectionId()) { + if (!getConnectionId().equals(other.getConnectionId())) + return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasEvent()) { + hash = (37 * hash) + EVENT_FIELD_NUMBER; + hash = (53 * hash) + getEvent().hashCode(); + } + if (hasConnectionId()) { + hash = (37 * hash) + CONNECTION_ID_FIELD_NUMBER; + hash = (53 * hash) + getConnectionId().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.ConnectionEvent parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ConnectionEvent parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ConnectionEvent parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ConnectionEvent parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ConnectionEvent parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ConnectionEvent parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ConnectionEvent parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ConnectionEvent parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.ConnectionEvent parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ConnectionEvent parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.ConnectionEvent parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ConnectionEvent parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.ConnectionEvent prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code context.ConnectionEvent} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.ConnectionEvent) + context.ContextOuterClass.ConnectionEventOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_ConnectionEvent_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_ConnectionEvent_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.ConnectionEvent.class, context.ContextOuterClass.ConnectionEvent.Builder.class); + } + + // Construct using context.ContextOuterClass.ConnectionEvent.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + event_ = null; + if (eventBuilder_ != null) { + eventBuilder_.dispose(); + eventBuilder_ = null; + } + connectionId_ = null; + if (connectionIdBuilder_ != null) { + connectionIdBuilder_.dispose(); + connectionIdBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_ConnectionEvent_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.ConnectionEvent getDefaultInstanceForType() { + return context.ContextOuterClass.ConnectionEvent.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.ConnectionEvent build() { + context.ContextOuterClass.ConnectionEvent result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.ConnectionEvent buildPartial() { + context.ContextOuterClass.ConnectionEvent result = new context.ContextOuterClass.ConnectionEvent(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(context.ContextOuterClass.ConnectionEvent result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.event_ = eventBuilder_ == null ? event_ : eventBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.connectionId_ = connectionIdBuilder_ == null ? connectionId_ : connectionIdBuilder_.build(); + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.ConnectionEvent) { + return mergeFrom((context.ContextOuterClass.ConnectionEvent) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.ConnectionEvent other) { + if (other == context.ContextOuterClass.ConnectionEvent.getDefaultInstance()) + return this; + if (other.hasEvent()) { + mergeEvent(other.getEvent()); + } + if (other.hasConnectionId()) { + mergeConnectionId(other.getConnectionId()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getEventFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + input.readMessage(getConnectionIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000002; + break; + } + // case 18 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private context.ContextOuterClass.Event event_; + + private com.google.protobuf.SingleFieldBuilderV3 eventBuilder_; + + /** + * .context.Event event = 1; + * @return Whether the event field is set. + */ + public boolean hasEvent() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * .context.Event event = 1; + * @return The event. + */ + public context.ContextOuterClass.Event getEvent() { + if (eventBuilder_ == null) { + return event_ == null ? context.ContextOuterClass.Event.getDefaultInstance() : event_; + } else { + return eventBuilder_.getMessage(); + } + } + + /** + * .context.Event event = 1; + */ + public Builder setEvent(context.ContextOuterClass.Event value) { + if (eventBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + event_ = value; + } else { + eventBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.Event event = 1; + */ + public Builder setEvent(context.ContextOuterClass.Event.Builder builderForValue) { + if (eventBuilder_ == null) { + event_ = builderForValue.build(); + } else { + eventBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.Event event = 1; + */ + public Builder mergeEvent(context.ContextOuterClass.Event value) { + if (eventBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && event_ != null && event_ != context.ContextOuterClass.Event.getDefaultInstance()) { + getEventBuilder().mergeFrom(value); + } else { + event_ = value; + } + } else { + eventBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.Event event = 1; + */ + public Builder clearEvent() { + bitField0_ = (bitField0_ & ~0x00000001); + event_ = null; + if (eventBuilder_ != null) { + eventBuilder_.dispose(); + eventBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.Event event = 1; + */ + public context.ContextOuterClass.Event.Builder getEventBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getEventFieldBuilder().getBuilder(); + } + + /** + * .context.Event event = 1; + */ + public context.ContextOuterClass.EventOrBuilder getEventOrBuilder() { + if (eventBuilder_ != null) { + return eventBuilder_.getMessageOrBuilder(); + } else { + return event_ == null ? context.ContextOuterClass.Event.getDefaultInstance() : event_; + } + } + + /** + * .context.Event event = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3 getEventFieldBuilder() { + if (eventBuilder_ == null) { + eventBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getEvent(), getParentForChildren(), isClean()); + event_ = null; + } + return eventBuilder_; + } + + private context.ContextOuterClass.ConnectionId connectionId_; + + private com.google.protobuf.SingleFieldBuilderV3 connectionIdBuilder_; + + /** + * .context.ConnectionId connection_id = 2; + * @return Whether the connectionId field is set. + */ + public boolean hasConnectionId() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * .context.ConnectionId connection_id = 2; + * @return The connectionId. + */ + public context.ContextOuterClass.ConnectionId getConnectionId() { + if (connectionIdBuilder_ == null) { + return connectionId_ == null ? context.ContextOuterClass.ConnectionId.getDefaultInstance() : connectionId_; + } else { + return connectionIdBuilder_.getMessage(); + } + } + + /** + * .context.ConnectionId connection_id = 2; + */ + public Builder setConnectionId(context.ContextOuterClass.ConnectionId value) { + if (connectionIdBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + connectionId_ = value; + } else { + connectionIdBuilder_.setMessage(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * .context.ConnectionId connection_id = 2; + */ + public Builder setConnectionId(context.ContextOuterClass.ConnectionId.Builder builderForValue) { + if (connectionIdBuilder_ == null) { + connectionId_ = builderForValue.build(); + } else { + connectionIdBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * .context.ConnectionId connection_id = 2; + */ + public Builder mergeConnectionId(context.ContextOuterClass.ConnectionId value) { + if (connectionIdBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0) && connectionId_ != null && connectionId_ != context.ContextOuterClass.ConnectionId.getDefaultInstance()) { + getConnectionIdBuilder().mergeFrom(value); + } else { + connectionId_ = value; + } + } else { + connectionIdBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * .context.ConnectionId connection_id = 2; + */ + public Builder clearConnectionId() { + bitField0_ = (bitField0_ & ~0x00000002); + connectionId_ = null; + if (connectionIdBuilder_ != null) { + connectionIdBuilder_.dispose(); + connectionIdBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.ConnectionId connection_id = 2; + */ + public context.ContextOuterClass.ConnectionId.Builder getConnectionIdBuilder() { + bitField0_ |= 0x00000002; + onChanged(); + return getConnectionIdFieldBuilder().getBuilder(); + } + + /** + * .context.ConnectionId connection_id = 2; + */ + public context.ContextOuterClass.ConnectionIdOrBuilder getConnectionIdOrBuilder() { + if (connectionIdBuilder_ != null) { + return connectionIdBuilder_.getMessageOrBuilder(); + } else { + return connectionId_ == null ? context.ContextOuterClass.ConnectionId.getDefaultInstance() : connectionId_; + } + } + + /** + * .context.ConnectionId connection_id = 2; + */ + private com.google.protobuf.SingleFieldBuilderV3 getConnectionIdFieldBuilder() { + if (connectionIdBuilder_ == null) { + connectionIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getConnectionId(), getParentForChildren(), isClean()); + connectionId_ = null; + } + return connectionIdBuilder_; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.ConnectionEvent) + } + + // @@protoc_insertion_point(class_scope:context.ConnectionEvent) + private static final context.ContextOuterClass.ConnectionEvent DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.ConnectionEvent(); + } + + public static context.ContextOuterClass.ConnectionEvent getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public ConnectionEvent parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.ConnectionEvent getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface EndPointIdOrBuilder extends // @@protoc_insertion_point(interface_extends:context.EndPointId) + com.google.protobuf.MessageOrBuilder { + + /** + * .context.TopologyId topology_id = 1; + * @return Whether the topologyId field is set. + */ + boolean hasTopologyId(); + + /** + * .context.TopologyId topology_id = 1; + * @return The topologyId. + */ + context.ContextOuterClass.TopologyId getTopologyId(); + + /** + * .context.TopologyId topology_id = 1; + */ + context.ContextOuterClass.TopologyIdOrBuilder getTopologyIdOrBuilder(); + + /** + * .context.DeviceId device_id = 2; + * @return Whether the deviceId field is set. + */ + boolean hasDeviceId(); + + /** + * .context.DeviceId device_id = 2; + * @return The deviceId. + */ + context.ContextOuterClass.DeviceId getDeviceId(); + + /** + * .context.DeviceId device_id = 2; + */ + context.ContextOuterClass.DeviceIdOrBuilder getDeviceIdOrBuilder(); + + /** + * .context.Uuid endpoint_uuid = 3; + * @return Whether the endpointUuid field is set. + */ + boolean hasEndpointUuid(); + + /** + * .context.Uuid endpoint_uuid = 3; + * @return The endpointUuid. + */ + context.ContextOuterClass.Uuid getEndpointUuid(); + + /** + * .context.Uuid endpoint_uuid = 3; + */ + context.ContextOuterClass.UuidOrBuilder getEndpointUuidOrBuilder(); + } + + /** + *
+     * ----- Endpoint ------------------------------------------------------------------------------------------------------
+     * 
+ * + * Protobuf type {@code context.EndPointId} + */ + public static final class EndPointId extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.EndPointId) + EndPointIdOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use EndPointId.newBuilder() to construct. + private EndPointId(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private EndPointId() { + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new EndPointId(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_EndPointId_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_EndPointId_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.EndPointId.class, context.ContextOuterClass.EndPointId.Builder.class); + } + + public static final int TOPOLOGY_ID_FIELD_NUMBER = 1; + + private context.ContextOuterClass.TopologyId topologyId_; + + /** + * .context.TopologyId topology_id = 1; + * @return Whether the topologyId field is set. + */ + @java.lang.Override + public boolean hasTopologyId() { + return topologyId_ != null; + } + + /** + * .context.TopologyId topology_id = 1; + * @return The topologyId. + */ + @java.lang.Override + public context.ContextOuterClass.TopologyId getTopologyId() { + return topologyId_ == null ? context.ContextOuterClass.TopologyId.getDefaultInstance() : topologyId_; + } + + /** + * .context.TopologyId topology_id = 1; + */ + @java.lang.Override + public context.ContextOuterClass.TopologyIdOrBuilder getTopologyIdOrBuilder() { + return topologyId_ == null ? context.ContextOuterClass.TopologyId.getDefaultInstance() : topologyId_; + } + + public static final int DEVICE_ID_FIELD_NUMBER = 2; + + private context.ContextOuterClass.DeviceId deviceId_; + + /** + * .context.DeviceId device_id = 2; + * @return Whether the deviceId field is set. + */ + @java.lang.Override + public boolean hasDeviceId() { + return deviceId_ != null; + } + + /** + * .context.DeviceId device_id = 2; + * @return The deviceId. + */ + @java.lang.Override + public context.ContextOuterClass.DeviceId getDeviceId() { + return deviceId_ == null ? context.ContextOuterClass.DeviceId.getDefaultInstance() : deviceId_; + } + + /** + * .context.DeviceId device_id = 2; + */ + @java.lang.Override + public context.ContextOuterClass.DeviceIdOrBuilder getDeviceIdOrBuilder() { + return deviceId_ == null ? context.ContextOuterClass.DeviceId.getDefaultInstance() : deviceId_; + } + + public static final int ENDPOINT_UUID_FIELD_NUMBER = 3; + + private context.ContextOuterClass.Uuid endpointUuid_; + + /** + * .context.Uuid endpoint_uuid = 3; + * @return Whether the endpointUuid field is set. + */ + @java.lang.Override + public boolean hasEndpointUuid() { + return endpointUuid_ != null; + } + + /** + * .context.Uuid endpoint_uuid = 3; + * @return The endpointUuid. + */ + @java.lang.Override + public context.ContextOuterClass.Uuid getEndpointUuid() { + return endpointUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : endpointUuid_; + } + + /** + * .context.Uuid endpoint_uuid = 3; + */ + @java.lang.Override + public context.ContextOuterClass.UuidOrBuilder getEndpointUuidOrBuilder() { + return endpointUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : endpointUuid_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (topologyId_ != null) { + output.writeMessage(1, getTopologyId()); + } + if (deviceId_ != null) { + output.writeMessage(2, getDeviceId()); + } + if (endpointUuid_ != null) { + output.writeMessage(3, getEndpointUuid()); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + if (topologyId_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getTopologyId()); + } + if (deviceId_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getDeviceId()); + } + if (endpointUuid_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getEndpointUuid()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.EndPointId)) { + return super.equals(obj); + } + context.ContextOuterClass.EndPointId other = (context.ContextOuterClass.EndPointId) obj; + if (hasTopologyId() != other.hasTopologyId()) + return false; + if (hasTopologyId()) { + if (!getTopologyId().equals(other.getTopologyId())) + return false; + } + if (hasDeviceId() != other.hasDeviceId()) + return false; + if (hasDeviceId()) { + if (!getDeviceId().equals(other.getDeviceId())) + return false; + } + if (hasEndpointUuid() != other.hasEndpointUuid()) + return false; + if (hasEndpointUuid()) { + if (!getEndpointUuid().equals(other.getEndpointUuid())) + return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasTopologyId()) { + hash = (37 * hash) + TOPOLOGY_ID_FIELD_NUMBER; + hash = (53 * hash) + getTopologyId().hashCode(); + } + if (hasDeviceId()) { + hash = (37 * hash) + DEVICE_ID_FIELD_NUMBER; + hash = (53 * hash) + getDeviceId().hashCode(); + } + if (hasEndpointUuid()) { + hash = (37 * hash) + ENDPOINT_UUID_FIELD_NUMBER; + hash = (53 * hash) + getEndpointUuid().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.EndPointId parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.EndPointId parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.EndPointId parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.EndPointId parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.EndPointId parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.EndPointId parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.EndPointId parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.EndPointId parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.EndPointId parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.EndPointId parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.EndPointId parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.EndPointId parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.EndPointId prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + *
+         * ----- Endpoint ------------------------------------------------------------------------------------------------------
+         * 
+ * + * Protobuf type {@code context.EndPointId} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.EndPointId) + context.ContextOuterClass.EndPointIdOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_EndPointId_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_EndPointId_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.EndPointId.class, context.ContextOuterClass.EndPointId.Builder.class); + } + + // Construct using context.ContextOuterClass.EndPointId.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + topologyId_ = null; + if (topologyIdBuilder_ != null) { + topologyIdBuilder_.dispose(); + topologyIdBuilder_ = null; + } + deviceId_ = null; + if (deviceIdBuilder_ != null) { + deviceIdBuilder_.dispose(); + deviceIdBuilder_ = null; + } + endpointUuid_ = null; + if (endpointUuidBuilder_ != null) { + endpointUuidBuilder_.dispose(); + endpointUuidBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_EndPointId_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.EndPointId getDefaultInstanceForType() { + return context.ContextOuterClass.EndPointId.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.EndPointId build() { + context.ContextOuterClass.EndPointId result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.EndPointId buildPartial() { + context.ContextOuterClass.EndPointId result = new context.ContextOuterClass.EndPointId(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(context.ContextOuterClass.EndPointId result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.topologyId_ = topologyIdBuilder_ == null ? topologyId_ : topologyIdBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.deviceId_ = deviceIdBuilder_ == null ? deviceId_ : deviceIdBuilder_.build(); + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.endpointUuid_ = endpointUuidBuilder_ == null ? endpointUuid_ : endpointUuidBuilder_.build(); + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.EndPointId) { + return mergeFrom((context.ContextOuterClass.EndPointId) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.EndPointId other) { + if (other == context.ContextOuterClass.EndPointId.getDefaultInstance()) + return this; + if (other.hasTopologyId()) { + mergeTopologyId(other.getTopologyId()); + } + if (other.hasDeviceId()) { + mergeDeviceId(other.getDeviceId()); + } + if (other.hasEndpointUuid()) { + mergeEndpointUuid(other.getEndpointUuid()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getTopologyIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + input.readMessage(getDeviceIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000002; + break; + } + // case 18 + case 26: + { + input.readMessage(getEndpointUuidFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000004; + break; + } + // case 26 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private context.ContextOuterClass.TopologyId topologyId_; + + private com.google.protobuf.SingleFieldBuilderV3 topologyIdBuilder_; + + /** + * .context.TopologyId topology_id = 1; + * @return Whether the topologyId field is set. + */ + public boolean hasTopologyId() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * .context.TopologyId topology_id = 1; + * @return The topologyId. + */ + public context.ContextOuterClass.TopologyId getTopologyId() { + if (topologyIdBuilder_ == null) { + return topologyId_ == null ? context.ContextOuterClass.TopologyId.getDefaultInstance() : topologyId_; + } else { + return topologyIdBuilder_.getMessage(); + } + } + + /** + * .context.TopologyId topology_id = 1; + */ + public Builder setTopologyId(context.ContextOuterClass.TopologyId value) { + if (topologyIdBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + topologyId_ = value; + } else { + topologyIdBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.TopologyId topology_id = 1; + */ + public Builder setTopologyId(context.ContextOuterClass.TopologyId.Builder builderForValue) { + if (topologyIdBuilder_ == null) { + topologyId_ = builderForValue.build(); + } else { + topologyIdBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.TopologyId topology_id = 1; + */ + public Builder mergeTopologyId(context.ContextOuterClass.TopologyId value) { + if (topologyIdBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && topologyId_ != null && topologyId_ != context.ContextOuterClass.TopologyId.getDefaultInstance()) { + getTopologyIdBuilder().mergeFrom(value); + } else { + topologyId_ = value; + } + } else { + topologyIdBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.TopologyId topology_id = 1; + */ + public Builder clearTopologyId() { + bitField0_ = (bitField0_ & ~0x00000001); + topologyId_ = null; + if (topologyIdBuilder_ != null) { + topologyIdBuilder_.dispose(); + topologyIdBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.TopologyId topology_id = 1; + */ + public context.ContextOuterClass.TopologyId.Builder getTopologyIdBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getTopologyIdFieldBuilder().getBuilder(); + } + + /** + * .context.TopologyId topology_id = 1; + */ + public context.ContextOuterClass.TopologyIdOrBuilder getTopologyIdOrBuilder() { + if (topologyIdBuilder_ != null) { + return topologyIdBuilder_.getMessageOrBuilder(); + } else { + return topologyId_ == null ? context.ContextOuterClass.TopologyId.getDefaultInstance() : topologyId_; + } + } + + /** + * .context.TopologyId topology_id = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3 getTopologyIdFieldBuilder() { + if (topologyIdBuilder_ == null) { + topologyIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getTopologyId(), getParentForChildren(), isClean()); + topologyId_ = null; + } + return topologyIdBuilder_; + } + + private context.ContextOuterClass.DeviceId deviceId_; + + private com.google.protobuf.SingleFieldBuilderV3 deviceIdBuilder_; + + /** + * .context.DeviceId device_id = 2; + * @return Whether the deviceId field is set. + */ + public boolean hasDeviceId() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * .context.DeviceId device_id = 2; + * @return The deviceId. + */ + public context.ContextOuterClass.DeviceId getDeviceId() { + if (deviceIdBuilder_ == null) { + return deviceId_ == null ? context.ContextOuterClass.DeviceId.getDefaultInstance() : deviceId_; + } else { + return deviceIdBuilder_.getMessage(); + } + } + + /** + * .context.DeviceId device_id = 2; + */ + public Builder setDeviceId(context.ContextOuterClass.DeviceId value) { + if (deviceIdBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + deviceId_ = value; + } else { + deviceIdBuilder_.setMessage(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * .context.DeviceId device_id = 2; + */ + public Builder setDeviceId(context.ContextOuterClass.DeviceId.Builder builderForValue) { + if (deviceIdBuilder_ == null) { + deviceId_ = builderForValue.build(); + } else { + deviceIdBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * .context.DeviceId device_id = 2; + */ + public Builder mergeDeviceId(context.ContextOuterClass.DeviceId value) { + if (deviceIdBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0) && deviceId_ != null && deviceId_ != context.ContextOuterClass.DeviceId.getDefaultInstance()) { + getDeviceIdBuilder().mergeFrom(value); + } else { + deviceId_ = value; + } + } else { + deviceIdBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * .context.DeviceId device_id = 2; + */ + public Builder clearDeviceId() { + bitField0_ = (bitField0_ & ~0x00000002); + deviceId_ = null; + if (deviceIdBuilder_ != null) { + deviceIdBuilder_.dispose(); + deviceIdBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.DeviceId device_id = 2; + */ + public context.ContextOuterClass.DeviceId.Builder getDeviceIdBuilder() { + bitField0_ |= 0x00000002; + onChanged(); + return getDeviceIdFieldBuilder().getBuilder(); + } + + /** + * .context.DeviceId device_id = 2; + */ + public context.ContextOuterClass.DeviceIdOrBuilder getDeviceIdOrBuilder() { + if (deviceIdBuilder_ != null) { + return deviceIdBuilder_.getMessageOrBuilder(); + } else { + return deviceId_ == null ? context.ContextOuterClass.DeviceId.getDefaultInstance() : deviceId_; + } + } + + /** + * .context.DeviceId device_id = 2; + */ + private com.google.protobuf.SingleFieldBuilderV3 getDeviceIdFieldBuilder() { + if (deviceIdBuilder_ == null) { + deviceIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getDeviceId(), getParentForChildren(), isClean()); + deviceId_ = null; + } + return deviceIdBuilder_; + } + + private context.ContextOuterClass.Uuid endpointUuid_; + + private com.google.protobuf.SingleFieldBuilderV3 endpointUuidBuilder_; + + /** + * .context.Uuid endpoint_uuid = 3; + * @return Whether the endpointUuid field is set. + */ + public boolean hasEndpointUuid() { + return ((bitField0_ & 0x00000004) != 0); + } + + /** + * .context.Uuid endpoint_uuid = 3; + * @return The endpointUuid. + */ + public context.ContextOuterClass.Uuid getEndpointUuid() { + if (endpointUuidBuilder_ == null) { + return endpointUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : endpointUuid_; + } else { + return endpointUuidBuilder_.getMessage(); + } + } + + /** + * .context.Uuid endpoint_uuid = 3; + */ + public Builder setEndpointUuid(context.ContextOuterClass.Uuid value) { + if (endpointUuidBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + endpointUuid_ = value; + } else { + endpointUuidBuilder_.setMessage(value); + } + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * .context.Uuid endpoint_uuid = 3; + */ + public Builder setEndpointUuid(context.ContextOuterClass.Uuid.Builder builderForValue) { + if (endpointUuidBuilder_ == null) { + endpointUuid_ = builderForValue.build(); + } else { + endpointUuidBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * .context.Uuid endpoint_uuid = 3; + */ + public Builder mergeEndpointUuid(context.ContextOuterClass.Uuid value) { + if (endpointUuidBuilder_ == null) { + if (((bitField0_ & 0x00000004) != 0) && endpointUuid_ != null && endpointUuid_ != context.ContextOuterClass.Uuid.getDefaultInstance()) { + getEndpointUuidBuilder().mergeFrom(value); + } else { + endpointUuid_ = value; + } + } else { + endpointUuidBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * .context.Uuid endpoint_uuid = 3; + */ + public Builder clearEndpointUuid() { + bitField0_ = (bitField0_ & ~0x00000004); + endpointUuid_ = null; + if (endpointUuidBuilder_ != null) { + endpointUuidBuilder_.dispose(); + endpointUuidBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.Uuid endpoint_uuid = 3; + */ + public context.ContextOuterClass.Uuid.Builder getEndpointUuidBuilder() { + bitField0_ |= 0x00000004; + onChanged(); + return getEndpointUuidFieldBuilder().getBuilder(); + } + + /** + * .context.Uuid endpoint_uuid = 3; + */ + public context.ContextOuterClass.UuidOrBuilder getEndpointUuidOrBuilder() { + if (endpointUuidBuilder_ != null) { + return endpointUuidBuilder_.getMessageOrBuilder(); + } else { + return endpointUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : endpointUuid_; + } + } + + /** + * .context.Uuid endpoint_uuid = 3; + */ + private com.google.protobuf.SingleFieldBuilderV3 getEndpointUuidFieldBuilder() { + if (endpointUuidBuilder_ == null) { + endpointUuidBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getEndpointUuid(), getParentForChildren(), isClean()); + endpointUuid_ = null; + } + return endpointUuidBuilder_; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.EndPointId) + } + + // @@protoc_insertion_point(class_scope:context.EndPointId) + private static final context.ContextOuterClass.EndPointId DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.EndPointId(); + } + + public static context.ContextOuterClass.EndPointId getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public EndPointId parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.EndPointId getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface EndPointOrBuilder extends // @@protoc_insertion_point(interface_extends:context.EndPoint) + com.google.protobuf.MessageOrBuilder { + + /** + * .context.EndPointId endpoint_id = 1; + * @return Whether the endpointId field is set. + */ + boolean hasEndpointId(); + + /** + * .context.EndPointId endpoint_id = 1; + * @return The endpointId. + */ + context.ContextOuterClass.EndPointId getEndpointId(); + + /** + * .context.EndPointId endpoint_id = 1; + */ + context.ContextOuterClass.EndPointIdOrBuilder getEndpointIdOrBuilder(); + + /** + * string name = 2; + * @return The name. + */ + java.lang.String getName(); + + /** + * string name = 2; + * @return The bytes for name. + */ + com.google.protobuf.ByteString getNameBytes(); + + /** + * string endpoint_type = 3; + * @return The endpointType. + */ + java.lang.String getEndpointType(); + + /** + * string endpoint_type = 3; + * @return The bytes for endpointType. + */ + com.google.protobuf.ByteString getEndpointTypeBytes(); + + /** + * repeated .kpi_sample_types.KpiSampleType kpi_sample_types = 4; + * @return A list containing the kpiSampleTypes. + */ + java.util.List getKpiSampleTypesList(); + + /** + * repeated .kpi_sample_types.KpiSampleType kpi_sample_types = 4; + * @return The count of kpiSampleTypes. + */ + int getKpiSampleTypesCount(); + + /** + * repeated .kpi_sample_types.KpiSampleType kpi_sample_types = 4; + * @param index The index of the element to return. + * @return The kpiSampleTypes at the given index. + */ + kpi_sample_types.KpiSampleTypes.KpiSampleType getKpiSampleTypes(int index); + + /** + * repeated .kpi_sample_types.KpiSampleType kpi_sample_types = 4; + * @return A list containing the enum numeric values on the wire for kpiSampleTypes. + */ + java.util.List getKpiSampleTypesValueList(); + + /** + * repeated .kpi_sample_types.KpiSampleType kpi_sample_types = 4; + * @param index The index of the value to return. + * @return The enum numeric value on the wire of kpiSampleTypes at the given index. + */ + int getKpiSampleTypesValue(int index); + + /** + * .context.Location endpoint_location = 5; + * @return Whether the endpointLocation field is set. + */ + boolean hasEndpointLocation(); + + /** + * .context.Location endpoint_location = 5; + * @return The endpointLocation. + */ + context.ContextOuterClass.Location getEndpointLocation(); + + /** + * .context.Location endpoint_location = 5; + */ + context.ContextOuterClass.LocationOrBuilder getEndpointLocationOrBuilder(); + } + + /** + * Protobuf type {@code context.EndPoint} + */ + public static final class EndPoint extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.EndPoint) + EndPointOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use EndPoint.newBuilder() to construct. + private EndPoint(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private EndPoint() { + name_ = ""; + endpointType_ = ""; + kpiSampleTypes_ = java.util.Collections.emptyList(); + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new EndPoint(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_EndPoint_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_EndPoint_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.EndPoint.class, context.ContextOuterClass.EndPoint.Builder.class); + } + + public static final int ENDPOINT_ID_FIELD_NUMBER = 1; + + private context.ContextOuterClass.EndPointId endpointId_; + + /** + * .context.EndPointId endpoint_id = 1; + * @return Whether the endpointId field is set. + */ + @java.lang.Override + public boolean hasEndpointId() { + return endpointId_ != null; + } + + /** + * .context.EndPointId endpoint_id = 1; + * @return The endpointId. + */ + @java.lang.Override + public context.ContextOuterClass.EndPointId getEndpointId() { + return endpointId_ == null ? context.ContextOuterClass.EndPointId.getDefaultInstance() : endpointId_; + } + + /** + * .context.EndPointId endpoint_id = 1; + */ + @java.lang.Override + public context.ContextOuterClass.EndPointIdOrBuilder getEndpointIdOrBuilder() { + return endpointId_ == null ? context.ContextOuterClass.EndPointId.getDefaultInstance() : endpointId_; + } + + public static final int NAME_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object name_ = ""; + + /** + * string name = 2; + * @return The name. + */ + @java.lang.Override + public java.lang.String getName() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + name_ = s; + return s; + } + } + + /** + * string name = 2; + * @return The bytes for name. + */ + @java.lang.Override + public com.google.protobuf.ByteString getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int ENDPOINT_TYPE_FIELD_NUMBER = 3; + + @SuppressWarnings("serial") + private volatile java.lang.Object endpointType_ = ""; + + /** + * string endpoint_type = 3; + * @return The endpointType. + */ + @java.lang.Override + public java.lang.String getEndpointType() { + java.lang.Object ref = endpointType_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + endpointType_ = s; + return s; + } + } + + /** + * string endpoint_type = 3; + * @return The bytes for endpointType. + */ + @java.lang.Override + public com.google.protobuf.ByteString getEndpointTypeBytes() { + java.lang.Object ref = endpointType_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + endpointType_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int KPI_SAMPLE_TYPES_FIELD_NUMBER = 4; + + @SuppressWarnings("serial") + private java.util.List kpiSampleTypes_; + + private static final com.google.protobuf.Internal.ListAdapter.Converter kpiSampleTypes_converter_ = new com.google.protobuf.Internal.ListAdapter.Converter() { + + public kpi_sample_types.KpiSampleTypes.KpiSampleType convert(java.lang.Integer from) { + kpi_sample_types.KpiSampleTypes.KpiSampleType result = kpi_sample_types.KpiSampleTypes.KpiSampleType.forNumber(from); + return result == null ? kpi_sample_types.KpiSampleTypes.KpiSampleType.UNRECOGNIZED : result; + } + }; + + /** + * repeated .kpi_sample_types.KpiSampleType kpi_sample_types = 4; + * @return A list containing the kpiSampleTypes. + */ + @java.lang.Override + public java.util.List getKpiSampleTypesList() { + return new com.google.protobuf.Internal.ListAdapter(kpiSampleTypes_, kpiSampleTypes_converter_); + } + + /** + * repeated .kpi_sample_types.KpiSampleType kpi_sample_types = 4; + * @return The count of kpiSampleTypes. + */ + @java.lang.Override + public int getKpiSampleTypesCount() { + return kpiSampleTypes_.size(); + } + + /** + * repeated .kpi_sample_types.KpiSampleType kpi_sample_types = 4; + * @param index The index of the element to return. + * @return The kpiSampleTypes at the given index. + */ + @java.lang.Override + public kpi_sample_types.KpiSampleTypes.KpiSampleType getKpiSampleTypes(int index) { + return kpiSampleTypes_converter_.convert(kpiSampleTypes_.get(index)); + } + + /** + * repeated .kpi_sample_types.KpiSampleType kpi_sample_types = 4; + * @return A list containing the enum numeric values on the wire for kpiSampleTypes. + */ + @java.lang.Override + public java.util.List getKpiSampleTypesValueList() { + return kpiSampleTypes_; + } + + /** + * repeated .kpi_sample_types.KpiSampleType kpi_sample_types = 4; + * @param index The index of the value to return. + * @return The enum numeric value on the wire of kpiSampleTypes at the given index. + */ + @java.lang.Override + public int getKpiSampleTypesValue(int index) { + return kpiSampleTypes_.get(index); + } + + private int kpiSampleTypesMemoizedSerializedSize; + + public static final int ENDPOINT_LOCATION_FIELD_NUMBER = 5; + + private context.ContextOuterClass.Location endpointLocation_; + + /** + * .context.Location endpoint_location = 5; + * @return Whether the endpointLocation field is set. + */ + @java.lang.Override + public boolean hasEndpointLocation() { + return endpointLocation_ != null; + } + + /** + * .context.Location endpoint_location = 5; + * @return The endpointLocation. + */ + @java.lang.Override + public context.ContextOuterClass.Location getEndpointLocation() { + return endpointLocation_ == null ? context.ContextOuterClass.Location.getDefaultInstance() : endpointLocation_; + } + + /** + * .context.Location endpoint_location = 5; + */ + @java.lang.Override + public context.ContextOuterClass.LocationOrBuilder getEndpointLocationOrBuilder() { + return endpointLocation_ == null ? context.ContextOuterClass.Location.getDefaultInstance() : endpointLocation_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + getSerializedSize(); + if (endpointId_ != null) { + output.writeMessage(1, getEndpointId()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, name_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(endpointType_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, endpointType_); + } + if (getKpiSampleTypesList().size() > 0) { + output.writeUInt32NoTag(34); + output.writeUInt32NoTag(kpiSampleTypesMemoizedSerializedSize); + } + for (int i = 0; i < kpiSampleTypes_.size(); i++) { + output.writeEnumNoTag(kpiSampleTypes_.get(i)); + } + if (endpointLocation_ != null) { + output.writeMessage(5, getEndpointLocation()); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + if (endpointId_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getEndpointId()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, name_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(endpointType_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, endpointType_); + } + { + int dataSize = 0; + for (int i = 0; i < kpiSampleTypes_.size(); i++) { + dataSize += com.google.protobuf.CodedOutputStream.computeEnumSizeNoTag(kpiSampleTypes_.get(i)); + } + size += dataSize; + if (!getKpiSampleTypesList().isEmpty()) { + size += 1; + size += com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(dataSize); + } + kpiSampleTypesMemoizedSerializedSize = dataSize; + } + if (endpointLocation_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, getEndpointLocation()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.EndPoint)) { + return super.equals(obj); + } + context.ContextOuterClass.EndPoint other = (context.ContextOuterClass.EndPoint) obj; + if (hasEndpointId() != other.hasEndpointId()) + return false; + if (hasEndpointId()) { + if (!getEndpointId().equals(other.getEndpointId())) + return false; + } + if (!getName().equals(other.getName())) + return false; + if (!getEndpointType().equals(other.getEndpointType())) + return false; + if (!kpiSampleTypes_.equals(other.kpiSampleTypes_)) + return false; + if (hasEndpointLocation() != other.hasEndpointLocation()) + return false; + if (hasEndpointLocation()) { + if (!getEndpointLocation().equals(other.getEndpointLocation())) + return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasEndpointId()) { + hash = (37 * hash) + ENDPOINT_ID_FIELD_NUMBER; + hash = (53 * hash) + getEndpointId().hashCode(); + } + hash = (37 * hash) + NAME_FIELD_NUMBER; + hash = (53 * hash) + getName().hashCode(); + hash = (37 * hash) + ENDPOINT_TYPE_FIELD_NUMBER; + hash = (53 * hash) + getEndpointType().hashCode(); + if (getKpiSampleTypesCount() > 0) { + hash = (37 * hash) + KPI_SAMPLE_TYPES_FIELD_NUMBER; + hash = (53 * hash) + kpiSampleTypes_.hashCode(); + } + if (hasEndpointLocation()) { + hash = (37 * hash) + ENDPOINT_LOCATION_FIELD_NUMBER; + hash = (53 * hash) + getEndpointLocation().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.EndPoint parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.EndPoint parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.EndPoint parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.EndPoint parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.EndPoint parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.EndPoint parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.EndPoint parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.EndPoint parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.EndPoint parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.EndPoint parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.EndPoint parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.EndPoint parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.EndPoint prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code context.EndPoint} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.EndPoint) + context.ContextOuterClass.EndPointOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_EndPoint_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_EndPoint_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.EndPoint.class, context.ContextOuterClass.EndPoint.Builder.class); + } + + // Construct using context.ContextOuterClass.EndPoint.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + endpointId_ = null; + if (endpointIdBuilder_ != null) { + endpointIdBuilder_.dispose(); + endpointIdBuilder_ = null; + } + name_ = ""; + endpointType_ = ""; + kpiSampleTypes_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000008); + endpointLocation_ = null; + if (endpointLocationBuilder_ != null) { + endpointLocationBuilder_.dispose(); + endpointLocationBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_EndPoint_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.EndPoint getDefaultInstanceForType() { + return context.ContextOuterClass.EndPoint.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.EndPoint build() { + context.ContextOuterClass.EndPoint result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.EndPoint buildPartial() { + context.ContextOuterClass.EndPoint result = new context.ContextOuterClass.EndPoint(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(context.ContextOuterClass.EndPoint result) { + if (((bitField0_ & 0x00000008) != 0)) { + kpiSampleTypes_ = java.util.Collections.unmodifiableList(kpiSampleTypes_); + bitField0_ = (bitField0_ & ~0x00000008); + } + result.kpiSampleTypes_ = kpiSampleTypes_; + } + + private void buildPartial0(context.ContextOuterClass.EndPoint result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.endpointId_ = endpointIdBuilder_ == null ? endpointId_ : endpointIdBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.name_ = name_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.endpointType_ = endpointType_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.endpointLocation_ = endpointLocationBuilder_ == null ? endpointLocation_ : endpointLocationBuilder_.build(); + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.EndPoint) { + return mergeFrom((context.ContextOuterClass.EndPoint) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.EndPoint other) { + if (other == context.ContextOuterClass.EndPoint.getDefaultInstance()) + return this; + if (other.hasEndpointId()) { + mergeEndpointId(other.getEndpointId()); + } + if (!other.getName().isEmpty()) { + name_ = other.name_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (!other.getEndpointType().isEmpty()) { + endpointType_ = other.endpointType_; + bitField0_ |= 0x00000004; + onChanged(); + } + if (!other.kpiSampleTypes_.isEmpty()) { + if (kpiSampleTypes_.isEmpty()) { + kpiSampleTypes_ = other.kpiSampleTypes_; + bitField0_ = (bitField0_ & ~0x00000008); + } else { + ensureKpiSampleTypesIsMutable(); + kpiSampleTypes_.addAll(other.kpiSampleTypes_); + } + onChanged(); + } + if (other.hasEndpointLocation()) { + mergeEndpointLocation(other.getEndpointLocation()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getEndpointIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + name_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } + // case 18 + case 26: + { + endpointType_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } + // case 26 + case 32: + { + int tmpRaw = input.readEnum(); + ensureKpiSampleTypesIsMutable(); + kpiSampleTypes_.add(tmpRaw); + break; + } + // case 32 + case 34: + { + int length = input.readRawVarint32(); + int oldLimit = input.pushLimit(length); + while (input.getBytesUntilLimit() > 0) { + int tmpRaw = input.readEnum(); + ensureKpiSampleTypesIsMutable(); + kpiSampleTypes_.add(tmpRaw); + } + input.popLimit(oldLimit); + break; + } + // case 34 + case 42: + { + input.readMessage(getEndpointLocationFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000010; + break; + } + // case 42 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private context.ContextOuterClass.EndPointId endpointId_; + + private com.google.protobuf.SingleFieldBuilderV3 endpointIdBuilder_; + + /** + * .context.EndPointId endpoint_id = 1; + * @return Whether the endpointId field is set. + */ + public boolean hasEndpointId() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * .context.EndPointId endpoint_id = 1; + * @return The endpointId. + */ + public context.ContextOuterClass.EndPointId getEndpointId() { + if (endpointIdBuilder_ == null) { + return endpointId_ == null ? context.ContextOuterClass.EndPointId.getDefaultInstance() : endpointId_; + } else { + return endpointIdBuilder_.getMessage(); + } + } + + /** + * .context.EndPointId endpoint_id = 1; + */ + public Builder setEndpointId(context.ContextOuterClass.EndPointId value) { + if (endpointIdBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + endpointId_ = value; + } else { + endpointIdBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.EndPointId endpoint_id = 1; + */ + public Builder setEndpointId(context.ContextOuterClass.EndPointId.Builder builderForValue) { + if (endpointIdBuilder_ == null) { + endpointId_ = builderForValue.build(); + } else { + endpointIdBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.EndPointId endpoint_id = 1; + */ + public Builder mergeEndpointId(context.ContextOuterClass.EndPointId value) { + if (endpointIdBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && endpointId_ != null && endpointId_ != context.ContextOuterClass.EndPointId.getDefaultInstance()) { + getEndpointIdBuilder().mergeFrom(value); + } else { + endpointId_ = value; + } + } else { + endpointIdBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.EndPointId endpoint_id = 1; + */ + public Builder clearEndpointId() { + bitField0_ = (bitField0_ & ~0x00000001); + endpointId_ = null; + if (endpointIdBuilder_ != null) { + endpointIdBuilder_.dispose(); + endpointIdBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.EndPointId endpoint_id = 1; + */ + public context.ContextOuterClass.EndPointId.Builder getEndpointIdBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getEndpointIdFieldBuilder().getBuilder(); + } + + /** + * .context.EndPointId endpoint_id = 1; + */ + public context.ContextOuterClass.EndPointIdOrBuilder getEndpointIdOrBuilder() { + if (endpointIdBuilder_ != null) { + return endpointIdBuilder_.getMessageOrBuilder(); + } else { + return endpointId_ == null ? context.ContextOuterClass.EndPointId.getDefaultInstance() : endpointId_; + } + } + + /** + * .context.EndPointId endpoint_id = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3 getEndpointIdFieldBuilder() { + if (endpointIdBuilder_ == null) { + endpointIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getEndpointId(), getParentForChildren(), isClean()); + endpointId_ = null; + } + return endpointIdBuilder_; + } + + private java.lang.Object name_ = ""; + + /** + * string name = 2; + * @return The name. + */ + public java.lang.String getName() { + java.lang.Object ref = name_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + name_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * string name = 2; + * @return The bytes for name. + */ + public com.google.protobuf.ByteString getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * string name = 2; + * @param value The name to set. + * @return This builder for chaining. + */ + public Builder setName(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + name_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * string name = 2; + * @return This builder for chaining. + */ + public Builder clearName() { + name_ = getDefaultInstance().getName(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * string name = 2; + * @param value The bytes for name to set. + * @return This builder for chaining. + */ + public Builder setNameBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + name_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private java.lang.Object endpointType_ = ""; + + /** + * string endpoint_type = 3; + * @return The endpointType. + */ + public java.lang.String getEndpointType() { + java.lang.Object ref = endpointType_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + endpointType_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * string endpoint_type = 3; + * @return The bytes for endpointType. + */ + public com.google.protobuf.ByteString getEndpointTypeBytes() { + java.lang.Object ref = endpointType_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + endpointType_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * string endpoint_type = 3; + * @param value The endpointType to set. + * @return This builder for chaining. + */ + public Builder setEndpointType(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + endpointType_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * string endpoint_type = 3; + * @return This builder for chaining. + */ + public Builder clearEndpointType() { + endpointType_ = getDefaultInstance().getEndpointType(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + + /** + * string endpoint_type = 3; + * @param value The bytes for endpointType to set. + * @return This builder for chaining. + */ + public Builder setEndpointTypeBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + endpointType_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + private java.util.List kpiSampleTypes_ = java.util.Collections.emptyList(); + + private void ensureKpiSampleTypesIsMutable() { + if (!((bitField0_ & 0x00000008) != 0)) { + kpiSampleTypes_ = new java.util.ArrayList(kpiSampleTypes_); + bitField0_ |= 0x00000008; + } + } + + /** + * repeated .kpi_sample_types.KpiSampleType kpi_sample_types = 4; + * @return A list containing the kpiSampleTypes. + */ + public java.util.List getKpiSampleTypesList() { + return new com.google.protobuf.Internal.ListAdapter(kpiSampleTypes_, kpiSampleTypes_converter_); + } + + /** + * repeated .kpi_sample_types.KpiSampleType kpi_sample_types = 4; + * @return The count of kpiSampleTypes. + */ + public int getKpiSampleTypesCount() { + return kpiSampleTypes_.size(); + } + + /** + * repeated .kpi_sample_types.KpiSampleType kpi_sample_types = 4; + * @param index The index of the element to return. + * @return The kpiSampleTypes at the given index. + */ + public kpi_sample_types.KpiSampleTypes.KpiSampleType getKpiSampleTypes(int index) { + return kpiSampleTypes_converter_.convert(kpiSampleTypes_.get(index)); + } + + /** + * repeated .kpi_sample_types.KpiSampleType kpi_sample_types = 4; + * @param index The index to set the value at. + * @param value The kpiSampleTypes to set. + * @return This builder for chaining. + */ + public Builder setKpiSampleTypes(int index, kpi_sample_types.KpiSampleTypes.KpiSampleType value) { + if (value == null) { + throw new NullPointerException(); + } + ensureKpiSampleTypesIsMutable(); + kpiSampleTypes_.set(index, value.getNumber()); + onChanged(); + return this; + } + + /** + * repeated .kpi_sample_types.KpiSampleType kpi_sample_types = 4; + * @param value The kpiSampleTypes to add. + * @return This builder for chaining. + */ + public Builder addKpiSampleTypes(kpi_sample_types.KpiSampleTypes.KpiSampleType value) { + if (value == null) { + throw new NullPointerException(); + } + ensureKpiSampleTypesIsMutable(); + kpiSampleTypes_.add(value.getNumber()); + onChanged(); + return this; + } + + /** + * repeated .kpi_sample_types.KpiSampleType kpi_sample_types = 4; + * @param values The kpiSampleTypes to add. + * @return This builder for chaining. + */ + public Builder addAllKpiSampleTypes(java.lang.Iterable values) { + ensureKpiSampleTypesIsMutable(); + for (kpi_sample_types.KpiSampleTypes.KpiSampleType value : values) { + kpiSampleTypes_.add(value.getNumber()); + } + onChanged(); + return this; + } + + /** + * repeated .kpi_sample_types.KpiSampleType kpi_sample_types = 4; + * @return This builder for chaining. + */ + public Builder clearKpiSampleTypes() { + kpiSampleTypes_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000008); + onChanged(); + return this; + } + + /** + * repeated .kpi_sample_types.KpiSampleType kpi_sample_types = 4; + * @return A list containing the enum numeric values on the wire for kpiSampleTypes. + */ + public java.util.List getKpiSampleTypesValueList() { + return java.util.Collections.unmodifiableList(kpiSampleTypes_); + } + + /** + * repeated .kpi_sample_types.KpiSampleType kpi_sample_types = 4; + * @param index The index of the value to return. + * @return The enum numeric value on the wire of kpiSampleTypes at the given index. + */ + public int getKpiSampleTypesValue(int index) { + return kpiSampleTypes_.get(index); + } + + /** + * repeated .kpi_sample_types.KpiSampleType kpi_sample_types = 4; + * @param index The index to set the value at. + * @param value The enum numeric value on the wire for kpiSampleTypes to set. + * @return This builder for chaining. + */ + public Builder setKpiSampleTypesValue(int index, int value) { + ensureKpiSampleTypesIsMutable(); + kpiSampleTypes_.set(index, value); + onChanged(); + return this; + } + + /** + * repeated .kpi_sample_types.KpiSampleType kpi_sample_types = 4; + * @param value The enum numeric value on the wire for kpiSampleTypes to add. + * @return This builder for chaining. + */ + public Builder addKpiSampleTypesValue(int value) { + ensureKpiSampleTypesIsMutable(); + kpiSampleTypes_.add(value); + onChanged(); + return this; + } + + /** + * repeated .kpi_sample_types.KpiSampleType kpi_sample_types = 4; + * @param values The enum numeric values on the wire for kpiSampleTypes to add. + * @return This builder for chaining. + */ + public Builder addAllKpiSampleTypesValue(java.lang.Iterable values) { + ensureKpiSampleTypesIsMutable(); + for (int value : values) { + kpiSampleTypes_.add(value); + } + onChanged(); + return this; + } + + private context.ContextOuterClass.Location endpointLocation_; + + private com.google.protobuf.SingleFieldBuilderV3 endpointLocationBuilder_; + + /** + * .context.Location endpoint_location = 5; + * @return Whether the endpointLocation field is set. + */ + public boolean hasEndpointLocation() { + return ((bitField0_ & 0x00000010) != 0); + } + + /** + * .context.Location endpoint_location = 5; + * @return The endpointLocation. + */ + public context.ContextOuterClass.Location getEndpointLocation() { + if (endpointLocationBuilder_ == null) { + return endpointLocation_ == null ? context.ContextOuterClass.Location.getDefaultInstance() : endpointLocation_; + } else { + return endpointLocationBuilder_.getMessage(); + } + } + + /** + * .context.Location endpoint_location = 5; + */ + public Builder setEndpointLocation(context.ContextOuterClass.Location value) { + if (endpointLocationBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + endpointLocation_ = value; + } else { + endpointLocationBuilder_.setMessage(value); + } + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + /** + * .context.Location endpoint_location = 5; + */ + public Builder setEndpointLocation(context.ContextOuterClass.Location.Builder builderForValue) { + if (endpointLocationBuilder_ == null) { + endpointLocation_ = builderForValue.build(); + } else { + endpointLocationBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + /** + * .context.Location endpoint_location = 5; + */ + public Builder mergeEndpointLocation(context.ContextOuterClass.Location value) { + if (endpointLocationBuilder_ == null) { + if (((bitField0_ & 0x00000010) != 0) && endpointLocation_ != null && endpointLocation_ != context.ContextOuterClass.Location.getDefaultInstance()) { + getEndpointLocationBuilder().mergeFrom(value); + } else { + endpointLocation_ = value; + } + } else { + endpointLocationBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + /** + * .context.Location endpoint_location = 5; + */ + public Builder clearEndpointLocation() { + bitField0_ = (bitField0_ & ~0x00000010); + endpointLocation_ = null; + if (endpointLocationBuilder_ != null) { + endpointLocationBuilder_.dispose(); + endpointLocationBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.Location endpoint_location = 5; + */ + public context.ContextOuterClass.Location.Builder getEndpointLocationBuilder() { + bitField0_ |= 0x00000010; + onChanged(); + return getEndpointLocationFieldBuilder().getBuilder(); + } + + /** + * .context.Location endpoint_location = 5; + */ + public context.ContextOuterClass.LocationOrBuilder getEndpointLocationOrBuilder() { + if (endpointLocationBuilder_ != null) { + return endpointLocationBuilder_.getMessageOrBuilder(); + } else { + return endpointLocation_ == null ? context.ContextOuterClass.Location.getDefaultInstance() : endpointLocation_; + } + } + + /** + * .context.Location endpoint_location = 5; + */ + private com.google.protobuf.SingleFieldBuilderV3 getEndpointLocationFieldBuilder() { + if (endpointLocationBuilder_ == null) { + endpointLocationBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getEndpointLocation(), getParentForChildren(), isClean()); + endpointLocation_ = null; + } + return endpointLocationBuilder_; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.EndPoint) + } + + // @@protoc_insertion_point(class_scope:context.EndPoint) + private static final context.ContextOuterClass.EndPoint DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.EndPoint(); + } + + public static context.ContextOuterClass.EndPoint getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public EndPoint parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.EndPoint getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface EndPointNameOrBuilder extends // @@protoc_insertion_point(interface_extends:context.EndPointName) + com.google.protobuf.MessageOrBuilder { + + /** + * .context.EndPointId endpoint_id = 1; + * @return Whether the endpointId field is set. + */ + boolean hasEndpointId(); + + /** + * .context.EndPointId endpoint_id = 1; + * @return The endpointId. + */ + context.ContextOuterClass.EndPointId getEndpointId(); + + /** + * .context.EndPointId endpoint_id = 1; + */ + context.ContextOuterClass.EndPointIdOrBuilder getEndpointIdOrBuilder(); + + /** + * string device_name = 2; + * @return The deviceName. + */ + java.lang.String getDeviceName(); + + /** + * string device_name = 2; + * @return The bytes for deviceName. + */ + com.google.protobuf.ByteString getDeviceNameBytes(); + + /** + * string endpoint_name = 3; + * @return The endpointName. + */ + java.lang.String getEndpointName(); + + /** + * string endpoint_name = 3; + * @return The bytes for endpointName. + */ + com.google.protobuf.ByteString getEndpointNameBytes(); + + /** + * string endpoint_type = 4; + * @return The endpointType. + */ + java.lang.String getEndpointType(); + + /** + * string endpoint_type = 4; + * @return The bytes for endpointType. + */ + com.google.protobuf.ByteString getEndpointTypeBytes(); + } + + /** + * Protobuf type {@code context.EndPointName} + */ + public static final class EndPointName extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.EndPointName) + EndPointNameOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use EndPointName.newBuilder() to construct. + private EndPointName(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private EndPointName() { + deviceName_ = ""; + endpointName_ = ""; + endpointType_ = ""; + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new EndPointName(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_EndPointName_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_EndPointName_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.EndPointName.class, context.ContextOuterClass.EndPointName.Builder.class); + } + + public static final int ENDPOINT_ID_FIELD_NUMBER = 1; + + private context.ContextOuterClass.EndPointId endpointId_; + + /** + * .context.EndPointId endpoint_id = 1; + * @return Whether the endpointId field is set. + */ + @java.lang.Override + public boolean hasEndpointId() { + return endpointId_ != null; + } + + /** + * .context.EndPointId endpoint_id = 1; + * @return The endpointId. + */ + @java.lang.Override + public context.ContextOuterClass.EndPointId getEndpointId() { + return endpointId_ == null ? context.ContextOuterClass.EndPointId.getDefaultInstance() : endpointId_; + } + + /** + * .context.EndPointId endpoint_id = 1; + */ + @java.lang.Override + public context.ContextOuterClass.EndPointIdOrBuilder getEndpointIdOrBuilder() { + return endpointId_ == null ? context.ContextOuterClass.EndPointId.getDefaultInstance() : endpointId_; + } + + public static final int DEVICE_NAME_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object deviceName_ = ""; + + /** + * string device_name = 2; + * @return The deviceName. + */ + @java.lang.Override + public java.lang.String getDeviceName() { + java.lang.Object ref = deviceName_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + deviceName_ = s; + return s; + } + } + + /** + * string device_name = 2; + * @return The bytes for deviceName. + */ + @java.lang.Override + public com.google.protobuf.ByteString getDeviceNameBytes() { + java.lang.Object ref = deviceName_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + deviceName_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int ENDPOINT_NAME_FIELD_NUMBER = 3; + + @SuppressWarnings("serial") + private volatile java.lang.Object endpointName_ = ""; + + /** + * string endpoint_name = 3; + * @return The endpointName. + */ + @java.lang.Override + public java.lang.String getEndpointName() { + java.lang.Object ref = endpointName_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + endpointName_ = s; + return s; + } + } + + /** + * string endpoint_name = 3; + * @return The bytes for endpointName. + */ + @java.lang.Override + public com.google.protobuf.ByteString getEndpointNameBytes() { + java.lang.Object ref = endpointName_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + endpointName_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int ENDPOINT_TYPE_FIELD_NUMBER = 4; + + @SuppressWarnings("serial") + private volatile java.lang.Object endpointType_ = ""; + + /** + * string endpoint_type = 4; + * @return The endpointType. + */ + @java.lang.Override + public java.lang.String getEndpointType() { + java.lang.Object ref = endpointType_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + endpointType_ = s; + return s; + } + } + + /** + * string endpoint_type = 4; + * @return The bytes for endpointType. + */ + @java.lang.Override + public com.google.protobuf.ByteString getEndpointTypeBytes() { + java.lang.Object ref = endpointType_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + endpointType_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (endpointId_ != null) { + output.writeMessage(1, getEndpointId()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(deviceName_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, deviceName_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(endpointName_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, endpointName_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(endpointType_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 4, endpointType_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + if (endpointId_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getEndpointId()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(deviceName_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, deviceName_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(endpointName_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, endpointName_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(endpointType_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, endpointType_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.EndPointName)) { + return super.equals(obj); + } + context.ContextOuterClass.EndPointName other = (context.ContextOuterClass.EndPointName) obj; + if (hasEndpointId() != other.hasEndpointId()) + return false; + if (hasEndpointId()) { + if (!getEndpointId().equals(other.getEndpointId())) + return false; + } + if (!getDeviceName().equals(other.getDeviceName())) + return false; + if (!getEndpointName().equals(other.getEndpointName())) + return false; + if (!getEndpointType().equals(other.getEndpointType())) + return false; + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasEndpointId()) { + hash = (37 * hash) + ENDPOINT_ID_FIELD_NUMBER; + hash = (53 * hash) + getEndpointId().hashCode(); + } + hash = (37 * hash) + DEVICE_NAME_FIELD_NUMBER; + hash = (53 * hash) + getDeviceName().hashCode(); + hash = (37 * hash) + ENDPOINT_NAME_FIELD_NUMBER; + hash = (53 * hash) + getEndpointName().hashCode(); + hash = (37 * hash) + ENDPOINT_TYPE_FIELD_NUMBER; + hash = (53 * hash) + getEndpointType().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.EndPointName parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.EndPointName parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.EndPointName parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.EndPointName parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.EndPointName parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.EndPointName parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.EndPointName parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.EndPointName parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.EndPointName parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.EndPointName parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.EndPointName parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.EndPointName parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.EndPointName prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code context.EndPointName} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.EndPointName) + context.ContextOuterClass.EndPointNameOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_EndPointName_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_EndPointName_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.EndPointName.class, context.ContextOuterClass.EndPointName.Builder.class); + } + + // Construct using context.ContextOuterClass.EndPointName.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + endpointId_ = null; + if (endpointIdBuilder_ != null) { + endpointIdBuilder_.dispose(); + endpointIdBuilder_ = null; + } + deviceName_ = ""; + endpointName_ = ""; + endpointType_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_EndPointName_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.EndPointName getDefaultInstanceForType() { + return context.ContextOuterClass.EndPointName.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.EndPointName build() { + context.ContextOuterClass.EndPointName result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.EndPointName buildPartial() { + context.ContextOuterClass.EndPointName result = new context.ContextOuterClass.EndPointName(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(context.ContextOuterClass.EndPointName result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.endpointId_ = endpointIdBuilder_ == null ? endpointId_ : endpointIdBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.deviceName_ = deviceName_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.endpointName_ = endpointName_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.endpointType_ = endpointType_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.EndPointName) { + return mergeFrom((context.ContextOuterClass.EndPointName) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.EndPointName other) { + if (other == context.ContextOuterClass.EndPointName.getDefaultInstance()) + return this; + if (other.hasEndpointId()) { + mergeEndpointId(other.getEndpointId()); + } + if (!other.getDeviceName().isEmpty()) { + deviceName_ = other.deviceName_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (!other.getEndpointName().isEmpty()) { + endpointName_ = other.endpointName_; + bitField0_ |= 0x00000004; + onChanged(); + } + if (!other.getEndpointType().isEmpty()) { + endpointType_ = other.endpointType_; + bitField0_ |= 0x00000008; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getEndpointIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + deviceName_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } + // case 18 + case 26: + { + endpointName_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } + // case 26 + case 34: + { + endpointType_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000008; + break; + } + // case 34 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private context.ContextOuterClass.EndPointId endpointId_; + + private com.google.protobuf.SingleFieldBuilderV3 endpointIdBuilder_; + + /** + * .context.EndPointId endpoint_id = 1; + * @return Whether the endpointId field is set. + */ + public boolean hasEndpointId() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * .context.EndPointId endpoint_id = 1; + * @return The endpointId. + */ + public context.ContextOuterClass.EndPointId getEndpointId() { + if (endpointIdBuilder_ == null) { + return endpointId_ == null ? context.ContextOuterClass.EndPointId.getDefaultInstance() : endpointId_; + } else { + return endpointIdBuilder_.getMessage(); + } + } + + /** + * .context.EndPointId endpoint_id = 1; + */ + public Builder setEndpointId(context.ContextOuterClass.EndPointId value) { + if (endpointIdBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + endpointId_ = value; + } else { + endpointIdBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.EndPointId endpoint_id = 1; + */ + public Builder setEndpointId(context.ContextOuterClass.EndPointId.Builder builderForValue) { + if (endpointIdBuilder_ == null) { + endpointId_ = builderForValue.build(); + } else { + endpointIdBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.EndPointId endpoint_id = 1; + */ + public Builder mergeEndpointId(context.ContextOuterClass.EndPointId value) { + if (endpointIdBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && endpointId_ != null && endpointId_ != context.ContextOuterClass.EndPointId.getDefaultInstance()) { + getEndpointIdBuilder().mergeFrom(value); + } else { + endpointId_ = value; + } + } else { + endpointIdBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.EndPointId endpoint_id = 1; + */ + public Builder clearEndpointId() { + bitField0_ = (bitField0_ & ~0x00000001); + endpointId_ = null; + if (endpointIdBuilder_ != null) { + endpointIdBuilder_.dispose(); + endpointIdBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.EndPointId endpoint_id = 1; + */ + public context.ContextOuterClass.EndPointId.Builder getEndpointIdBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getEndpointIdFieldBuilder().getBuilder(); + } + + /** + * .context.EndPointId endpoint_id = 1; + */ + public context.ContextOuterClass.EndPointIdOrBuilder getEndpointIdOrBuilder() { + if (endpointIdBuilder_ != null) { + return endpointIdBuilder_.getMessageOrBuilder(); + } else { + return endpointId_ == null ? context.ContextOuterClass.EndPointId.getDefaultInstance() : endpointId_; + } + } + + /** + * .context.EndPointId endpoint_id = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3 getEndpointIdFieldBuilder() { + if (endpointIdBuilder_ == null) { + endpointIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getEndpointId(), getParentForChildren(), isClean()); + endpointId_ = null; + } + return endpointIdBuilder_; + } + + private java.lang.Object deviceName_ = ""; + + /** + * string device_name = 2; + * @return The deviceName. + */ + public java.lang.String getDeviceName() { + java.lang.Object ref = deviceName_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + deviceName_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * string device_name = 2; + * @return The bytes for deviceName. + */ + public com.google.protobuf.ByteString getDeviceNameBytes() { + java.lang.Object ref = deviceName_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + deviceName_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * string device_name = 2; + * @param value The deviceName to set. + * @return This builder for chaining. + */ + public Builder setDeviceName(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + deviceName_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * string device_name = 2; + * @return This builder for chaining. + */ + public Builder clearDeviceName() { + deviceName_ = getDefaultInstance().getDeviceName(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * string device_name = 2; + * @param value The bytes for deviceName to set. + * @return This builder for chaining. + */ + public Builder setDeviceNameBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + deviceName_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private java.lang.Object endpointName_ = ""; + + /** + * string endpoint_name = 3; + * @return The endpointName. + */ + public java.lang.String getEndpointName() { + java.lang.Object ref = endpointName_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + endpointName_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * string endpoint_name = 3; + * @return The bytes for endpointName. + */ + public com.google.protobuf.ByteString getEndpointNameBytes() { + java.lang.Object ref = endpointName_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + endpointName_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * string endpoint_name = 3; + * @param value The endpointName to set. + * @return This builder for chaining. + */ + public Builder setEndpointName(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + endpointName_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * string endpoint_name = 3; + * @return This builder for chaining. + */ + public Builder clearEndpointName() { + endpointName_ = getDefaultInstance().getEndpointName(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + + /** + * string endpoint_name = 3; + * @param value The bytes for endpointName to set. + * @return This builder for chaining. + */ + public Builder setEndpointNameBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + endpointName_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + private java.lang.Object endpointType_ = ""; + + /** + * string endpoint_type = 4; + * @return The endpointType. + */ + public java.lang.String getEndpointType() { + java.lang.Object ref = endpointType_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + endpointType_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * string endpoint_type = 4; + * @return The bytes for endpointType. + */ + public com.google.protobuf.ByteString getEndpointTypeBytes() { + java.lang.Object ref = endpointType_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + endpointType_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * string endpoint_type = 4; + * @param value The endpointType to set. + * @return This builder for chaining. + */ + public Builder setEndpointType(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + endpointType_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + /** + * string endpoint_type = 4; + * @return This builder for chaining. + */ + public Builder clearEndpointType() { + endpointType_ = getDefaultInstance().getEndpointType(); + bitField0_ = (bitField0_ & ~0x00000008); + onChanged(); + return this; + } + + /** + * string endpoint_type = 4; + * @param value The bytes for endpointType to set. + * @return This builder for chaining. + */ + public Builder setEndpointTypeBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + endpointType_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.EndPointName) + } + + // @@protoc_insertion_point(class_scope:context.EndPointName) + private static final context.ContextOuterClass.EndPointName DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.EndPointName(); + } + + public static context.ContextOuterClass.EndPointName getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public EndPointName parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.EndPointName getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface EndPointIdListOrBuilder extends // @@protoc_insertion_point(interface_extends:context.EndPointIdList) + com.google.protobuf.MessageOrBuilder { + + /** + * repeated .context.EndPointId endpoint_ids = 1; + */ + java.util.List getEndpointIdsList(); + + /** + * repeated .context.EndPointId endpoint_ids = 1; + */ + context.ContextOuterClass.EndPointId getEndpointIds(int index); + + /** + * repeated .context.EndPointId endpoint_ids = 1; + */ + int getEndpointIdsCount(); + + /** + * repeated .context.EndPointId endpoint_ids = 1; + */ + java.util.List getEndpointIdsOrBuilderList(); + + /** + * repeated .context.EndPointId endpoint_ids = 1; + */ + context.ContextOuterClass.EndPointIdOrBuilder getEndpointIdsOrBuilder(int index); + } + + /** + * Protobuf type {@code context.EndPointIdList} + */ + public static final class EndPointIdList extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.EndPointIdList) + EndPointIdListOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use EndPointIdList.newBuilder() to construct. + private EndPointIdList(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private EndPointIdList() { + endpointIds_ = java.util.Collections.emptyList(); + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new EndPointIdList(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_EndPointIdList_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_EndPointIdList_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.EndPointIdList.class, context.ContextOuterClass.EndPointIdList.Builder.class); + } + + public static final int ENDPOINT_IDS_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private java.util.List endpointIds_; + + /** + * repeated .context.EndPointId endpoint_ids = 1; + */ + @java.lang.Override + public java.util.List getEndpointIdsList() { + return endpointIds_; + } + + /** + * repeated .context.EndPointId endpoint_ids = 1; + */ + @java.lang.Override + public java.util.List getEndpointIdsOrBuilderList() { + return endpointIds_; + } + + /** + * repeated .context.EndPointId endpoint_ids = 1; + */ + @java.lang.Override + public int getEndpointIdsCount() { + return endpointIds_.size(); + } + + /** + * repeated .context.EndPointId endpoint_ids = 1; + */ + @java.lang.Override + public context.ContextOuterClass.EndPointId getEndpointIds(int index) { + return endpointIds_.get(index); + } + + /** + * repeated .context.EndPointId endpoint_ids = 1; + */ + @java.lang.Override + public context.ContextOuterClass.EndPointIdOrBuilder getEndpointIdsOrBuilder(int index) { + return endpointIds_.get(index); + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + for (int i = 0; i < endpointIds_.size(); i++) { + output.writeMessage(1, endpointIds_.get(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + for (int i = 0; i < endpointIds_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, endpointIds_.get(i)); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.EndPointIdList)) { + return super.equals(obj); + } + context.ContextOuterClass.EndPointIdList other = (context.ContextOuterClass.EndPointIdList) obj; + if (!getEndpointIdsList().equals(other.getEndpointIdsList())) + return false; + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getEndpointIdsCount() > 0) { + hash = (37 * hash) + ENDPOINT_IDS_FIELD_NUMBER; + hash = (53 * hash) + getEndpointIdsList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.EndPointIdList parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.EndPointIdList parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.EndPointIdList parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.EndPointIdList parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.EndPointIdList parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.EndPointIdList parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.EndPointIdList parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.EndPointIdList parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.EndPointIdList parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.EndPointIdList parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.EndPointIdList parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.EndPointIdList parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.EndPointIdList prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code context.EndPointIdList} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.EndPointIdList) + context.ContextOuterClass.EndPointIdListOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_EndPointIdList_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_EndPointIdList_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.EndPointIdList.class, context.ContextOuterClass.EndPointIdList.Builder.class); + } + + // Construct using context.ContextOuterClass.EndPointIdList.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + if (endpointIdsBuilder_ == null) { + endpointIds_ = java.util.Collections.emptyList(); + } else { + endpointIds_ = null; + endpointIdsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_EndPointIdList_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.EndPointIdList getDefaultInstanceForType() { + return context.ContextOuterClass.EndPointIdList.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.EndPointIdList build() { + context.ContextOuterClass.EndPointIdList result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.EndPointIdList buildPartial() { + context.ContextOuterClass.EndPointIdList result = new context.ContextOuterClass.EndPointIdList(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(context.ContextOuterClass.EndPointIdList result) { + if (endpointIdsBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + endpointIds_ = java.util.Collections.unmodifiableList(endpointIds_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.endpointIds_ = endpointIds_; + } else { + result.endpointIds_ = endpointIdsBuilder_.build(); + } + } + + private void buildPartial0(context.ContextOuterClass.EndPointIdList result) { + int from_bitField0_ = bitField0_; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.EndPointIdList) { + return mergeFrom((context.ContextOuterClass.EndPointIdList) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.EndPointIdList other) { + if (other == context.ContextOuterClass.EndPointIdList.getDefaultInstance()) + return this; + if (endpointIdsBuilder_ == null) { + if (!other.endpointIds_.isEmpty()) { + if (endpointIds_.isEmpty()) { + endpointIds_ = other.endpointIds_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureEndpointIdsIsMutable(); + endpointIds_.addAll(other.endpointIds_); + } + onChanged(); + } + } else { + if (!other.endpointIds_.isEmpty()) { + if (endpointIdsBuilder_.isEmpty()) { + endpointIdsBuilder_.dispose(); + endpointIdsBuilder_ = null; + endpointIds_ = other.endpointIds_; + bitField0_ = (bitField0_ & ~0x00000001); + endpointIdsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getEndpointIdsFieldBuilder() : null; + } else { + endpointIdsBuilder_.addAllMessages(other.endpointIds_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + context.ContextOuterClass.EndPointId m = input.readMessage(context.ContextOuterClass.EndPointId.parser(), extensionRegistry); + if (endpointIdsBuilder_ == null) { + ensureEndpointIdsIsMutable(); + endpointIds_.add(m); + } else { + endpointIdsBuilder_.addMessage(m); + } + break; + } + // case 10 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private java.util.List endpointIds_ = java.util.Collections.emptyList(); + + private void ensureEndpointIdsIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + endpointIds_ = new java.util.ArrayList(endpointIds_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3 endpointIdsBuilder_; + + /** + * repeated .context.EndPointId endpoint_ids = 1; + */ + public java.util.List getEndpointIdsList() { + if (endpointIdsBuilder_ == null) { + return java.util.Collections.unmodifiableList(endpointIds_); + } else { + return endpointIdsBuilder_.getMessageList(); + } + } + + /** + * repeated .context.EndPointId endpoint_ids = 1; + */ + public int getEndpointIdsCount() { + if (endpointIdsBuilder_ == null) { + return endpointIds_.size(); + } else { + return endpointIdsBuilder_.getCount(); + } + } + + /** + * repeated .context.EndPointId endpoint_ids = 1; + */ + public context.ContextOuterClass.EndPointId getEndpointIds(int index) { + if (endpointIdsBuilder_ == null) { + return endpointIds_.get(index); + } else { + return endpointIdsBuilder_.getMessage(index); + } + } + + /** + * repeated .context.EndPointId endpoint_ids = 1; + */ + public Builder setEndpointIds(int index, context.ContextOuterClass.EndPointId value) { + if (endpointIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureEndpointIdsIsMutable(); + endpointIds_.set(index, value); + onChanged(); + } else { + endpointIdsBuilder_.setMessage(index, value); + } + return this; + } + + /** + * repeated .context.EndPointId endpoint_ids = 1; + */ + public Builder setEndpointIds(int index, context.ContextOuterClass.EndPointId.Builder builderForValue) { + if (endpointIdsBuilder_ == null) { + ensureEndpointIdsIsMutable(); + endpointIds_.set(index, builderForValue.build()); + onChanged(); + } else { + endpointIdsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.EndPointId endpoint_ids = 1; + */ + public Builder addEndpointIds(context.ContextOuterClass.EndPointId value) { + if (endpointIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureEndpointIdsIsMutable(); + endpointIds_.add(value); + onChanged(); + } else { + endpointIdsBuilder_.addMessage(value); + } + return this; + } + + /** + * repeated .context.EndPointId endpoint_ids = 1; + */ + public Builder addEndpointIds(int index, context.ContextOuterClass.EndPointId value) { + if (endpointIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureEndpointIdsIsMutable(); + endpointIds_.add(index, value); + onChanged(); + } else { + endpointIdsBuilder_.addMessage(index, value); + } + return this; + } + + /** + * repeated .context.EndPointId endpoint_ids = 1; + */ + public Builder addEndpointIds(context.ContextOuterClass.EndPointId.Builder builderForValue) { + if (endpointIdsBuilder_ == null) { + ensureEndpointIdsIsMutable(); + endpointIds_.add(builderForValue.build()); + onChanged(); + } else { + endpointIdsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * repeated .context.EndPointId endpoint_ids = 1; + */ + public Builder addEndpointIds(int index, context.ContextOuterClass.EndPointId.Builder builderForValue) { + if (endpointIdsBuilder_ == null) { + ensureEndpointIdsIsMutable(); + endpointIds_.add(index, builderForValue.build()); + onChanged(); + } else { + endpointIdsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.EndPointId endpoint_ids = 1; + */ + public Builder addAllEndpointIds(java.lang.Iterable values) { + if (endpointIdsBuilder_ == null) { + ensureEndpointIdsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, endpointIds_); + onChanged(); + } else { + endpointIdsBuilder_.addAllMessages(values); + } + return this; + } + + /** + * repeated .context.EndPointId endpoint_ids = 1; + */ + public Builder clearEndpointIds() { + if (endpointIdsBuilder_ == null) { + endpointIds_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + endpointIdsBuilder_.clear(); + } + return this; + } + + /** + * repeated .context.EndPointId endpoint_ids = 1; + */ + public Builder removeEndpointIds(int index) { + if (endpointIdsBuilder_ == null) { + ensureEndpointIdsIsMutable(); + endpointIds_.remove(index); + onChanged(); + } else { + endpointIdsBuilder_.remove(index); + } + return this; + } + + /** + * repeated .context.EndPointId endpoint_ids = 1; + */ + public context.ContextOuterClass.EndPointId.Builder getEndpointIdsBuilder(int index) { + return getEndpointIdsFieldBuilder().getBuilder(index); + } + + /** + * repeated .context.EndPointId endpoint_ids = 1; + */ + public context.ContextOuterClass.EndPointIdOrBuilder getEndpointIdsOrBuilder(int index) { + if (endpointIdsBuilder_ == null) { + return endpointIds_.get(index); + } else { + return endpointIdsBuilder_.getMessageOrBuilder(index); + } + } + + /** + * repeated .context.EndPointId endpoint_ids = 1; + */ + public java.util.List getEndpointIdsOrBuilderList() { + if (endpointIdsBuilder_ != null) { + return endpointIdsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(endpointIds_); + } + } + + /** + * repeated .context.EndPointId endpoint_ids = 1; + */ + public context.ContextOuterClass.EndPointId.Builder addEndpointIdsBuilder() { + return getEndpointIdsFieldBuilder().addBuilder(context.ContextOuterClass.EndPointId.getDefaultInstance()); + } + + /** + * repeated .context.EndPointId endpoint_ids = 1; + */ + public context.ContextOuterClass.EndPointId.Builder addEndpointIdsBuilder(int index) { + return getEndpointIdsFieldBuilder().addBuilder(index, context.ContextOuterClass.EndPointId.getDefaultInstance()); + } + + /** + * repeated .context.EndPointId endpoint_ids = 1; + */ + public java.util.List getEndpointIdsBuilderList() { + return getEndpointIdsFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3 getEndpointIdsFieldBuilder() { + if (endpointIdsBuilder_ == null) { + endpointIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3(endpointIds_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean()); + endpointIds_ = null; + } + return endpointIdsBuilder_; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.EndPointIdList) + } + + // @@protoc_insertion_point(class_scope:context.EndPointIdList) + private static final context.ContextOuterClass.EndPointIdList DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.EndPointIdList(); + } + + public static context.ContextOuterClass.EndPointIdList getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public EndPointIdList parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.EndPointIdList getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface EndPointNameListOrBuilder extends // @@protoc_insertion_point(interface_extends:context.EndPointNameList) + com.google.protobuf.MessageOrBuilder { + + /** + * repeated .context.EndPointName endpoint_names = 1; + */ + java.util.List getEndpointNamesList(); + + /** + * repeated .context.EndPointName endpoint_names = 1; + */ + context.ContextOuterClass.EndPointName getEndpointNames(int index); + + /** + * repeated .context.EndPointName endpoint_names = 1; + */ + int getEndpointNamesCount(); + + /** + * repeated .context.EndPointName endpoint_names = 1; + */ + java.util.List getEndpointNamesOrBuilderList(); + + /** + * repeated .context.EndPointName endpoint_names = 1; + */ + context.ContextOuterClass.EndPointNameOrBuilder getEndpointNamesOrBuilder(int index); + } + + /** + * Protobuf type {@code context.EndPointNameList} + */ + public static final class EndPointNameList extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.EndPointNameList) + EndPointNameListOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use EndPointNameList.newBuilder() to construct. + private EndPointNameList(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private EndPointNameList() { + endpointNames_ = java.util.Collections.emptyList(); + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new EndPointNameList(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_EndPointNameList_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_EndPointNameList_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.EndPointNameList.class, context.ContextOuterClass.EndPointNameList.Builder.class); + } + + public static final int ENDPOINT_NAMES_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private java.util.List endpointNames_; + + /** + * repeated .context.EndPointName endpoint_names = 1; + */ + @java.lang.Override + public java.util.List getEndpointNamesList() { + return endpointNames_; + } + + /** + * repeated .context.EndPointName endpoint_names = 1; + */ + @java.lang.Override + public java.util.List getEndpointNamesOrBuilderList() { + return endpointNames_; + } + + /** + * repeated .context.EndPointName endpoint_names = 1; + */ + @java.lang.Override + public int getEndpointNamesCount() { + return endpointNames_.size(); + } + + /** + * repeated .context.EndPointName endpoint_names = 1; + */ + @java.lang.Override + public context.ContextOuterClass.EndPointName getEndpointNames(int index) { + return endpointNames_.get(index); + } + + /** + * repeated .context.EndPointName endpoint_names = 1; + */ + @java.lang.Override + public context.ContextOuterClass.EndPointNameOrBuilder getEndpointNamesOrBuilder(int index) { + return endpointNames_.get(index); + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + for (int i = 0; i < endpointNames_.size(); i++) { + output.writeMessage(1, endpointNames_.get(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + for (int i = 0; i < endpointNames_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, endpointNames_.get(i)); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.EndPointNameList)) { + return super.equals(obj); + } + context.ContextOuterClass.EndPointNameList other = (context.ContextOuterClass.EndPointNameList) obj; + if (!getEndpointNamesList().equals(other.getEndpointNamesList())) + return false; + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getEndpointNamesCount() > 0) { + hash = (37 * hash) + ENDPOINT_NAMES_FIELD_NUMBER; + hash = (53 * hash) + getEndpointNamesList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.EndPointNameList parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.EndPointNameList parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.EndPointNameList parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.EndPointNameList parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.EndPointNameList parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.EndPointNameList parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.EndPointNameList parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.EndPointNameList parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.EndPointNameList parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.EndPointNameList parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.EndPointNameList parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.EndPointNameList parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.EndPointNameList prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code context.EndPointNameList} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.EndPointNameList) + context.ContextOuterClass.EndPointNameListOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_EndPointNameList_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_EndPointNameList_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.EndPointNameList.class, context.ContextOuterClass.EndPointNameList.Builder.class); + } + + // Construct using context.ContextOuterClass.EndPointNameList.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + if (endpointNamesBuilder_ == null) { + endpointNames_ = java.util.Collections.emptyList(); + } else { + endpointNames_ = null; + endpointNamesBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_EndPointNameList_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.EndPointNameList getDefaultInstanceForType() { + return context.ContextOuterClass.EndPointNameList.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.EndPointNameList build() { + context.ContextOuterClass.EndPointNameList result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.EndPointNameList buildPartial() { + context.ContextOuterClass.EndPointNameList result = new context.ContextOuterClass.EndPointNameList(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(context.ContextOuterClass.EndPointNameList result) { + if (endpointNamesBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + endpointNames_ = java.util.Collections.unmodifiableList(endpointNames_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.endpointNames_ = endpointNames_; + } else { + result.endpointNames_ = endpointNamesBuilder_.build(); + } + } + + private void buildPartial0(context.ContextOuterClass.EndPointNameList result) { + int from_bitField0_ = bitField0_; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.EndPointNameList) { + return mergeFrom((context.ContextOuterClass.EndPointNameList) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.EndPointNameList other) { + if (other == context.ContextOuterClass.EndPointNameList.getDefaultInstance()) + return this; + if (endpointNamesBuilder_ == null) { + if (!other.endpointNames_.isEmpty()) { + if (endpointNames_.isEmpty()) { + endpointNames_ = other.endpointNames_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureEndpointNamesIsMutable(); + endpointNames_.addAll(other.endpointNames_); + } + onChanged(); + } + } else { + if (!other.endpointNames_.isEmpty()) { + if (endpointNamesBuilder_.isEmpty()) { + endpointNamesBuilder_.dispose(); + endpointNamesBuilder_ = null; + endpointNames_ = other.endpointNames_; + bitField0_ = (bitField0_ & ~0x00000001); + endpointNamesBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getEndpointNamesFieldBuilder() : null; + } else { + endpointNamesBuilder_.addAllMessages(other.endpointNames_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + context.ContextOuterClass.EndPointName m = input.readMessage(context.ContextOuterClass.EndPointName.parser(), extensionRegistry); + if (endpointNamesBuilder_ == null) { + ensureEndpointNamesIsMutable(); + endpointNames_.add(m); + } else { + endpointNamesBuilder_.addMessage(m); + } + break; + } + // case 10 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private java.util.List endpointNames_ = java.util.Collections.emptyList(); + + private void ensureEndpointNamesIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + endpointNames_ = new java.util.ArrayList(endpointNames_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3 endpointNamesBuilder_; + + /** + * repeated .context.EndPointName endpoint_names = 1; + */ + public java.util.List getEndpointNamesList() { + if (endpointNamesBuilder_ == null) { + return java.util.Collections.unmodifiableList(endpointNames_); + } else { + return endpointNamesBuilder_.getMessageList(); + } + } + + /** + * repeated .context.EndPointName endpoint_names = 1; + */ + public int getEndpointNamesCount() { + if (endpointNamesBuilder_ == null) { + return endpointNames_.size(); + } else { + return endpointNamesBuilder_.getCount(); + } + } + + /** + * repeated .context.EndPointName endpoint_names = 1; + */ + public context.ContextOuterClass.EndPointName getEndpointNames(int index) { + if (endpointNamesBuilder_ == null) { + return endpointNames_.get(index); + } else { + return endpointNamesBuilder_.getMessage(index); + } + } + + /** + * repeated .context.EndPointName endpoint_names = 1; + */ + public Builder setEndpointNames(int index, context.ContextOuterClass.EndPointName value) { + if (endpointNamesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureEndpointNamesIsMutable(); + endpointNames_.set(index, value); + onChanged(); + } else { + endpointNamesBuilder_.setMessage(index, value); + } + return this; + } + + /** + * repeated .context.EndPointName endpoint_names = 1; + */ + public Builder setEndpointNames(int index, context.ContextOuterClass.EndPointName.Builder builderForValue) { + if (endpointNamesBuilder_ == null) { + ensureEndpointNamesIsMutable(); + endpointNames_.set(index, builderForValue.build()); + onChanged(); + } else { + endpointNamesBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.EndPointName endpoint_names = 1; + */ + public Builder addEndpointNames(context.ContextOuterClass.EndPointName value) { + if (endpointNamesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureEndpointNamesIsMutable(); + endpointNames_.add(value); + onChanged(); + } else { + endpointNamesBuilder_.addMessage(value); + } + return this; + } + + /** + * repeated .context.EndPointName endpoint_names = 1; + */ + public Builder addEndpointNames(int index, context.ContextOuterClass.EndPointName value) { + if (endpointNamesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureEndpointNamesIsMutable(); + endpointNames_.add(index, value); + onChanged(); + } else { + endpointNamesBuilder_.addMessage(index, value); + } + return this; + } + + /** + * repeated .context.EndPointName endpoint_names = 1; + */ + public Builder addEndpointNames(context.ContextOuterClass.EndPointName.Builder builderForValue) { + if (endpointNamesBuilder_ == null) { + ensureEndpointNamesIsMutable(); + endpointNames_.add(builderForValue.build()); + onChanged(); + } else { + endpointNamesBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * repeated .context.EndPointName endpoint_names = 1; + */ + public Builder addEndpointNames(int index, context.ContextOuterClass.EndPointName.Builder builderForValue) { + if (endpointNamesBuilder_ == null) { + ensureEndpointNamesIsMutable(); + endpointNames_.add(index, builderForValue.build()); + onChanged(); + } else { + endpointNamesBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * repeated .context.EndPointName endpoint_names = 1; + */ + public Builder addAllEndpointNames(java.lang.Iterable values) { + if (endpointNamesBuilder_ == null) { + ensureEndpointNamesIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, endpointNames_); + onChanged(); + } else { + endpointNamesBuilder_.addAllMessages(values); + } + return this; + } + + /** + * repeated .context.EndPointName endpoint_names = 1; + */ + public Builder clearEndpointNames() { + if (endpointNamesBuilder_ == null) { + endpointNames_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + endpointNamesBuilder_.clear(); + } + return this; + } + + /** + * repeated .context.EndPointName endpoint_names = 1; + */ + public Builder removeEndpointNames(int index) { + if (endpointNamesBuilder_ == null) { + ensureEndpointNamesIsMutable(); + endpointNames_.remove(index); + onChanged(); + } else { + endpointNamesBuilder_.remove(index); + } + return this; + } + + /** + * repeated .context.EndPointName endpoint_names = 1; + */ + public context.ContextOuterClass.EndPointName.Builder getEndpointNamesBuilder(int index) { + return getEndpointNamesFieldBuilder().getBuilder(index); + } + + /** + * repeated .context.EndPointName endpoint_names = 1; + */ + public context.ContextOuterClass.EndPointNameOrBuilder getEndpointNamesOrBuilder(int index) { + if (endpointNamesBuilder_ == null) { + return endpointNames_.get(index); + } else { + return endpointNamesBuilder_.getMessageOrBuilder(index); + } + } + + /** + * repeated .context.EndPointName endpoint_names = 1; + */ + public java.util.List getEndpointNamesOrBuilderList() { + if (endpointNamesBuilder_ != null) { + return endpointNamesBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(endpointNames_); + } + } + + /** + * repeated .context.EndPointName endpoint_names = 1; + */ + public context.ContextOuterClass.EndPointName.Builder addEndpointNamesBuilder() { + return getEndpointNamesFieldBuilder().addBuilder(context.ContextOuterClass.EndPointName.getDefaultInstance()); + } + + /** + * repeated .context.EndPointName endpoint_names = 1; + */ + public context.ContextOuterClass.EndPointName.Builder addEndpointNamesBuilder(int index) { + return getEndpointNamesFieldBuilder().addBuilder(index, context.ContextOuterClass.EndPointName.getDefaultInstance()); + } + + /** + * repeated .context.EndPointName endpoint_names = 1; + */ + public java.util.List getEndpointNamesBuilderList() { + return getEndpointNamesFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3 getEndpointNamesFieldBuilder() { + if (endpointNamesBuilder_ == null) { + endpointNamesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3(endpointNames_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean()); + endpointNames_ = null; + } + return endpointNamesBuilder_; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.EndPointNameList) + } + + // @@protoc_insertion_point(class_scope:context.EndPointNameList) + private static final context.ContextOuterClass.EndPointNameList DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.EndPointNameList(); + } + + public static context.ContextOuterClass.EndPointNameList getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public EndPointNameList parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.EndPointNameList getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface ConfigRule_CustomOrBuilder extends // @@protoc_insertion_point(interface_extends:context.ConfigRule_Custom) + com.google.protobuf.MessageOrBuilder { + + /** + * string resource_key = 1; + * @return The resourceKey. + */ + java.lang.String getResourceKey(); + + /** + * string resource_key = 1; + * @return The bytes for resourceKey. + */ + com.google.protobuf.ByteString getResourceKeyBytes(); + + /** + * string resource_value = 2; + * @return The resourceValue. + */ + java.lang.String getResourceValue(); + + /** + * string resource_value = 2; + * @return The bytes for resourceValue. + */ + com.google.protobuf.ByteString getResourceValueBytes(); + } + + /** + * Protobuf type {@code context.ConfigRule_Custom} + */ + public static final class ConfigRule_Custom extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.ConfigRule_Custom) + ConfigRule_CustomOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use ConfigRule_Custom.newBuilder() to construct. + private ConfigRule_Custom(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private ConfigRule_Custom() { + resourceKey_ = ""; + resourceValue_ = ""; + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new ConfigRule_Custom(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_ConfigRule_Custom_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_ConfigRule_Custom_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.ConfigRule_Custom.class, context.ContextOuterClass.ConfigRule_Custom.Builder.class); + } + + public static final int RESOURCE_KEY_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private volatile java.lang.Object resourceKey_ = ""; + + /** + * string resource_key = 1; + * @return The resourceKey. + */ + @java.lang.Override + public java.lang.String getResourceKey() { + java.lang.Object ref = resourceKey_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + resourceKey_ = s; + return s; + } + } + + /** + * string resource_key = 1; + * @return The bytes for resourceKey. + */ + @java.lang.Override + public com.google.protobuf.ByteString getResourceKeyBytes() { + java.lang.Object ref = resourceKey_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + resourceKey_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int RESOURCE_VALUE_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object resourceValue_ = ""; + + /** + * string resource_value = 2; + * @return The resourceValue. + */ + @java.lang.Override + public java.lang.String getResourceValue() { + java.lang.Object ref = resourceValue_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + resourceValue_ = s; + return s; + } + } + + /** + * string resource_value = 2; + * @return The bytes for resourceValue. + */ + @java.lang.Override + public com.google.protobuf.ByteString getResourceValueBytes() { + java.lang.Object ref = resourceValue_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + resourceValue_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(resourceKey_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, resourceKey_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(resourceValue_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, resourceValue_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(resourceKey_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, resourceKey_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(resourceValue_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, resourceValue_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.ConfigRule_Custom)) { + return super.equals(obj); + } + context.ContextOuterClass.ConfigRule_Custom other = (context.ContextOuterClass.ConfigRule_Custom) obj; + if (!getResourceKey().equals(other.getResourceKey())) + return false; + if (!getResourceValue().equals(other.getResourceValue())) + return false; + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + RESOURCE_KEY_FIELD_NUMBER; + hash = (53 * hash) + getResourceKey().hashCode(); + hash = (37 * hash) + RESOURCE_VALUE_FIELD_NUMBER; + hash = (53 * hash) + getResourceValue().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.ConfigRule_Custom parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ConfigRule_Custom parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ConfigRule_Custom parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ConfigRule_Custom parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ConfigRule_Custom parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ConfigRule_Custom parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ConfigRule_Custom parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ConfigRule_Custom parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.ConfigRule_Custom parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ConfigRule_Custom parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.ConfigRule_Custom parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ConfigRule_Custom parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.ConfigRule_Custom prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code context.ConfigRule_Custom} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.ConfigRule_Custom) + context.ContextOuterClass.ConfigRule_CustomOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_ConfigRule_Custom_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_ConfigRule_Custom_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.ConfigRule_Custom.class, context.ContextOuterClass.ConfigRule_Custom.Builder.class); + } + + // Construct using context.ContextOuterClass.ConfigRule_Custom.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + resourceKey_ = ""; + resourceValue_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_ConfigRule_Custom_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.ConfigRule_Custom getDefaultInstanceForType() { + return context.ContextOuterClass.ConfigRule_Custom.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.ConfigRule_Custom build() { + context.ContextOuterClass.ConfigRule_Custom result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.ConfigRule_Custom buildPartial() { + context.ContextOuterClass.ConfigRule_Custom result = new context.ContextOuterClass.ConfigRule_Custom(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(context.ContextOuterClass.ConfigRule_Custom result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.resourceKey_ = resourceKey_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.resourceValue_ = resourceValue_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.ConfigRule_Custom) { + return mergeFrom((context.ContextOuterClass.ConfigRule_Custom) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.ConfigRule_Custom other) { + if (other == context.ContextOuterClass.ConfigRule_Custom.getDefaultInstance()) + return this; + if (!other.getResourceKey().isEmpty()) { + resourceKey_ = other.resourceKey_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (!other.getResourceValue().isEmpty()) { + resourceValue_ = other.resourceValue_; + bitField0_ |= 0x00000002; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + resourceKey_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + resourceValue_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } + // case 18 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private java.lang.Object resourceKey_ = ""; + + /** + * string resource_key = 1; + * @return The resourceKey. + */ + public java.lang.String getResourceKey() { + java.lang.Object ref = resourceKey_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + resourceKey_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * string resource_key = 1; + * @return The bytes for resourceKey. + */ + public com.google.protobuf.ByteString getResourceKeyBytes() { + java.lang.Object ref = resourceKey_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + resourceKey_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * string resource_key = 1; + * @param value The resourceKey to set. + * @return This builder for chaining. + */ + public Builder setResourceKey(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + resourceKey_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * string resource_key = 1; + * @return This builder for chaining. + */ + public Builder clearResourceKey() { + resourceKey_ = getDefaultInstance().getResourceKey(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + + /** + * string resource_key = 1; + * @param value The bytes for resourceKey to set. + * @return This builder for chaining. + */ + public Builder setResourceKeyBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + resourceKey_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private java.lang.Object resourceValue_ = ""; + + /** + * string resource_value = 2; + * @return The resourceValue. + */ + public java.lang.String getResourceValue() { + java.lang.Object ref = resourceValue_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + resourceValue_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * string resource_value = 2; + * @return The bytes for resourceValue. + */ + public com.google.protobuf.ByteString getResourceValueBytes() { + java.lang.Object ref = resourceValue_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + resourceValue_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * string resource_value = 2; + * @param value The resourceValue to set. + * @return This builder for chaining. + */ + public Builder setResourceValue(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + resourceValue_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * string resource_value = 2; + * @return This builder for chaining. + */ + public Builder clearResourceValue() { + resourceValue_ = getDefaultInstance().getResourceValue(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * string resource_value = 2; + * @param value The bytes for resourceValue to set. + * @return This builder for chaining. + */ + public Builder setResourceValueBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + resourceValue_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.ConfigRule_Custom) + } + + // @@protoc_insertion_point(class_scope:context.ConfigRule_Custom) + private static final context.ContextOuterClass.ConfigRule_Custom DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.ConfigRule_Custom(); + } + + public static context.ContextOuterClass.ConfigRule_Custom getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public ConfigRule_Custom parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.ConfigRule_Custom getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface ConfigRule_ACLOrBuilder extends // @@protoc_insertion_point(interface_extends:context.ConfigRule_ACL) + com.google.protobuf.MessageOrBuilder { + + /** + * .context.EndPointId endpoint_id = 1; + * @return Whether the endpointId field is set. + */ + boolean hasEndpointId(); + + /** + * .context.EndPointId endpoint_id = 1; + * @return The endpointId. + */ + context.ContextOuterClass.EndPointId getEndpointId(); + + /** + * .context.EndPointId endpoint_id = 1; + */ + context.ContextOuterClass.EndPointIdOrBuilder getEndpointIdOrBuilder(); + + /** + * .acl.AclRuleSet rule_set = 2; + * @return Whether the ruleSet field is set. + */ + boolean hasRuleSet(); + + /** + * .acl.AclRuleSet rule_set = 2; + * @return The ruleSet. + */ + acl.Acl.AclRuleSet getRuleSet(); + + /** + * .acl.AclRuleSet rule_set = 2; + */ + acl.Acl.AclRuleSetOrBuilder getRuleSetOrBuilder(); + } + + /** + * Protobuf type {@code context.ConfigRule_ACL} */ - java.lang.String getName(); + public static final class ConfigRule_ACL extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.ConfigRule_ACL) + ConfigRule_ACLOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use ConfigRule_ACL.newBuilder() to construct. + private ConfigRule_ACL(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private ConfigRule_ACL() { + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new ConfigRule_ACL(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_ConfigRule_ACL_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_ConfigRule_ACL_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.ConfigRule_ACL.class, context.ContextOuterClass.ConfigRule_ACL.Builder.class); + } + + public static final int ENDPOINT_ID_FIELD_NUMBER = 1; + + private context.ContextOuterClass.EndPointId endpointId_; + + /** + * .context.EndPointId endpoint_id = 1; + * @return Whether the endpointId field is set. + */ + @java.lang.Override + public boolean hasEndpointId() { + return endpointId_ != null; + } + + /** + * .context.EndPointId endpoint_id = 1; + * @return The endpointId. + */ + @java.lang.Override + public context.ContextOuterClass.EndPointId getEndpointId() { + return endpointId_ == null ? context.ContextOuterClass.EndPointId.getDefaultInstance() : endpointId_; + } + + /** + * .context.EndPointId endpoint_id = 1; + */ + @java.lang.Override + public context.ContextOuterClass.EndPointIdOrBuilder getEndpointIdOrBuilder() { + return endpointId_ == null ? context.ContextOuterClass.EndPointId.getDefaultInstance() : endpointId_; + } + + public static final int RULE_SET_FIELD_NUMBER = 2; + + private acl.Acl.AclRuleSet ruleSet_; + + /** + * .acl.AclRuleSet rule_set = 2; + * @return Whether the ruleSet field is set. + */ + @java.lang.Override + public boolean hasRuleSet() { + return ruleSet_ != null; + } + + /** + * .acl.AclRuleSet rule_set = 2; + * @return The ruleSet. + */ + @java.lang.Override + public acl.Acl.AclRuleSet getRuleSet() { + return ruleSet_ == null ? acl.Acl.AclRuleSet.getDefaultInstance() : ruleSet_; + } + + /** + * .acl.AclRuleSet rule_set = 2; + */ + @java.lang.Override + public acl.Acl.AclRuleSetOrBuilder getRuleSetOrBuilder() { + return ruleSet_ == null ? acl.Acl.AclRuleSet.getDefaultInstance() : ruleSet_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (endpointId_ != null) { + output.writeMessage(1, getEndpointId()); + } + if (ruleSet_ != null) { + output.writeMessage(2, getRuleSet()); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + if (endpointId_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getEndpointId()); + } + if (ruleSet_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getRuleSet()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.ConfigRule_ACL)) { + return super.equals(obj); + } + context.ContextOuterClass.ConfigRule_ACL other = (context.ContextOuterClass.ConfigRule_ACL) obj; + if (hasEndpointId() != other.hasEndpointId()) + return false; + if (hasEndpointId()) { + if (!getEndpointId().equals(other.getEndpointId())) + return false; + } + if (hasRuleSet() != other.hasRuleSet()) + return false; + if (hasRuleSet()) { + if (!getRuleSet().equals(other.getRuleSet())) + return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasEndpointId()) { + hash = (37 * hash) + ENDPOINT_ID_FIELD_NUMBER; + hash = (53 * hash) + getEndpointId().hashCode(); + } + if (hasRuleSet()) { + hash = (37 * hash) + RULE_SET_FIELD_NUMBER; + hash = (53 * hash) + getRuleSet().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.ConfigRule_ACL parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ConfigRule_ACL parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ConfigRule_ACL parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ConfigRule_ACL parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ConfigRule_ACL parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.ConfigRule_ACL parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.ConfigRule_ACL parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ConfigRule_ACL parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.ConfigRule_ACL parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ConfigRule_ACL parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.ConfigRule_ACL parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.ConfigRule_ACL parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.ConfigRule_ACL prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code context.ConfigRule_ACL} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.ConfigRule_ACL) + context.ContextOuterClass.ConfigRule_ACLOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_ConfigRule_ACL_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_ConfigRule_ACL_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.ConfigRule_ACL.class, context.ContextOuterClass.ConfigRule_ACL.Builder.class); + } + + // Construct using context.ContextOuterClass.ConfigRule_ACL.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + endpointId_ = null; + if (endpointIdBuilder_ != null) { + endpointIdBuilder_.dispose(); + endpointIdBuilder_ = null; + } + ruleSet_ = null; + if (ruleSetBuilder_ != null) { + ruleSetBuilder_.dispose(); + ruleSetBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_ConfigRule_ACL_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.ConfigRule_ACL getDefaultInstanceForType() { + return context.ContextOuterClass.ConfigRule_ACL.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.ConfigRule_ACL build() { + context.ContextOuterClass.ConfigRule_ACL result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.ConfigRule_ACL buildPartial() { + context.ContextOuterClass.ConfigRule_ACL result = new context.ContextOuterClass.ConfigRule_ACL(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(context.ContextOuterClass.ConfigRule_ACL result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.endpointId_ = endpointIdBuilder_ == null ? endpointId_ : endpointIdBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.ruleSet_ = ruleSetBuilder_ == null ? ruleSet_ : ruleSetBuilder_.build(); + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.ConfigRule_ACL) { + return mergeFrom((context.ContextOuterClass.ConfigRule_ACL) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.ConfigRule_ACL other) { + if (other == context.ContextOuterClass.ConfigRule_ACL.getDefaultInstance()) + return this; + if (other.hasEndpointId()) { + mergeEndpointId(other.getEndpointId()); + } + if (other.hasRuleSet()) { + mergeRuleSet(other.getRuleSet()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getEndpointIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + input.readMessage(getRuleSetFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000002; + break; + } + // case 18 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private context.ContextOuterClass.EndPointId endpointId_; + + private com.google.protobuf.SingleFieldBuilderV3 endpointIdBuilder_; + + /** + * .context.EndPointId endpoint_id = 1; + * @return Whether the endpointId field is set. + */ + public boolean hasEndpointId() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * .context.EndPointId endpoint_id = 1; + * @return The endpointId. + */ + public context.ContextOuterClass.EndPointId getEndpointId() { + if (endpointIdBuilder_ == null) { + return endpointId_ == null ? context.ContextOuterClass.EndPointId.getDefaultInstance() : endpointId_; + } else { + return endpointIdBuilder_.getMessage(); + } + } + + /** + * .context.EndPointId endpoint_id = 1; + */ + public Builder setEndpointId(context.ContextOuterClass.EndPointId value) { + if (endpointIdBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + endpointId_ = value; + } else { + endpointIdBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.EndPointId endpoint_id = 1; + */ + public Builder setEndpointId(context.ContextOuterClass.EndPointId.Builder builderForValue) { + if (endpointIdBuilder_ == null) { + endpointId_ = builderForValue.build(); + } else { + endpointIdBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.EndPointId endpoint_id = 1; + */ + public Builder mergeEndpointId(context.ContextOuterClass.EndPointId value) { + if (endpointIdBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && endpointId_ != null && endpointId_ != context.ContextOuterClass.EndPointId.getDefaultInstance()) { + getEndpointIdBuilder().mergeFrom(value); + } else { + endpointId_ = value; + } + } else { + endpointIdBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * .context.EndPointId endpoint_id = 1; + */ + public Builder clearEndpointId() { + bitField0_ = (bitField0_ & ~0x00000001); + endpointId_ = null; + if (endpointIdBuilder_ != null) { + endpointIdBuilder_.dispose(); + endpointIdBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * .context.EndPointId endpoint_id = 1; + */ + public context.ContextOuterClass.EndPointId.Builder getEndpointIdBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getEndpointIdFieldBuilder().getBuilder(); + } + + /** + * .context.EndPointId endpoint_id = 1; + */ + public context.ContextOuterClass.EndPointIdOrBuilder getEndpointIdOrBuilder() { + if (endpointIdBuilder_ != null) { + return endpointIdBuilder_.getMessageOrBuilder(); + } else { + return endpointId_ == null ? context.ContextOuterClass.EndPointId.getDefaultInstance() : endpointId_; + } + } + + /** + * .context.EndPointId endpoint_id = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3 getEndpointIdFieldBuilder() { + if (endpointIdBuilder_ == null) { + endpointIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getEndpointId(), getParentForChildren(), isClean()); + endpointId_ = null; + } + return endpointIdBuilder_; + } + + private acl.Acl.AclRuleSet ruleSet_; + + private com.google.protobuf.SingleFieldBuilderV3 ruleSetBuilder_; + + /** + * .acl.AclRuleSet rule_set = 2; + * @return Whether the ruleSet field is set. + */ + public boolean hasRuleSet() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * .acl.AclRuleSet rule_set = 2; + * @return The ruleSet. + */ + public acl.Acl.AclRuleSet getRuleSet() { + if (ruleSetBuilder_ == null) { + return ruleSet_ == null ? acl.Acl.AclRuleSet.getDefaultInstance() : ruleSet_; + } else { + return ruleSetBuilder_.getMessage(); + } + } + + /** + * .acl.AclRuleSet rule_set = 2; + */ + public Builder setRuleSet(acl.Acl.AclRuleSet value) { + if (ruleSetBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ruleSet_ = value; + } else { + ruleSetBuilder_.setMessage(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * .acl.AclRuleSet rule_set = 2; + */ + public Builder setRuleSet(acl.Acl.AclRuleSet.Builder builderForValue) { + if (ruleSetBuilder_ == null) { + ruleSet_ = builderForValue.build(); + } else { + ruleSetBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * .acl.AclRuleSet rule_set = 2; + */ + public Builder mergeRuleSet(acl.Acl.AclRuleSet value) { + if (ruleSetBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0) && ruleSet_ != null && ruleSet_ != acl.Acl.AclRuleSet.getDefaultInstance()) { + getRuleSetBuilder().mergeFrom(value); + } else { + ruleSet_ = value; + } + } else { + ruleSetBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * .acl.AclRuleSet rule_set = 2; + */ + public Builder clearRuleSet() { + bitField0_ = (bitField0_ & ~0x00000002); + ruleSet_ = null; + if (ruleSetBuilder_ != null) { + ruleSetBuilder_.dispose(); + ruleSetBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * .acl.AclRuleSet rule_set = 2; + */ + public acl.Acl.AclRuleSet.Builder getRuleSetBuilder() { + bitField0_ |= 0x00000002; + onChanged(); + return getRuleSetFieldBuilder().getBuilder(); + } + + /** + * .acl.AclRuleSet rule_set = 2; + */ + public acl.Acl.AclRuleSetOrBuilder getRuleSetOrBuilder() { + if (ruleSetBuilder_ != null) { + return ruleSetBuilder_.getMessageOrBuilder(); + } else { + return ruleSet_ == null ? acl.Acl.AclRuleSet.getDefaultInstance() : ruleSet_; + } + } + + /** + * .acl.AclRuleSet rule_set = 2; + */ + private com.google.protobuf.SingleFieldBuilderV3 getRuleSetFieldBuilder() { + if (ruleSetBuilder_ == null) { + ruleSetBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getRuleSet(), getParentForChildren(), isClean()); + ruleSet_ = null; + } + return ruleSetBuilder_; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.ConfigRule_ACL) + } + + // @@protoc_insertion_point(class_scope:context.ConfigRule_ACL) + private static final context.ContextOuterClass.ConfigRule_ACL DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.ConfigRule_ACL(); + } + + public static context.ContextOuterClass.ConfigRule_ACL getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + + @java.lang.Override + public ConfigRule_ACL parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.ConfigRule_ACL getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface ConfigRuleOrBuilder extends // @@protoc_insertion_point(interface_extends:context.ConfigRule) + com.google.protobuf.MessageOrBuilder { + + /** + * .context.ConfigActionEnum action = 1; + * @return The enum numeric value on the wire for action. + */ + int getActionValue(); + + /** + * .context.ConfigActionEnum action = 1; + * @return The action. + */ + context.ContextOuterClass.ConfigActionEnum getAction(); + + /** + * .context.ConfigRule_Custom custom = 2; + * @return Whether the custom field is set. + */ + boolean hasCustom(); + + /** + * .context.ConfigRule_Custom custom = 2; + * @return The custom. + */ + context.ContextOuterClass.ConfigRule_Custom getCustom(); + + /** + * .context.ConfigRule_Custom custom = 2; + */ + context.ContextOuterClass.ConfigRule_CustomOrBuilder getCustomOrBuilder(); + + /** + * .context.ConfigRule_ACL acl = 3; + * @return Whether the acl field is set. + */ + boolean hasAcl(); + + /** + * .context.ConfigRule_ACL acl = 3; + * @return The acl. + */ + context.ContextOuterClass.ConfigRule_ACL getAcl(); + + /** + * .context.ConfigRule_ACL acl = 3; + */ + context.ContextOuterClass.ConfigRule_ACLOrBuilder getAclOrBuilder(); + + context.ContextOuterClass.ConfigRule.ConfigRuleCase getConfigRuleCase(); + } + /** - * string name = 2; - * @return The bytes for name. + * Protobuf type {@code context.ConfigRule} */ - com.google.protobuf.ByteString - getNameBytes(); + public static final class ConfigRule extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.ConfigRule) + ConfigRuleOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use ConfigRule.newBuilder() to construct. + private ConfigRule(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private ConfigRule() { + action_ = 0; + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new ConfigRule(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_ConfigRule_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_ConfigRule_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.ConfigRule.class, context.ContextOuterClass.ConfigRule.Builder.class); + } + + private int configRuleCase_ = 0; + + @SuppressWarnings("serial") + private java.lang.Object configRule_; + + public enum ConfigRuleCase implements com.google.protobuf.Internal.EnumLite, com.google.protobuf.AbstractMessage.InternalOneOfEnum { + + CUSTOM(2), ACL(3), CONFIGRULE_NOT_SET(0); + + private final int value; + + private ConfigRuleCase(int value) { + this.value = value; + } + + /** + * @param value The number of the enum to look for. + * @return The enum associated with the given number. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static ConfigRuleCase valueOf(int value) { + return forNumber(value); + } + + public static ConfigRuleCase forNumber(int value) { + switch(value) { + case 2: + return CUSTOM; + case 3: + return ACL; + case 0: + return CONFIGRULE_NOT_SET; + default: + return null; + } + } + + public int getNumber() { + return this.value; + } + } + + public ConfigRuleCase getConfigRuleCase() { + return ConfigRuleCase.forNumber(configRuleCase_); + } + + public static final int ACTION_FIELD_NUMBER = 1; + + private int action_ = 0; + + /** + * .context.ConfigActionEnum action = 1; + * @return The enum numeric value on the wire for action. + */ + @java.lang.Override + public int getActionValue() { + return action_; + } + + /** + * .context.ConfigActionEnum action = 1; + * @return The action. + */ + @java.lang.Override + public context.ContextOuterClass.ConfigActionEnum getAction() { + context.ContextOuterClass.ConfigActionEnum result = context.ContextOuterClass.ConfigActionEnum.forNumber(action_); + return result == null ? context.ContextOuterClass.ConfigActionEnum.UNRECOGNIZED : result; + } + + public static final int CUSTOM_FIELD_NUMBER = 2; + + /** + * .context.ConfigRule_Custom custom = 2; + * @return Whether the custom field is set. + */ + @java.lang.Override + public boolean hasCustom() { + return configRuleCase_ == 2; + } + + /** + * .context.ConfigRule_Custom custom = 2; + * @return The custom. + */ + @java.lang.Override + public context.ContextOuterClass.ConfigRule_Custom getCustom() { + if (configRuleCase_ == 2) { + return (context.ContextOuterClass.ConfigRule_Custom) configRule_; + } + return context.ContextOuterClass.ConfigRule_Custom.getDefaultInstance(); + } + + /** + * .context.ConfigRule_Custom custom = 2; + */ + @java.lang.Override + public context.ContextOuterClass.ConfigRule_CustomOrBuilder getCustomOrBuilder() { + if (configRuleCase_ == 2) { + return (context.ContextOuterClass.ConfigRule_Custom) configRule_; + } + return context.ContextOuterClass.ConfigRule_Custom.getDefaultInstance(); + } + + public static final int ACL_FIELD_NUMBER = 3; + + /** + * .context.ConfigRule_ACL acl = 3; + * @return Whether the acl field is set. + */ + @java.lang.Override + public boolean hasAcl() { + return configRuleCase_ == 3; + } + + /** + * .context.ConfigRule_ACL acl = 3; + * @return The acl. + */ + @java.lang.Override + public context.ContextOuterClass.ConfigRule_ACL getAcl() { + if (configRuleCase_ == 3) { + return (context.ContextOuterClass.ConfigRule_ACL) configRule_; + } + return context.ContextOuterClass.ConfigRule_ACL.getDefaultInstance(); + } + + /** + * .context.ConfigRule_ACL acl = 3; + */ + @java.lang.Override + public context.ContextOuterClass.ConfigRule_ACLOrBuilder getAclOrBuilder() { + if (configRuleCase_ == 3) { + return (context.ContextOuterClass.ConfigRule_ACL) configRule_; + } + return context.ContextOuterClass.ConfigRule_ACL.getDefaultInstance(); + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (action_ != context.ContextOuterClass.ConfigActionEnum.CONFIGACTION_UNDEFINED.getNumber()) { + output.writeEnum(1, action_); + } + if (configRuleCase_ == 2) { + output.writeMessage(2, (context.ContextOuterClass.ConfigRule_Custom) configRule_); + } + if (configRuleCase_ == 3) { + output.writeMessage(3, (context.ContextOuterClass.ConfigRule_ACL) configRule_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + if (action_ != context.ContextOuterClass.ConfigActionEnum.CONFIGACTION_UNDEFINED.getNumber()) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(1, action_); + } + if (configRuleCase_ == 2) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, (context.ContextOuterClass.ConfigRule_Custom) configRule_); + } + if (configRuleCase_ == 3) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, (context.ContextOuterClass.ConfigRule_ACL) configRule_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.ConfigRule)) { + return super.equals(obj); + } + context.ContextOuterClass.ConfigRule other = (context.ContextOuterClass.ConfigRule) obj; + if (action_ != other.action_) + return false; + if (!getConfigRuleCase().equals(other.getConfigRuleCase())) + return false; + switch(configRuleCase_) { + case 2: + if (!getCustom().equals(other.getCustom())) + return false; + break; + case 3: + if (!getAcl().equals(other.getAcl())) + return false; + break; + case 0: + default: + } + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + ACTION_FIELD_NUMBER; + hash = (53 * hash) + action_; + switch(configRuleCase_) { + case 2: + hash = (37 * hash) + CUSTOM_FIELD_NUMBER; + hash = (53 * hash) + getCustom().hashCode(); + break; + case 3: + hash = (37 * hash) + ACL_FIELD_NUMBER; + hash = (53 * hash) + getAcl().hashCode(); + break; + case 0: + default: + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } - /** - * string device_type = 3; - * @return The deviceType. - */ - java.lang.String getDeviceType(); - /** - * string device_type = 3; - * @return The bytes for deviceType. - */ - com.google.protobuf.ByteString - getDeviceTypeBytes(); + public static context.ContextOuterClass.ConfigRule parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } - /** - * .context.DeviceConfig device_config = 4; - * @return Whether the deviceConfig field is set. - */ - boolean hasDeviceConfig(); - /** - * .context.DeviceConfig device_config = 4; - * @return The deviceConfig. - */ - context.ContextOuterClass.DeviceConfig getDeviceConfig(); - /** - * .context.DeviceConfig device_config = 4; - */ - context.ContextOuterClass.DeviceConfigOrBuilder getDeviceConfigOrBuilder(); + public static context.ContextOuterClass.ConfigRule parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } - /** - * .context.DeviceOperationalStatusEnum device_operational_status = 5; - * @return The enum numeric value on the wire for deviceOperationalStatus. - */ - int getDeviceOperationalStatusValue(); - /** - * .context.DeviceOperationalStatusEnum device_operational_status = 5; - * @return The deviceOperationalStatus. - */ - context.ContextOuterClass.DeviceOperationalStatusEnum getDeviceOperationalStatus(); + public static context.ContextOuterClass.ConfigRule parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } - /** - * repeated .context.DeviceDriverEnum device_drivers = 6; - * @return A list containing the deviceDrivers. - */ - java.util.List getDeviceDriversList(); - /** - * repeated .context.DeviceDriverEnum device_drivers = 6; - * @return The count of deviceDrivers. - */ - int getDeviceDriversCount(); - /** - * repeated .context.DeviceDriverEnum device_drivers = 6; - * @param index The index of the element to return. - * @return The deviceDrivers at the given index. - */ - context.ContextOuterClass.DeviceDriverEnum getDeviceDrivers(int index); - /** - * repeated .context.DeviceDriverEnum device_drivers = 6; - * @return A list containing the enum numeric values on the wire for deviceDrivers. - */ - java.util.List - getDeviceDriversValueList(); - /** - * repeated .context.DeviceDriverEnum device_drivers = 6; - * @param index The index of the value to return. - * @return The enum numeric value on the wire of deviceDrivers at the given index. - */ - int getDeviceDriversValue(int index); + public static context.ContextOuterClass.ConfigRule parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } - /** - * repeated .context.EndPoint device_endpoints = 7; - */ - java.util.List - getDeviceEndpointsList(); - /** - * repeated .context.EndPoint device_endpoints = 7; - */ - context.ContextOuterClass.EndPoint getDeviceEndpoints(int index); - /** - * repeated .context.EndPoint device_endpoints = 7; - */ - int getDeviceEndpointsCount(); - /** - * repeated .context.EndPoint device_endpoints = 7; - */ - java.util.List - getDeviceEndpointsOrBuilderList(); - /** - * repeated .context.EndPoint device_endpoints = 7; - */ - context.ContextOuterClass.EndPointOrBuilder getDeviceEndpointsOrBuilder( - int index); + public static context.ContextOuterClass.ConfigRule parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } - /** - *
-     * Used for inventory
-     * 
- * - * repeated .context.Component components = 8; - */ - java.util.List - getComponentsList(); - /** - *
-     * Used for inventory
-     * 
- * - * repeated .context.Component components = 8; - */ - context.ContextOuterClass.Component getComponents(int index); - /** - *
-     * Used for inventory
-     * 
- * - * repeated .context.Component components = 8; - */ - int getComponentsCount(); - /** - *
-     * Used for inventory
-     * 
- * - * repeated .context.Component components = 8; - */ - java.util.List - getComponentsOrBuilderList(); - /** - *
-     * Used for inventory
-     * 
- * - * repeated .context.Component components = 8; - */ - context.ContextOuterClass.ComponentOrBuilder getComponentsOrBuilder( - int index); + public static context.ContextOuterClass.ConfigRule parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } - /** - *
-     * Identifier of node controlling the actual device
-     * 
- * - * .context.DeviceId controller_id = 9; - * @return Whether the controllerId field is set. - */ - boolean hasControllerId(); - /** - *
-     * Identifier of node controlling the actual device
-     * 
- * - * .context.DeviceId controller_id = 9; - * @return The controllerId. - */ - context.ContextOuterClass.DeviceId getControllerId(); - /** - *
-     * Identifier of node controlling the actual device
-     * 
- * - * .context.DeviceId controller_id = 9; - */ - context.ContextOuterClass.DeviceIdOrBuilder getControllerIdOrBuilder(); - } - /** - * Protobuf type {@code context.Device} - */ - public static final class Device extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:context.Device) - DeviceOrBuilder { - private static final long serialVersionUID = 0L; - // Use Device.newBuilder() to construct. - private Device(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private Device() { - name_ = ""; - deviceType_ = ""; - deviceOperationalStatus_ = 0; - deviceDrivers_ = java.util.Collections.emptyList(); - deviceEndpoints_ = java.util.Collections.emptyList(); - components_ = java.util.Collections.emptyList(); - } + public static context.ContextOuterClass.ConfigRule parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new Device(); - } + public static context.ContextOuterClass.ConfigRule parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private Device( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - int mutable_bitField0_ = 0; - com.google.protobuf.UnknownFieldSet.Builder unknownFields = - com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - context.ContextOuterClass.DeviceId.Builder subBuilder = null; - if (deviceId_ != null) { - subBuilder = deviceId_.toBuilder(); - } - deviceId_ = input.readMessage(context.ContextOuterClass.DeviceId.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(deviceId_); - deviceId_ = subBuilder.buildPartial(); - } - - break; - } - case 18: { - java.lang.String s = input.readStringRequireUtf8(); - - name_ = s; - break; - } - case 26: { - java.lang.String s = input.readStringRequireUtf8(); - - deviceType_ = s; - break; - } - case 34: { - context.ContextOuterClass.DeviceConfig.Builder subBuilder = null; - if (deviceConfig_ != null) { - subBuilder = deviceConfig_.toBuilder(); - } - deviceConfig_ = input.readMessage(context.ContextOuterClass.DeviceConfig.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(deviceConfig_); - deviceConfig_ = subBuilder.buildPartial(); - } - - break; - } - case 40: { - int rawValue = input.readEnum(); - - deviceOperationalStatus_ = rawValue; - break; - } - case 48: { - int rawValue = input.readEnum(); - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - deviceDrivers_ = new java.util.ArrayList(); - mutable_bitField0_ |= 0x00000001; - } - deviceDrivers_.add(rawValue); - break; - } - case 50: { - int length = input.readRawVarint32(); - int oldLimit = input.pushLimit(length); - while(input.getBytesUntilLimit() > 0) { - int rawValue = input.readEnum(); - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - deviceDrivers_ = new java.util.ArrayList(); - mutable_bitField0_ |= 0x00000001; - } - deviceDrivers_.add(rawValue); - } - input.popLimit(oldLimit); - break; - } - case 58: { - if (!((mutable_bitField0_ & 0x00000002) != 0)) { - deviceEndpoints_ = new java.util.ArrayList(); - mutable_bitField0_ |= 0x00000002; - } - deviceEndpoints_.add( - input.readMessage(context.ContextOuterClass.EndPoint.parser(), extensionRegistry)); - break; - } - case 66: { - if (!((mutable_bitField0_ & 0x00000004) != 0)) { - components_ = new java.util.ArrayList(); - mutable_bitField0_ |= 0x00000004; - } - components_.add( - input.readMessage(context.ContextOuterClass.Component.parser(), extensionRegistry)); - break; - } - case 74: { - context.ContextOuterClass.DeviceId.Builder subBuilder = null; - if (controllerId_ != null) { - subBuilder = controllerId_.toBuilder(); - } - controllerId_ = input.readMessage(context.ContextOuterClass.DeviceId.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(controllerId_); - controllerId_ = subBuilder.buildPartial(); - } - - break; - } - default: { - if (!parseUnknownField( - input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException( - e).setUnfinishedMessage(this); - } finally { - if (((mutable_bitField0_ & 0x00000001) != 0)) { - deviceDrivers_ = java.util.Collections.unmodifiableList(deviceDrivers_); - } - if (((mutable_bitField0_ & 0x00000002) != 0)) { - deviceEndpoints_ = java.util.Collections.unmodifiableList(deviceEndpoints_); - } - if (((mutable_bitField0_ & 0x00000004) != 0)) { - components_ = java.util.Collections.unmodifiableList(components_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return context.ContextOuterClass.internal_static_context_Device_descriptor; - } + public static context.ContextOuterClass.ConfigRule parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_Device_fieldAccessorTable - .ensureFieldAccessorsInitialized( - context.ContextOuterClass.Device.class, context.ContextOuterClass.Device.Builder.class); - } + public static context.ContextOuterClass.ConfigRule parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } - public static final int DEVICE_ID_FIELD_NUMBER = 1; - private context.ContextOuterClass.DeviceId deviceId_; - /** - * .context.DeviceId device_id = 1; - * @return Whether the deviceId field is set. - */ - @java.lang.Override - public boolean hasDeviceId() { - return deviceId_ != null; - } - /** - * .context.DeviceId device_id = 1; - * @return The deviceId. - */ - @java.lang.Override - public context.ContextOuterClass.DeviceId getDeviceId() { - return deviceId_ == null ? context.ContextOuterClass.DeviceId.getDefaultInstance() : deviceId_; - } - /** - * .context.DeviceId device_id = 1; - */ - @java.lang.Override - public context.ContextOuterClass.DeviceIdOrBuilder getDeviceIdOrBuilder() { - return getDeviceId(); - } + public static context.ContextOuterClass.ConfigRule parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } - public static final int NAME_FIELD_NUMBER = 2; - private volatile java.lang.Object name_; - /** - * string name = 2; - * @return The name. - */ - @java.lang.Override - public java.lang.String getName() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - name_ = s; - return s; - } - } - /** - * string name = 2; - * @return The bytes for name. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - name_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } + public static context.ContextOuterClass.ConfigRule parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } - public static final int DEVICE_TYPE_FIELD_NUMBER = 3; - private volatile java.lang.Object deviceType_; - /** - * string device_type = 3; - * @return The deviceType. - */ - @java.lang.Override - public java.lang.String getDeviceType() { - java.lang.Object ref = deviceType_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - deviceType_ = s; - return s; - } - } - /** - * string device_type = 3; - * @return The bytes for deviceType. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getDeviceTypeBytes() { - java.lang.Object ref = deviceType_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - deviceType_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } - public static final int DEVICE_CONFIG_FIELD_NUMBER = 4; - private context.ContextOuterClass.DeviceConfig deviceConfig_; - /** - * .context.DeviceConfig device_config = 4; - * @return Whether the deviceConfig field is set. - */ - @java.lang.Override - public boolean hasDeviceConfig() { - return deviceConfig_ != null; - } - /** - * .context.DeviceConfig device_config = 4; - * @return The deviceConfig. - */ - @java.lang.Override - public context.ContextOuterClass.DeviceConfig getDeviceConfig() { - return deviceConfig_ == null ? context.ContextOuterClass.DeviceConfig.getDefaultInstance() : deviceConfig_; - } - /** - * .context.DeviceConfig device_config = 4; - */ - @java.lang.Override - public context.ContextOuterClass.DeviceConfigOrBuilder getDeviceConfigOrBuilder() { - return getDeviceConfig(); - } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } - public static final int DEVICE_OPERATIONAL_STATUS_FIELD_NUMBER = 5; - private int deviceOperationalStatus_; - /** - * .context.DeviceOperationalStatusEnum device_operational_status = 5; - * @return The enum numeric value on the wire for deviceOperationalStatus. - */ - @java.lang.Override public int getDeviceOperationalStatusValue() { - return deviceOperationalStatus_; - } - /** - * .context.DeviceOperationalStatusEnum device_operational_status = 5; - * @return The deviceOperationalStatus. - */ - @java.lang.Override public context.ContextOuterClass.DeviceOperationalStatusEnum getDeviceOperationalStatus() { - @SuppressWarnings("deprecation") - context.ContextOuterClass.DeviceOperationalStatusEnum result = context.ContextOuterClass.DeviceOperationalStatusEnum.valueOf(deviceOperationalStatus_); - return result == null ? context.ContextOuterClass.DeviceOperationalStatusEnum.UNRECOGNIZED : result; - } + public static Builder newBuilder(context.ContextOuterClass.ConfigRule prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } - public static final int DEVICE_DRIVERS_FIELD_NUMBER = 6; - private java.util.List deviceDrivers_; - private static final com.google.protobuf.Internal.ListAdapter.Converter< - java.lang.Integer, context.ContextOuterClass.DeviceDriverEnum> deviceDrivers_converter_ = - new com.google.protobuf.Internal.ListAdapter.Converter< - java.lang.Integer, context.ContextOuterClass.DeviceDriverEnum>() { - public context.ContextOuterClass.DeviceDriverEnum convert(java.lang.Integer from) { - @SuppressWarnings("deprecation") - context.ContextOuterClass.DeviceDriverEnum result = context.ContextOuterClass.DeviceDriverEnum.valueOf(from); - return result == null ? context.ContextOuterClass.DeviceDriverEnum.UNRECOGNIZED : result; - } - }; - /** - * repeated .context.DeviceDriverEnum device_drivers = 6; - * @return A list containing the deviceDrivers. - */ - @java.lang.Override - public java.util.List getDeviceDriversList() { - return new com.google.protobuf.Internal.ListAdapter< - java.lang.Integer, context.ContextOuterClass.DeviceDriverEnum>(deviceDrivers_, deviceDrivers_converter_); - } - /** - * repeated .context.DeviceDriverEnum device_drivers = 6; - * @return The count of deviceDrivers. - */ - @java.lang.Override - public int getDeviceDriversCount() { - return deviceDrivers_.size(); - } - /** - * repeated .context.DeviceDriverEnum device_drivers = 6; - * @param index The index of the element to return. - * @return The deviceDrivers at the given index. - */ - @java.lang.Override - public context.ContextOuterClass.DeviceDriverEnum getDeviceDrivers(int index) { - return deviceDrivers_converter_.convert(deviceDrivers_.get(index)); - } - /** - * repeated .context.DeviceDriverEnum device_drivers = 6; - * @return A list containing the enum numeric values on the wire for deviceDrivers. - */ - @java.lang.Override - public java.util.List - getDeviceDriversValueList() { - return deviceDrivers_; - } - /** - * repeated .context.DeviceDriverEnum device_drivers = 6; - * @param index The index of the value to return. - * @return The enum numeric value on the wire of deviceDrivers at the given index. - */ - @java.lang.Override - public int getDeviceDriversValue(int index) { - return deviceDrivers_.get(index); - } - private int deviceDriversMemoizedSerializedSize; + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } - public static final int DEVICE_ENDPOINTS_FIELD_NUMBER = 7; - private java.util.List deviceEndpoints_; - /** - * repeated .context.EndPoint device_endpoints = 7; - */ - @java.lang.Override - public java.util.List getDeviceEndpointsList() { - return deviceEndpoints_; - } - /** - * repeated .context.EndPoint device_endpoints = 7; - */ - @java.lang.Override - public java.util.List - getDeviceEndpointsOrBuilderList() { - return deviceEndpoints_; - } - /** - * repeated .context.EndPoint device_endpoints = 7; - */ - @java.lang.Override - public int getDeviceEndpointsCount() { - return deviceEndpoints_.size(); - } - /** - * repeated .context.EndPoint device_endpoints = 7; - */ - @java.lang.Override - public context.ContextOuterClass.EndPoint getDeviceEndpoints(int index) { - return deviceEndpoints_.get(index); - } - /** - * repeated .context.EndPoint device_endpoints = 7; - */ - @java.lang.Override - public context.ContextOuterClass.EndPointOrBuilder getDeviceEndpointsOrBuilder( - int index) { - return deviceEndpoints_.get(index); - } + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } - public static final int COMPONENTS_FIELD_NUMBER = 8; - private java.util.List components_; - /** - *
-     * Used for inventory
-     * 
- * - * repeated .context.Component components = 8; - */ - @java.lang.Override - public java.util.List getComponentsList() { - return components_; - } - /** - *
-     * Used for inventory
-     * 
- * - * repeated .context.Component components = 8; - */ - @java.lang.Override - public java.util.List - getComponentsOrBuilderList() { - return components_; - } - /** - *
-     * Used for inventory
-     * 
- * - * repeated .context.Component components = 8; - */ - @java.lang.Override - public int getComponentsCount() { - return components_.size(); - } - /** - *
-     * Used for inventory
-     * 
- * - * repeated .context.Component components = 8; - */ - @java.lang.Override - public context.ContextOuterClass.Component getComponents(int index) { - return components_.get(index); - } - /** - *
-     * Used for inventory
-     * 
- * - * repeated .context.Component components = 8; - */ - @java.lang.Override - public context.ContextOuterClass.ComponentOrBuilder getComponentsOrBuilder( - int index) { - return components_.get(index); - } + /** + * Protobuf type {@code context.ConfigRule} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:context.ConfigRule) + context.ContextOuterClass.ConfigRuleOrBuilder { - public static final int CONTROLLER_ID_FIELD_NUMBER = 9; - private context.ContextOuterClass.DeviceId controllerId_; - /** - *
-     * Identifier of node controlling the actual device
-     * 
- * - * .context.DeviceId controller_id = 9; - * @return Whether the controllerId field is set. - */ - @java.lang.Override - public boolean hasControllerId() { - return controllerId_ != null; - } - /** - *
-     * Identifier of node controlling the actual device
-     * 
- * - * .context.DeviceId controller_id = 9; - * @return The controllerId. - */ - @java.lang.Override - public context.ContextOuterClass.DeviceId getControllerId() { - return controllerId_ == null ? context.ContextOuterClass.DeviceId.getDefaultInstance() : controllerId_; - } - /** - *
-     * Identifier of node controlling the actual device
-     * 
- * - * .context.DeviceId controller_id = 9; - */ - @java.lang.Override - public context.ContextOuterClass.DeviceIdOrBuilder getControllerIdOrBuilder() { - return getControllerId(); - } + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_ConfigRule_descriptor; + } - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_ConfigRule_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.ConfigRule.class, context.ContextOuterClass.ConfigRule.Builder.class); + } - memoizedIsInitialized = 1; - return true; - } + // Construct using context.ContextOuterClass.ConfigRule.newBuilder() + private Builder() { + } - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - getSerializedSize(); - if (deviceId_ != null) { - output.writeMessage(1, getDeviceId()); - } - if (!getNameBytes().isEmpty()) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 2, name_); - } - if (!getDeviceTypeBytes().isEmpty()) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 3, deviceType_); - } - if (deviceConfig_ != null) { - output.writeMessage(4, getDeviceConfig()); - } - if (deviceOperationalStatus_ != context.ContextOuterClass.DeviceOperationalStatusEnum.DEVICEOPERATIONALSTATUS_UNDEFINED.getNumber()) { - output.writeEnum(5, deviceOperationalStatus_); - } - if (getDeviceDriversList().size() > 0) { - output.writeUInt32NoTag(50); - output.writeUInt32NoTag(deviceDriversMemoizedSerializedSize); - } - for (int i = 0; i < deviceDrivers_.size(); i++) { - output.writeEnumNoTag(deviceDrivers_.get(i)); - } - for (int i = 0; i < deviceEndpoints_.size(); i++) { - output.writeMessage(7, deviceEndpoints_.get(i)); - } - for (int i = 0; i < components_.size(); i++) { - output.writeMessage(8, components_.get(i)); - } - if (controllerId_ != null) { - output.writeMessage(9, getControllerId()); - } - unknownFields.writeTo(output); - } + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (deviceId_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(1, getDeviceId()); - } - if (!getNameBytes().isEmpty()) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, name_); - } - if (!getDeviceTypeBytes().isEmpty()) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, deviceType_); - } - if (deviceConfig_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(4, getDeviceConfig()); - } - if (deviceOperationalStatus_ != context.ContextOuterClass.DeviceOperationalStatusEnum.DEVICEOPERATIONALSTATUS_UNDEFINED.getNumber()) { - size += com.google.protobuf.CodedOutputStream - .computeEnumSize(5, deviceOperationalStatus_); - } - { - int dataSize = 0; - for (int i = 0; i < deviceDrivers_.size(); i++) { - dataSize += com.google.protobuf.CodedOutputStream - .computeEnumSizeNoTag(deviceDrivers_.get(i)); - } - size += dataSize; - if (!getDeviceDriversList().isEmpty()) { size += 1; - size += com.google.protobuf.CodedOutputStream - .computeUInt32SizeNoTag(dataSize); - }deviceDriversMemoizedSerializedSize = dataSize; - } - for (int i = 0; i < deviceEndpoints_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(7, deviceEndpoints_.get(i)); - } - for (int i = 0; i < components_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(8, components_.get(i)); - } - if (controllerId_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(9, getControllerId()); - } - size += unknownFields.getSerializedSize(); - memoizedSize = size; - return size; - } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + action_ = 0; + if (customBuilder_ != null) { + customBuilder_.clear(); + } + if (aclBuilder_ != null) { + aclBuilder_.clear(); + } + configRuleCase_ = 0; + configRule_ = null; + return this; + } - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof context.ContextOuterClass.Device)) { - return super.equals(obj); - } - context.ContextOuterClass.Device other = (context.ContextOuterClass.Device) obj; - - if (hasDeviceId() != other.hasDeviceId()) return false; - if (hasDeviceId()) { - if (!getDeviceId() - .equals(other.getDeviceId())) return false; - } - if (!getName() - .equals(other.getName())) return false; - if (!getDeviceType() - .equals(other.getDeviceType())) return false; - if (hasDeviceConfig() != other.hasDeviceConfig()) return false; - if (hasDeviceConfig()) { - if (!getDeviceConfig() - .equals(other.getDeviceConfig())) return false; - } - if (deviceOperationalStatus_ != other.deviceOperationalStatus_) return false; - if (!deviceDrivers_.equals(other.deviceDrivers_)) return false; - if (!getDeviceEndpointsList() - .equals(other.getDeviceEndpointsList())) return false; - if (!getComponentsList() - .equals(other.getComponentsList())) return false; - if (hasControllerId() != other.hasControllerId()) return false; - if (hasControllerId()) { - if (!getControllerId() - .equals(other.getControllerId())) return false; - } - if (!unknownFields.equals(other.unknownFields)) return false; - return true; - } + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_ConfigRule_descriptor; + } - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - if (hasDeviceId()) { - hash = (37 * hash) + DEVICE_ID_FIELD_NUMBER; - hash = (53 * hash) + getDeviceId().hashCode(); - } - hash = (37 * hash) + NAME_FIELD_NUMBER; - hash = (53 * hash) + getName().hashCode(); - hash = (37 * hash) + DEVICE_TYPE_FIELD_NUMBER; - hash = (53 * hash) + getDeviceType().hashCode(); - if (hasDeviceConfig()) { - hash = (37 * hash) + DEVICE_CONFIG_FIELD_NUMBER; - hash = (53 * hash) + getDeviceConfig().hashCode(); - } - hash = (37 * hash) + DEVICE_OPERATIONAL_STATUS_FIELD_NUMBER; - hash = (53 * hash) + deviceOperationalStatus_; - if (getDeviceDriversCount() > 0) { - hash = (37 * hash) + DEVICE_DRIVERS_FIELD_NUMBER; - hash = (53 * hash) + deviceDrivers_.hashCode(); - } - if (getDeviceEndpointsCount() > 0) { - hash = (37 * hash) + DEVICE_ENDPOINTS_FIELD_NUMBER; - hash = (53 * hash) + getDeviceEndpointsList().hashCode(); - } - if (getComponentsCount() > 0) { - hash = (37 * hash) + COMPONENTS_FIELD_NUMBER; - hash = (53 * hash) + getComponentsList().hashCode(); - } - if (hasControllerId()) { - hash = (37 * hash) + CONTROLLER_ID_FIELD_NUMBER; - hash = (53 * hash) + getControllerId().hashCode(); - } - hash = (29 * hash) + unknownFields.hashCode(); - memoizedHashCode = hash; - return hash; - } + @java.lang.Override + public context.ContextOuterClass.ConfigRule getDefaultInstanceForType() { + return context.ContextOuterClass.ConfigRule.getDefaultInstance(); + } - public static context.ContextOuterClass.Device parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static context.ContextOuterClass.Device parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static context.ContextOuterClass.Device parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static context.ContextOuterClass.Device parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static context.ContextOuterClass.Device parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static context.ContextOuterClass.Device parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static context.ContextOuterClass.Device parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static context.ContextOuterClass.Device parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - public static context.ContextOuterClass.Device parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - public static context.ContextOuterClass.Device parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static context.ContextOuterClass.Device parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static context.ContextOuterClass.Device parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } + @java.lang.Override + public context.ContextOuterClass.ConfigRule build() { + context.ContextOuterClass.ConfigRule result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(context.ContextOuterClass.Device prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } + @java.lang.Override + public context.ContextOuterClass.ConfigRule buildPartial() { + context.ContextOuterClass.ConfigRule result = new context.ContextOuterClass.ConfigRule(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + buildPartialOneofs(result); + onBuilt(); + return result; + } + + private void buildPartial0(context.ContextOuterClass.ConfigRule result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.action_ = action_; + } + } + + private void buildPartialOneofs(context.ContextOuterClass.ConfigRule result) { + result.configRuleCase_ = configRuleCase_; + result.configRule_ = this.configRule_; + if (configRuleCase_ == 2 && customBuilder_ != null) { + result.configRule_ = customBuilder_.build(); + } + if (configRuleCase_ == 3 && aclBuilder_ != null) { + result.configRule_ = aclBuilder_.build(); + } + } - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code context.Device} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:context.Device) - context.ContextOuterClass.DeviceOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return context.ContextOuterClass.internal_static_context_Device_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_Device_fieldAccessorTable - .ensureFieldAccessorsInitialized( - context.ContextOuterClass.Device.class, context.ContextOuterClass.Device.Builder.class); - } - - // Construct using context.ContextOuterClass.Device.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3 - .alwaysUseFieldBuilders) { - getDeviceEndpointsFieldBuilder(); - getComponentsFieldBuilder(); - } - } - @java.lang.Override - public Builder clear() { - super.clear(); - if (deviceIdBuilder_ == null) { - deviceId_ = null; - } else { - deviceId_ = null; - deviceIdBuilder_ = null; - } - name_ = ""; - - deviceType_ = ""; - - if (deviceConfigBuilder_ == null) { - deviceConfig_ = null; - } else { - deviceConfig_ = null; - deviceConfigBuilder_ = null; - } - deviceOperationalStatus_ = 0; - - deviceDrivers_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); - if (deviceEndpointsBuilder_ == null) { - deviceEndpoints_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000002); - } else { - deviceEndpointsBuilder_.clear(); - } - if (componentsBuilder_ == null) { - components_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000004); - } else { - componentsBuilder_.clear(); - } - if (controllerIdBuilder_ == null) { - controllerId_ = null; - } else { - controllerId_ = null; - controllerIdBuilder_ = null; - } - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return context.ContextOuterClass.internal_static_context_Device_descriptor; - } - - @java.lang.Override - public context.ContextOuterClass.Device getDefaultInstanceForType() { - return context.ContextOuterClass.Device.getDefaultInstance(); - } - - @java.lang.Override - public context.ContextOuterClass.Device build() { - context.ContextOuterClass.Device result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public context.ContextOuterClass.Device buildPartial() { - context.ContextOuterClass.Device result = new context.ContextOuterClass.Device(this); - int from_bitField0_ = bitField0_; - if (deviceIdBuilder_ == null) { - result.deviceId_ = deviceId_; - } else { - result.deviceId_ = deviceIdBuilder_.build(); - } - result.name_ = name_; - result.deviceType_ = deviceType_; - if (deviceConfigBuilder_ == null) { - result.deviceConfig_ = deviceConfig_; - } else { - result.deviceConfig_ = deviceConfigBuilder_.build(); - } - result.deviceOperationalStatus_ = deviceOperationalStatus_; - if (((bitField0_ & 0x00000001) != 0)) { - deviceDrivers_ = java.util.Collections.unmodifiableList(deviceDrivers_); - bitField0_ = (bitField0_ & ~0x00000001); - } - result.deviceDrivers_ = deviceDrivers_; - if (deviceEndpointsBuilder_ == null) { - if (((bitField0_ & 0x00000002) != 0)) { - deviceEndpoints_ = java.util.Collections.unmodifiableList(deviceEndpoints_); - bitField0_ = (bitField0_ & ~0x00000002); - } - result.deviceEndpoints_ = deviceEndpoints_; - } else { - result.deviceEndpoints_ = deviceEndpointsBuilder_.build(); - } - if (componentsBuilder_ == null) { - if (((bitField0_ & 0x00000004) != 0)) { - components_ = java.util.Collections.unmodifiableList(components_); - bitField0_ = (bitField0_ & ~0x00000004); - } - result.components_ = components_; - } else { - result.components_ = componentsBuilder_.build(); - } - if (controllerIdBuilder_ == null) { - result.controllerId_ = controllerId_; - } else { - result.controllerId_ = controllerIdBuilder_.build(); - } - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof context.ContextOuterClass.Device) { - return mergeFrom((context.ContextOuterClass.Device)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(context.ContextOuterClass.Device other) { - if (other == context.ContextOuterClass.Device.getDefaultInstance()) return this; - if (other.hasDeviceId()) { - mergeDeviceId(other.getDeviceId()); - } - if (!other.getName().isEmpty()) { - name_ = other.name_; - onChanged(); - } - if (!other.getDeviceType().isEmpty()) { - deviceType_ = other.deviceType_; - onChanged(); - } - if (other.hasDeviceConfig()) { - mergeDeviceConfig(other.getDeviceConfig()); - } - if (other.deviceOperationalStatus_ != 0) { - setDeviceOperationalStatusValue(other.getDeviceOperationalStatusValue()); - } - if (!other.deviceDrivers_.isEmpty()) { - if (deviceDrivers_.isEmpty()) { - deviceDrivers_ = other.deviceDrivers_; - bitField0_ = (bitField0_ & ~0x00000001); - } else { - ensureDeviceDriversIsMutable(); - deviceDrivers_.addAll(other.deviceDrivers_); - } - onChanged(); - } - if (deviceEndpointsBuilder_ == null) { - if (!other.deviceEndpoints_.isEmpty()) { - if (deviceEndpoints_.isEmpty()) { - deviceEndpoints_ = other.deviceEndpoints_; - bitField0_ = (bitField0_ & ~0x00000002); - } else { - ensureDeviceEndpointsIsMutable(); - deviceEndpoints_.addAll(other.deviceEndpoints_); - } - onChanged(); - } - } else { - if (!other.deviceEndpoints_.isEmpty()) { - if (deviceEndpointsBuilder_.isEmpty()) { - deviceEndpointsBuilder_.dispose(); - deviceEndpointsBuilder_ = null; - deviceEndpoints_ = other.deviceEndpoints_; - bitField0_ = (bitField0_ & ~0x00000002); - deviceEndpointsBuilder_ = - com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? - getDeviceEndpointsFieldBuilder() : null; - } else { - deviceEndpointsBuilder_.addAllMessages(other.deviceEndpoints_); + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.ConfigRule) { + return mergeFrom((context.ContextOuterClass.ConfigRule) other); + } else { + super.mergeFrom(other); + return this; + } } - } - } - if (componentsBuilder_ == null) { - if (!other.components_.isEmpty()) { - if (components_.isEmpty()) { - components_ = other.components_; - bitField0_ = (bitField0_ & ~0x00000004); - } else { - ensureComponentsIsMutable(); - components_.addAll(other.components_); - } - onChanged(); - } - } else { - if (!other.components_.isEmpty()) { - if (componentsBuilder_.isEmpty()) { - componentsBuilder_.dispose(); - componentsBuilder_ = null; - components_ = other.components_; - bitField0_ = (bitField0_ & ~0x00000004); - componentsBuilder_ = - com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? - getComponentsFieldBuilder() : null; - } else { - componentsBuilder_.addAllMessages(other.components_); - } - } - } - if (other.hasControllerId()) { - mergeControllerId(other.getControllerId()); - } - this.mergeUnknownFields(other.unknownFields); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - context.ContextOuterClass.Device parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.Device) e.getUnfinishedMessage(); - throw e.unwrapIOException(); - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - private context.ContextOuterClass.DeviceId deviceId_; - private com.google.protobuf.SingleFieldBuilderV3< - context.ContextOuterClass.DeviceId, context.ContextOuterClass.DeviceId.Builder, context.ContextOuterClass.DeviceIdOrBuilder> deviceIdBuilder_; - /** - * .context.DeviceId device_id = 1; - * @return Whether the deviceId field is set. - */ - public boolean hasDeviceId() { - return deviceIdBuilder_ != null || deviceId_ != null; - } - /** - * .context.DeviceId device_id = 1; - * @return The deviceId. - */ - public context.ContextOuterClass.DeviceId getDeviceId() { - if (deviceIdBuilder_ == null) { - return deviceId_ == null ? context.ContextOuterClass.DeviceId.getDefaultInstance() : deviceId_; - } else { - return deviceIdBuilder_.getMessage(); - } - } - /** - * .context.DeviceId device_id = 1; - */ - public Builder setDeviceId(context.ContextOuterClass.DeviceId value) { - if (deviceIdBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - deviceId_ = value; - onChanged(); - } else { - deviceIdBuilder_.setMessage(value); - } - - return this; - } - /** - * .context.DeviceId device_id = 1; - */ - public Builder setDeviceId( - context.ContextOuterClass.DeviceId.Builder builderForValue) { - if (deviceIdBuilder_ == null) { - deviceId_ = builderForValue.build(); - onChanged(); - } else { - deviceIdBuilder_.setMessage(builderForValue.build()); - } - - return this; - } - /** - * .context.DeviceId device_id = 1; - */ - public Builder mergeDeviceId(context.ContextOuterClass.DeviceId value) { - if (deviceIdBuilder_ == null) { - if (deviceId_ != null) { - deviceId_ = - context.ContextOuterClass.DeviceId.newBuilder(deviceId_).mergeFrom(value).buildPartial(); - } else { - deviceId_ = value; - } - onChanged(); - } else { - deviceIdBuilder_.mergeFrom(value); - } - - return this; - } - /** - * .context.DeviceId device_id = 1; - */ - public Builder clearDeviceId() { - if (deviceIdBuilder_ == null) { - deviceId_ = null; - onChanged(); - } else { - deviceId_ = null; - deviceIdBuilder_ = null; - } - - return this; - } - /** - * .context.DeviceId device_id = 1; - */ - public context.ContextOuterClass.DeviceId.Builder getDeviceIdBuilder() { - - onChanged(); - return getDeviceIdFieldBuilder().getBuilder(); - } - /** - * .context.DeviceId device_id = 1; - */ - public context.ContextOuterClass.DeviceIdOrBuilder getDeviceIdOrBuilder() { - if (deviceIdBuilder_ != null) { - return deviceIdBuilder_.getMessageOrBuilder(); - } else { - return deviceId_ == null ? - context.ContextOuterClass.DeviceId.getDefaultInstance() : deviceId_; - } - } - /** - * .context.DeviceId device_id = 1; - */ - private com.google.protobuf.SingleFieldBuilderV3< - context.ContextOuterClass.DeviceId, context.ContextOuterClass.DeviceId.Builder, context.ContextOuterClass.DeviceIdOrBuilder> - getDeviceIdFieldBuilder() { - if (deviceIdBuilder_ == null) { - deviceIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - context.ContextOuterClass.DeviceId, context.ContextOuterClass.DeviceId.Builder, context.ContextOuterClass.DeviceIdOrBuilder>( - getDeviceId(), - getParentForChildren(), - isClean()); - deviceId_ = null; - } - return deviceIdBuilder_; - } - - private java.lang.Object name_ = ""; - /** - * string name = 2; - * @return The name. - */ - public java.lang.String getName() { - java.lang.Object ref = name_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - name_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string name = 2; - * @return The bytes for name. - */ - public com.google.protobuf.ByteString - getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - name_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string name = 2; - * @param value The name to set. - * @return This builder for chaining. - */ - public Builder setName( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - - name_ = value; - onChanged(); - return this; - } - /** - * string name = 2; - * @return This builder for chaining. - */ - public Builder clearName() { - - name_ = getDefaultInstance().getName(); - onChanged(); - return this; - } - /** - * string name = 2; - * @param value The bytes for name to set. - * @return This builder for chaining. - */ - public Builder setNameBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - - name_ = value; - onChanged(); - return this; - } - - private java.lang.Object deviceType_ = ""; - /** - * string device_type = 3; - * @return The deviceType. - */ - public java.lang.String getDeviceType() { - java.lang.Object ref = deviceType_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - deviceType_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string device_type = 3; - * @return The bytes for deviceType. - */ - public com.google.protobuf.ByteString - getDeviceTypeBytes() { - java.lang.Object ref = deviceType_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - deviceType_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string device_type = 3; - * @param value The deviceType to set. - * @return This builder for chaining. - */ - public Builder setDeviceType( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - - deviceType_ = value; - onChanged(); - return this; - } - /** - * string device_type = 3; - * @return This builder for chaining. - */ - public Builder clearDeviceType() { - - deviceType_ = getDefaultInstance().getDeviceType(); - onChanged(); - return this; - } - /** - * string device_type = 3; - * @param value The bytes for deviceType to set. - * @return This builder for chaining. - */ - public Builder setDeviceTypeBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - - deviceType_ = value; - onChanged(); - return this; - } - - private context.ContextOuterClass.DeviceConfig deviceConfig_; - private com.google.protobuf.SingleFieldBuilderV3< - context.ContextOuterClass.DeviceConfig, context.ContextOuterClass.DeviceConfig.Builder, context.ContextOuterClass.DeviceConfigOrBuilder> deviceConfigBuilder_; - /** - * .context.DeviceConfig device_config = 4; - * @return Whether the deviceConfig field is set. - */ - public boolean hasDeviceConfig() { - return deviceConfigBuilder_ != null || deviceConfig_ != null; - } - /** - * .context.DeviceConfig device_config = 4; - * @return The deviceConfig. - */ - public context.ContextOuterClass.DeviceConfig getDeviceConfig() { - if (deviceConfigBuilder_ == null) { - return deviceConfig_ == null ? context.ContextOuterClass.DeviceConfig.getDefaultInstance() : deviceConfig_; - } else { - return deviceConfigBuilder_.getMessage(); - } - } - /** - * .context.DeviceConfig device_config = 4; - */ - public Builder setDeviceConfig(context.ContextOuterClass.DeviceConfig value) { - if (deviceConfigBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - deviceConfig_ = value; - onChanged(); - } else { - deviceConfigBuilder_.setMessage(value); - } - - return this; - } - /** - * .context.DeviceConfig device_config = 4; - */ - public Builder setDeviceConfig( - context.ContextOuterClass.DeviceConfig.Builder builderForValue) { - if (deviceConfigBuilder_ == null) { - deviceConfig_ = builderForValue.build(); - onChanged(); - } else { - deviceConfigBuilder_.setMessage(builderForValue.build()); - } - - return this; - } - /** - * .context.DeviceConfig device_config = 4; - */ - public Builder mergeDeviceConfig(context.ContextOuterClass.DeviceConfig value) { - if (deviceConfigBuilder_ == null) { - if (deviceConfig_ != null) { - deviceConfig_ = - context.ContextOuterClass.DeviceConfig.newBuilder(deviceConfig_).mergeFrom(value).buildPartial(); - } else { - deviceConfig_ = value; - } - onChanged(); - } else { - deviceConfigBuilder_.mergeFrom(value); - } - - return this; - } - /** - * .context.DeviceConfig device_config = 4; - */ - public Builder clearDeviceConfig() { - if (deviceConfigBuilder_ == null) { - deviceConfig_ = null; - onChanged(); - } else { - deviceConfig_ = null; - deviceConfigBuilder_ = null; - } - - return this; - } - /** - * .context.DeviceConfig device_config = 4; - */ - public context.ContextOuterClass.DeviceConfig.Builder getDeviceConfigBuilder() { - - onChanged(); - return getDeviceConfigFieldBuilder().getBuilder(); - } - /** - * .context.DeviceConfig device_config = 4; - */ - public context.ContextOuterClass.DeviceConfigOrBuilder getDeviceConfigOrBuilder() { - if (deviceConfigBuilder_ != null) { - return deviceConfigBuilder_.getMessageOrBuilder(); - } else { - return deviceConfig_ == null ? - context.ContextOuterClass.DeviceConfig.getDefaultInstance() : deviceConfig_; - } - } - /** - * .context.DeviceConfig device_config = 4; - */ - private com.google.protobuf.SingleFieldBuilderV3< - context.ContextOuterClass.DeviceConfig, context.ContextOuterClass.DeviceConfig.Builder, context.ContextOuterClass.DeviceConfigOrBuilder> - getDeviceConfigFieldBuilder() { - if (deviceConfigBuilder_ == null) { - deviceConfigBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - context.ContextOuterClass.DeviceConfig, context.ContextOuterClass.DeviceConfig.Builder, context.ContextOuterClass.DeviceConfigOrBuilder>( - getDeviceConfig(), - getParentForChildren(), - isClean()); - deviceConfig_ = null; - } - return deviceConfigBuilder_; - } - - private int deviceOperationalStatus_ = 0; - /** - * .context.DeviceOperationalStatusEnum device_operational_status = 5; - * @return The enum numeric value on the wire for deviceOperationalStatus. - */ - @java.lang.Override public int getDeviceOperationalStatusValue() { - return deviceOperationalStatus_; - } - /** - * .context.DeviceOperationalStatusEnum device_operational_status = 5; - * @param value The enum numeric value on the wire for deviceOperationalStatus to set. - * @return This builder for chaining. - */ - public Builder setDeviceOperationalStatusValue(int value) { - - deviceOperationalStatus_ = value; - onChanged(); - return this; - } - /** - * .context.DeviceOperationalStatusEnum device_operational_status = 5; - * @return The deviceOperationalStatus. - */ - @java.lang.Override - public context.ContextOuterClass.DeviceOperationalStatusEnum getDeviceOperationalStatus() { - @SuppressWarnings("deprecation") - context.ContextOuterClass.DeviceOperationalStatusEnum result = context.ContextOuterClass.DeviceOperationalStatusEnum.valueOf(deviceOperationalStatus_); - return result == null ? context.ContextOuterClass.DeviceOperationalStatusEnum.UNRECOGNIZED : result; - } - /** - * .context.DeviceOperationalStatusEnum device_operational_status = 5; - * @param value The deviceOperationalStatus to set. - * @return This builder for chaining. - */ - public Builder setDeviceOperationalStatus(context.ContextOuterClass.DeviceOperationalStatusEnum value) { - if (value == null) { - throw new NullPointerException(); - } - - deviceOperationalStatus_ = value.getNumber(); - onChanged(); - return this; - } - /** - * .context.DeviceOperationalStatusEnum device_operational_status = 5; - * @return This builder for chaining. - */ - public Builder clearDeviceOperationalStatus() { - - deviceOperationalStatus_ = 0; - onChanged(); - return this; - } - - private java.util.List deviceDrivers_ = - java.util.Collections.emptyList(); - private void ensureDeviceDriversIsMutable() { - if (!((bitField0_ & 0x00000001) != 0)) { - deviceDrivers_ = new java.util.ArrayList(deviceDrivers_); - bitField0_ |= 0x00000001; - } - } - /** - * repeated .context.DeviceDriverEnum device_drivers = 6; - * @return A list containing the deviceDrivers. - */ - public java.util.List getDeviceDriversList() { - return new com.google.protobuf.Internal.ListAdapter< - java.lang.Integer, context.ContextOuterClass.DeviceDriverEnum>(deviceDrivers_, deviceDrivers_converter_); - } - /** - * repeated .context.DeviceDriverEnum device_drivers = 6; - * @return The count of deviceDrivers. - */ - public int getDeviceDriversCount() { - return deviceDrivers_.size(); - } - /** - * repeated .context.DeviceDriverEnum device_drivers = 6; - * @param index The index of the element to return. - * @return The deviceDrivers at the given index. - */ - public context.ContextOuterClass.DeviceDriverEnum getDeviceDrivers(int index) { - return deviceDrivers_converter_.convert(deviceDrivers_.get(index)); - } - /** - * repeated .context.DeviceDriverEnum device_drivers = 6; - * @param index The index to set the value at. - * @param value The deviceDrivers to set. - * @return This builder for chaining. - */ - public Builder setDeviceDrivers( - int index, context.ContextOuterClass.DeviceDriverEnum value) { - if (value == null) { - throw new NullPointerException(); - } - ensureDeviceDriversIsMutable(); - deviceDrivers_.set(index, value.getNumber()); - onChanged(); - return this; - } - /** - * repeated .context.DeviceDriverEnum device_drivers = 6; - * @param value The deviceDrivers to add. - * @return This builder for chaining. - */ - public Builder addDeviceDrivers(context.ContextOuterClass.DeviceDriverEnum value) { - if (value == null) { - throw new NullPointerException(); - } - ensureDeviceDriversIsMutable(); - deviceDrivers_.add(value.getNumber()); - onChanged(); - return this; - } - /** - * repeated .context.DeviceDriverEnum device_drivers = 6; - * @param values The deviceDrivers to add. - * @return This builder for chaining. - */ - public Builder addAllDeviceDrivers( - java.lang.Iterable values) { - ensureDeviceDriversIsMutable(); - for (context.ContextOuterClass.DeviceDriverEnum value : values) { - deviceDrivers_.add(value.getNumber()); - } - onChanged(); - return this; - } - /** - * repeated .context.DeviceDriverEnum device_drivers = 6; - * @return This builder for chaining. - */ - public Builder clearDeviceDrivers() { - deviceDrivers_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - return this; - } - /** - * repeated .context.DeviceDriverEnum device_drivers = 6; - * @return A list containing the enum numeric values on the wire for deviceDrivers. - */ - public java.util.List - getDeviceDriversValueList() { - return java.util.Collections.unmodifiableList(deviceDrivers_); - } - /** - * repeated .context.DeviceDriverEnum device_drivers = 6; - * @param index The index of the value to return. - * @return The enum numeric value on the wire of deviceDrivers at the given index. - */ - public int getDeviceDriversValue(int index) { - return deviceDrivers_.get(index); - } - /** - * repeated .context.DeviceDriverEnum device_drivers = 6; - * @param index The index of the value to return. - * @return The enum numeric value on the wire of deviceDrivers at the given index. - * @return This builder for chaining. - */ - public Builder setDeviceDriversValue( - int index, int value) { - ensureDeviceDriversIsMutable(); - deviceDrivers_.set(index, value); - onChanged(); - return this; - } - /** - * repeated .context.DeviceDriverEnum device_drivers = 6; - * @param value The enum numeric value on the wire for deviceDrivers to add. - * @return This builder for chaining. - */ - public Builder addDeviceDriversValue(int value) { - ensureDeviceDriversIsMutable(); - deviceDrivers_.add(value); - onChanged(); - return this; - } - /** - * repeated .context.DeviceDriverEnum device_drivers = 6; - * @param values The enum numeric values on the wire for deviceDrivers to add. - * @return This builder for chaining. - */ - public Builder addAllDeviceDriversValue( - java.lang.Iterable values) { - ensureDeviceDriversIsMutable(); - for (int value : values) { - deviceDrivers_.add(value); - } - onChanged(); - return this; - } - - private java.util.List deviceEndpoints_ = - java.util.Collections.emptyList(); - private void ensureDeviceEndpointsIsMutable() { - if (!((bitField0_ & 0x00000002) != 0)) { - deviceEndpoints_ = new java.util.ArrayList(deviceEndpoints_); - bitField0_ |= 0x00000002; - } - } - - private com.google.protobuf.RepeatedFieldBuilderV3< - context.ContextOuterClass.EndPoint, context.ContextOuterClass.EndPoint.Builder, context.ContextOuterClass.EndPointOrBuilder> deviceEndpointsBuilder_; - - /** - * repeated .context.EndPoint device_endpoints = 7; - */ - public java.util.List getDeviceEndpointsList() { - if (deviceEndpointsBuilder_ == null) { - return java.util.Collections.unmodifiableList(deviceEndpoints_); - } else { - return deviceEndpointsBuilder_.getMessageList(); - } - } - /** - * repeated .context.EndPoint device_endpoints = 7; - */ - public int getDeviceEndpointsCount() { - if (deviceEndpointsBuilder_ == null) { - return deviceEndpoints_.size(); - } else { - return deviceEndpointsBuilder_.getCount(); - } - } - /** - * repeated .context.EndPoint device_endpoints = 7; - */ - public context.ContextOuterClass.EndPoint getDeviceEndpoints(int index) { - if (deviceEndpointsBuilder_ == null) { - return deviceEndpoints_.get(index); - } else { - return deviceEndpointsBuilder_.getMessage(index); - } - } - /** - * repeated .context.EndPoint device_endpoints = 7; - */ - public Builder setDeviceEndpoints( - int index, context.ContextOuterClass.EndPoint value) { - if (deviceEndpointsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureDeviceEndpointsIsMutable(); - deviceEndpoints_.set(index, value); - onChanged(); - } else { - deviceEndpointsBuilder_.setMessage(index, value); - } - return this; - } - /** - * repeated .context.EndPoint device_endpoints = 7; - */ - public Builder setDeviceEndpoints( - int index, context.ContextOuterClass.EndPoint.Builder builderForValue) { - if (deviceEndpointsBuilder_ == null) { - ensureDeviceEndpointsIsMutable(); - deviceEndpoints_.set(index, builderForValue.build()); - onChanged(); - } else { - deviceEndpointsBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .context.EndPoint device_endpoints = 7; - */ - public Builder addDeviceEndpoints(context.ContextOuterClass.EndPoint value) { - if (deviceEndpointsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureDeviceEndpointsIsMutable(); - deviceEndpoints_.add(value); - onChanged(); - } else { - deviceEndpointsBuilder_.addMessage(value); - } - return this; - } - /** - * repeated .context.EndPoint device_endpoints = 7; - */ - public Builder addDeviceEndpoints( - int index, context.ContextOuterClass.EndPoint value) { - if (deviceEndpointsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureDeviceEndpointsIsMutable(); - deviceEndpoints_.add(index, value); - onChanged(); - } else { - deviceEndpointsBuilder_.addMessage(index, value); - } - return this; - } - /** - * repeated .context.EndPoint device_endpoints = 7; - */ - public Builder addDeviceEndpoints( - context.ContextOuterClass.EndPoint.Builder builderForValue) { - if (deviceEndpointsBuilder_ == null) { - ensureDeviceEndpointsIsMutable(); - deviceEndpoints_.add(builderForValue.build()); - onChanged(); - } else { - deviceEndpointsBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * repeated .context.EndPoint device_endpoints = 7; - */ - public Builder addDeviceEndpoints( - int index, context.ContextOuterClass.EndPoint.Builder builderForValue) { - if (deviceEndpointsBuilder_ == null) { - ensureDeviceEndpointsIsMutable(); - deviceEndpoints_.add(index, builderForValue.build()); - onChanged(); - } else { - deviceEndpointsBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .context.EndPoint device_endpoints = 7; - */ - public Builder addAllDeviceEndpoints( - java.lang.Iterable values) { - if (deviceEndpointsBuilder_ == null) { - ensureDeviceEndpointsIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, deviceEndpoints_); - onChanged(); - } else { - deviceEndpointsBuilder_.addAllMessages(values); - } - return this; - } - /** - * repeated .context.EndPoint device_endpoints = 7; - */ - public Builder clearDeviceEndpoints() { - if (deviceEndpointsBuilder_ == null) { - deviceEndpoints_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000002); - onChanged(); - } else { - deviceEndpointsBuilder_.clear(); - } - return this; - } - /** - * repeated .context.EndPoint device_endpoints = 7; - */ - public Builder removeDeviceEndpoints(int index) { - if (deviceEndpointsBuilder_ == null) { - ensureDeviceEndpointsIsMutable(); - deviceEndpoints_.remove(index); - onChanged(); - } else { - deviceEndpointsBuilder_.remove(index); - } - return this; - } - /** - * repeated .context.EndPoint device_endpoints = 7; - */ - public context.ContextOuterClass.EndPoint.Builder getDeviceEndpointsBuilder( - int index) { - return getDeviceEndpointsFieldBuilder().getBuilder(index); - } - /** - * repeated .context.EndPoint device_endpoints = 7; - */ - public context.ContextOuterClass.EndPointOrBuilder getDeviceEndpointsOrBuilder( - int index) { - if (deviceEndpointsBuilder_ == null) { - return deviceEndpoints_.get(index); } else { - return deviceEndpointsBuilder_.getMessageOrBuilder(index); - } - } - /** - * repeated .context.EndPoint device_endpoints = 7; - */ - public java.util.List - getDeviceEndpointsOrBuilderList() { - if (deviceEndpointsBuilder_ != null) { - return deviceEndpointsBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(deviceEndpoints_); - } - } - /** - * repeated .context.EndPoint device_endpoints = 7; - */ - public context.ContextOuterClass.EndPoint.Builder addDeviceEndpointsBuilder() { - return getDeviceEndpointsFieldBuilder().addBuilder( - context.ContextOuterClass.EndPoint.getDefaultInstance()); - } - /** - * repeated .context.EndPoint device_endpoints = 7; - */ - public context.ContextOuterClass.EndPoint.Builder addDeviceEndpointsBuilder( - int index) { - return getDeviceEndpointsFieldBuilder().addBuilder( - index, context.ContextOuterClass.EndPoint.getDefaultInstance()); - } - /** - * repeated .context.EndPoint device_endpoints = 7; - */ - public java.util.List - getDeviceEndpointsBuilderList() { - return getDeviceEndpointsFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilderV3< - context.ContextOuterClass.EndPoint, context.ContextOuterClass.EndPoint.Builder, context.ContextOuterClass.EndPointOrBuilder> - getDeviceEndpointsFieldBuilder() { - if (deviceEndpointsBuilder_ == null) { - deviceEndpointsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< - context.ContextOuterClass.EndPoint, context.ContextOuterClass.EndPoint.Builder, context.ContextOuterClass.EndPointOrBuilder>( - deviceEndpoints_, - ((bitField0_ & 0x00000002) != 0), - getParentForChildren(), - isClean()); - deviceEndpoints_ = null; - } - return deviceEndpointsBuilder_; - } - - private java.util.List components_ = - java.util.Collections.emptyList(); - private void ensureComponentsIsMutable() { - if (!((bitField0_ & 0x00000004) != 0)) { - components_ = new java.util.ArrayList(components_); - bitField0_ |= 0x00000004; - } - } - - private com.google.protobuf.RepeatedFieldBuilderV3< - context.ContextOuterClass.Component, context.ContextOuterClass.Component.Builder, context.ContextOuterClass.ComponentOrBuilder> componentsBuilder_; - - /** - *
-       * Used for inventory
-       * 
- * - * repeated .context.Component components = 8; - */ - public java.util.List getComponentsList() { - if (componentsBuilder_ == null) { - return java.util.Collections.unmodifiableList(components_); - } else { - return componentsBuilder_.getMessageList(); - } - } - /** - *
-       * Used for inventory
-       * 
- * - * repeated .context.Component components = 8; - */ - public int getComponentsCount() { - if (componentsBuilder_ == null) { - return components_.size(); - } else { - return componentsBuilder_.getCount(); - } - } - /** - *
-       * Used for inventory
-       * 
- * - * repeated .context.Component components = 8; - */ - public context.ContextOuterClass.Component getComponents(int index) { - if (componentsBuilder_ == null) { - return components_.get(index); - } else { - return componentsBuilder_.getMessage(index); - } - } - /** - *
-       * Used for inventory
-       * 
- * - * repeated .context.Component components = 8; - */ - public Builder setComponents( - int index, context.ContextOuterClass.Component value) { - if (componentsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureComponentsIsMutable(); - components_.set(index, value); - onChanged(); - } else { - componentsBuilder_.setMessage(index, value); - } - return this; - } - /** - *
-       * Used for inventory
-       * 
- * - * repeated .context.Component components = 8; - */ - public Builder setComponents( - int index, context.ContextOuterClass.Component.Builder builderForValue) { - if (componentsBuilder_ == null) { - ensureComponentsIsMutable(); - components_.set(index, builderForValue.build()); - onChanged(); - } else { - componentsBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - *
-       * Used for inventory
-       * 
- * - * repeated .context.Component components = 8; - */ - public Builder addComponents(context.ContextOuterClass.Component value) { - if (componentsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureComponentsIsMutable(); - components_.add(value); - onChanged(); - } else { - componentsBuilder_.addMessage(value); - } - return this; - } - /** - *
-       * Used for inventory
-       * 
- * - * repeated .context.Component components = 8; - */ - public Builder addComponents( - int index, context.ContextOuterClass.Component value) { - if (componentsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureComponentsIsMutable(); - components_.add(index, value); -