summaryrefslogtreecommitdiffstats
path: root/components/datalake-handler/feeder/src/main/java/com
diff options
context:
space:
mode:
authorGuobiao Mo <guobiaomo@chinamobile.com>2019-04-10 00:35:43 -0700
committerGuobiao Mo <guobiaomo@chinamobile.com>2019-04-10 00:35:43 -0700
commit35cc15e04411008b2f8094bbd3876e7a2daed587 (patch)
tree7ba9c49f05f8596b71395c98e0dca1fa61f7d12e /components/datalake-handler/feeder/src/main/java/com
parent2672b1261e87bff3e6526534bc51b56b97d2e5ab (diff)
Support MongoDB as a data storage
Issue-ID: DCAEGEN2-1411 Change-Id: I06b69605e88d5b81500b788847e7c90ff4017a07 Signed-off-by: Guobiao Mo <guobiaomo@chinamobile.com>
Diffstat (limited to 'components/datalake-handler/feeder/src/main/java/com')
-rw-r--r--components/datalake-handler/feeder/src/main/java/com/mongodb/internal/validator/CollectibleDocumentFieldNameValidator.java60
1 files changed, 60 insertions, 0 deletions
diff --git a/components/datalake-handler/feeder/src/main/java/com/mongodb/internal/validator/CollectibleDocumentFieldNameValidator.java b/components/datalake-handler/feeder/src/main/java/com/mongodb/internal/validator/CollectibleDocumentFieldNameValidator.java
new file mode 100644
index 00000000..2bc6faad
--- /dev/null
+++ b/components/datalake-handler/feeder/src/main/java/com/mongodb/internal/validator/CollectibleDocumentFieldNameValidator.java
@@ -0,0 +1,60 @@
+package com.mongodb.internal.validator;
+
+//copy from https://github.com/mongodb/mongo-java-driver/blob/master/driver-core/src/main/com/mongodb/internal/validator/CollectibleDocumentFieldNameValidator.java
+//allow inserting name with dot
+/*
+* ============LICENSE_START=======================================================
+* ONAP : DataLake
+* ================================================================================
+* Copyright 2018 China Mobile
+*=================================================================================
+* 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.
+* ============LICENSE_END=========================================================
+*/
+import org.bson.FieldNameValidator;
+
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * A field name validator for document that are meant for storage in MongoDB collections. It ensures that no fields contain a '.',
+ * or start with '$' (with the exception of "$db", "$ref", and "$id", so that DBRefs are not rejected).
+ *
+ * <p>This class should not be considered a part of the public API.</p>
+ */
+public class CollectibleDocumentFieldNameValidator implements FieldNameValidator {
+ // Have to support DBRef fields
+ private static final List<String> EXCEPTIONS = Arrays.asList("$db", "$ref", "$id");
+
+ @Override
+ public boolean validate(final String fieldName) {
+ if (fieldName == null) {
+ throw new IllegalArgumentException("Field name can not be null");
+ }
+
+ /* dl change
+ if (fieldName.contains(".")) {
+ return false;
+ }*/
+
+ if (fieldName.startsWith("$") && !EXCEPTIONS.contains(fieldName)) {
+ return false;
+ }
+ return true;
+ }
+
+ @Override
+ public FieldNameValidator getValidatorForField(final String fieldName) {
+ return this;
+ }
+}