summaryrefslogtreecommitdiffstats
path: root/aai-annotations
diff options
context:
space:
mode:
authorKajur, Harish (vk250x) <vk250x@att.com>2018-12-13 08:37:13 -0500
committerKajur, Harish (vk250x) <vk250x@att.com>2019-01-11 16:05:35 -0500
commitd8393a8b7a51ed28e95cddac2350d6a20f31f953 (patch)
treeed0f594c75216030ab194340e710e11067d6119e /aai-annotations
parentd64d789ad789e950c3b5e5443fb418a722b917c4 (diff)
Move the aai-schema, annotations and
schema generation code from the aai-common repo to the schema service repo as aai-schema should be in the schema service and all code related to it such as generation of the schema code should also be moved to the service Issue-ID: AAI-2002 Change-Id: Ia792d5ae8822642b1816a0e9664bb21fa511e24f Signed-off-by: Kajur, Harish (vk250x) <vk250x@att.com>
Diffstat (limited to 'aai-annotations')
-rw-r--r--aai-annotations/.gitignore2
-rw-r--r--aai-annotations/LICENSE.TXT17
-rw-r--r--aai-annotations/pom.xml78
-rw-r--r--aai-annotations/pom.xml.versionsBackup78
-rw-r--r--aai-annotations/src/main/java/org/onap/aai/annotations/Metadata.java56
-rw-r--r--aai-annotations/src/main/java/org/onap/aai/schema/enums/ObjectMetadata.java132
-rw-r--r--aai-annotations/src/main/java/org/onap/aai/schema/enums/PropertyMetadata.java84
-rw-r--r--aai-annotations/src/test/java/org/onap/aai/annotations/AnnotationsTest.java48
8 files changed, 495 insertions, 0 deletions
diff --git a/aai-annotations/.gitignore b/aai-annotations/.gitignore
new file mode 100644
index 0000000..2f30844
--- /dev/null
+++ b/aai-annotations/.gitignore
@@ -0,0 +1,2 @@
+/bin/
+/.checkstyle
diff --git a/aai-annotations/LICENSE.TXT b/aai-annotations/LICENSE.TXT
new file mode 100644
index 0000000..3455862
--- /dev/null
+++ b/aai-annotations/LICENSE.TXT
@@ -0,0 +1,17 @@
+============LICENSE_START=======================================================
+org.onap.aai
+================================================================================
+Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.
+================================================================================
+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=========================================================
diff --git a/aai-annotations/pom.xml b/aai-annotations/pom.xml
new file mode 100644
index 0000000..178a51d
--- /dev/null
+++ b/aai-annotations/pom.xml
@@ -0,0 +1,78 @@
+<?xml version="1.0"?>
+<!--
+
+ ============LICENSE_START=======================================================
+ org.onap.aai
+ ================================================================================
+ Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.
+ ================================================================================
+ 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=========================================================
+
+-->
+<project
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
+ xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.onap.aai.schema-service</groupId>
+ <artifactId>schema-service</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ </parent>
+ <artifactId>aai-annotations</artifactId>
+ <name>aai-annotations</name>
+ <packaging>jar</packaging>
+ <version>1.0.0-SNAPSHOT</version>
+ <properties>
+ <onap.nexus.url>https://nexus.onap.org</onap.nexus.url>
+ </properties>
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>3.8.1</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-source-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-deploy-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.sonatype.plugins</groupId>
+ <artifactId>nexus-staging-maven-plugin</artifactId>
+ </plugin>
+ </plugins>
+ </build>
+
+ <!-- Plugins and repositories -->
+ <pluginRepositories>
+ <pluginRepository>
+ <id>central</id>
+ <url>http://repo1.maven.org/maven2</url>
+ </pluginRepository>
+ <pluginRepository>
+ <id>EvoSuite</id>
+ <name>EvoSuite Repository</name>
+ <url>http://www.evosuite.org/m2</url>
+ </pluginRepository>
+ </pluginRepositories>
+
+</project>
diff --git a/aai-annotations/pom.xml.versionsBackup b/aai-annotations/pom.xml.versionsBackup
new file mode 100644
index 0000000..1e03e0e
--- /dev/null
+++ b/aai-annotations/pom.xml.versionsBackup
@@ -0,0 +1,78 @@
+<?xml version="1.0"?>
+<!--
+
+ ============LICENSE_START=======================================================
+ org.onap.aai
+ ================================================================================
+ Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.
+ ================================================================================
+ 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=========================================================
+
+-->
+<project
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
+ xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.onap.aai.aai-common</groupId>
+ <artifactId>aai-common</artifactId>
+ <version>1.3.1-SNAPSHOT</version>
+ </parent>
+ <artifactId>aai-annotations</artifactId>
+ <name>aai-annotations</name>
+ <packaging>jar</packaging>
+ <version>1.3.1-SNAPSHOT</version>
+ <properties>
+ <onap.nexus.url>https://nexus.onap.org</onap.nexus.url>
+ </properties>
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>3.8.1</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-source-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-deploy-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.sonatype.plugins</groupId>
+ <artifactId>nexus-staging-maven-plugin</artifactId>
+ </plugin>
+ </plugins>
+ </build>
+
+ <!-- Plugins and repositories -->
+ <pluginRepositories>
+ <pluginRepository>
+ <id>central</id>
+ <url>http://repo1.maven.org/maven2</url>
+ </pluginRepository>
+ <pluginRepository>
+ <id>EvoSuite</id>
+ <name>EvoSuite Repository</name>
+ <url>http://www.evosuite.org/m2</url>
+ </pluginRepository>
+ </pluginRepositories>
+
+</project>
diff --git a/aai-annotations/src/main/java/org/onap/aai/annotations/Metadata.java b/aai-annotations/src/main/java/org/onap/aai/annotations/Metadata.java
new file mode 100644
index 0000000..d9e9f0f
--- /dev/null
+++ b/aai-annotations/src/main/java/org/onap/aai/annotations/Metadata.java
@@ -0,0 +1,56 @@
+/**
+ * ============LICENSE_START=======================================================
+ * org.onap.aai
+ * ================================================================================
+ * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * 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=========================================================
+ */
+package org.onap.aai.annotations;
+
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+@Retention(RUNTIME)
+@Target({ElementType.METHOD, ElementType.TYPE, ElementType.FIELD})
+public @interface Metadata {
+
+ boolean isKey() default false;
+ String description() default "";
+ String nameProps() default "";
+ String indexedProps() default "";
+ String dependentOn() default "";
+ String container() default "";
+ String namespace() default "";
+ String defaultValue() default "";
+ String searchable() default "";
+ String uniqueProps() default "";
+ String requiredProps() default "";
+ String uriTemplate() default "";
+ String extendsFrom() default "";
+ String isAbstract() default "";
+ String alternateKeys1() default "";
+ String maximumDepth() default "";
+ String crossEntityReference() default "";
+ String requires() default "";
+ String dbAlias() default "";
+ String dataLocation() default "";
+ String containsSuggestibleProps() default "";
+ String suggestionAliases() default "";
+ String sourceOfTruthType() default "";
+
+}
diff --git a/aai-annotations/src/main/java/org/onap/aai/schema/enums/ObjectMetadata.java b/aai-annotations/src/main/java/org/onap/aai/schema/enums/ObjectMetadata.java
new file mode 100644
index 0000000..39cfdec
--- /dev/null
+++ b/aai-annotations/src/main/java/org/onap/aai/schema/enums/ObjectMetadata.java
@@ -0,0 +1,132 @@
+/**
+ * ============LICENSE_START=======================================================
+ * org.onap.aai
+ * ================================================================================
+ * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * 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=========================================================
+ */
+package org.onap.aai.schema.enums;
+
+public enum ObjectMetadata {
+
+ /**
+ * description of object
+ */
+ DESCRIPTION("description"),
+ /**
+ * names of properties to appear in relationship-lists
+ * and parent objects in DMaaP messages
+ * <br><b>comma separated list</b>
+ */
+ NAME_PROPS("nameProps"),
+ /**
+ * names of properties to be indexed in the
+ * db schema
+ * <br><b>comma separated list</b>
+ */
+ INDEXED_PROPS("indexedProps"),
+ /**
+ * name of the object this one depends on
+ */
+ DEPENDENT_ON("dependentOn"),
+ /**
+ * name of the object which contains this object
+ */
+ CONTAINER("container"),
+ /**
+ * the top level namespace to which this object belongs<br>
+ * <b>only valid on top level objects</b>
+ */
+ NAMESPACE("namespace"),
+ /**
+ * properties which are searchable via the GUI
+ * <br><b>comma separated list</b>
+ */
+ SEARCHABLE("searchable"),
+ /**
+ * properties marked as unique in the db schema
+ * <br><b>comma separated list</b>
+ */
+ UNIQUE_PROPS("uniqueProps"),
+ /**
+ * properties marked as required
+ * <br><b>comma separated list</b>
+ */
+ REQUIRED_PROPS("requiredProps"),
+ /**
+ * uri template for this object
+ */
+ URI_TEMPLATE("uriTemplate"),
+ /**
+ * abstract type from which this object extends
+ */
+ EXTENDS("extends"),
+ /**
+ * comma separated list of objects who inherit this object<br>
+ * <b>only valid on abstract objects</b>
+ */
+ INHERITORS("inheritors"),
+ /**
+ * a value of true marks this object as abstract
+ * abstract objects cannot be read/written directly
+ * they resolve to "or queries" when used in queries
+ */
+ ABSTRACT("abstract"),
+ /**
+ * comma separated list of properties which are alternate ways
+ * to identify this object
+ */
+ ALTERNATE_KEYS_1("alternateKeys1"),
+ /**
+ * the maximum allowable retrievable depth
+ */
+ MAXIMUM_DEPTH("maximumDepth"),
+ /**
+ * collection of other objects to retrieve along with this one
+ * <br><b>comma separated list</b>
+ */
+ CROSS_ENTITY_REFERENCE("crossEntityReference"),
+ /**
+ * Marks that this object can be linked to via dataLink
+ */
+ CAN_BE_LINKED("canBeLinked"),
+ /**
+ * The entity contains properties that are suggestible
+ */
+ CONTAINS_SUGGESTIBLE_PROPS("containsSuggestibleProps"),
+ /**
+ * A list of aliases for the entity name (for AAI UI searches)
+ */
+ SUGGESTION_ALIASES("suggestionAliases"),
+ /**
+ * a value of true allows this object to be read directly
+ */
+ ALLOW_DIRECT_READ("allowDirectRead"),
+ /**
+ * a value of true allows this object to be written directly
+ */
+ ALLOW_DIRECT_WRITE("allowDirectWrite");
+
+ private final String name;
+
+ private ObjectMetadata(String name) {
+ this.name = name;
+ }
+
+ @Override public String toString() {
+ return name;
+ }
+
+}
diff --git a/aai-annotations/src/main/java/org/onap/aai/schema/enums/PropertyMetadata.java b/aai-annotations/src/main/java/org/onap/aai/schema/enums/PropertyMetadata.java
new file mode 100644
index 0000000..ac2c00b
--- /dev/null
+++ b/aai-annotations/src/main/java/org/onap/aai/schema/enums/PropertyMetadata.java
@@ -0,0 +1,84 @@
+/**
+ * ============LICENSE_START=======================================================
+ * org.onap.aai
+ * ================================================================================
+ * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * 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=========================================================
+ */
+package org.onap.aai.schema.enums;
+
+public enum PropertyMetadata {
+
+ /**
+ * description of property
+ */
+ DESCRIPTION("description"),
+ /**
+ * default value of property
+ */
+ DEFAULT_VALUE("defaultValue"),
+ /**
+ * sets the property name used when writing to the db
+ */
+ DB_ALIAS("dbAlias"),
+ /**
+ * a URI which describes the location of a value to be
+ * written on a PUT
+ */
+ DATA_COPY("dataCopy"),
+ /**
+ * a URI which describes another object which backs this value
+ */
+ DATA_LINK("dataLink"),
+ /**
+ * controls the visibility of a field based on context
+ */
+ VISIBILITY("visibility"),
+ /**
+ * specifies a field which must be populated to pass validation
+ */
+ REQUIRES("requires"),
+ /**
+ * automatically creates an id for the property if not specified
+ */
+ AUTO_GENERATE_UUID("autoGenerateUuid"),
+ /**
+ * Property is used for VNF searches in AAI UI
+ */
+ SUGGESTIBLE_ON_SEARCH("suggestibleOnSearch"),
+ /**
+ * An identifier that indicates which system is the master of this property data
+ */
+ SOURCE_OF_TRUTH_TYPE("sourceOfTruthType"),
+ /**
+ * makes property read only by version
+ */
+ READ_ONLY("readOnly"),
+ /**
+ * Add a private edge between two objects based on the uri provided by user which should provide
+ * the appropriate information from the url similar to dataCopy
+ */
+ PRIVATE_EDGE("privateEdge");
+
+ private final String name;
+
+ private PropertyMetadata(String name) {
+ this.name = name;
+ }
+
+ @Override public String toString() {
+ return name;
+ }
+}
diff --git a/aai-annotations/src/test/java/org/onap/aai/annotations/AnnotationsTest.java b/aai-annotations/src/test/java/org/onap/aai/annotations/AnnotationsTest.java
new file mode 100644
index 0000000..a518e0c
--- /dev/null
+++ b/aai-annotations/src/test/java/org/onap/aai/annotations/AnnotationsTest.java
@@ -0,0 +1,48 @@
+/**
+ * ============LICENSE_START=======================================================
+ * org.onap.aai
+ * ================================================================================
+ * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * 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=========================================================
+ */
+package org.onap.aai.annotations;
+
+import org.onap.aai.annotations.Metadata;
+
+public class AnnotationsTest {
+
+ public AnnotationsTest() {
+ }
+
+ @Metadata(isKey = false,
+ description = "",
+ nameProps = "",
+ indexedProps = "",
+ dependentOn = "",
+ container = "",
+ namespace = "",
+ defaultValue = "",
+ searchable = "",
+ uniqueProps = "",
+ requiredProps = "",
+ uriTemplate = "",
+ extendsFrom = "",
+ isAbstract = "",
+ alternateKeys1 = "",
+ maximumDepth = "",
+ crossEntityReference = "")
+ public void testAnnotation() {
+ }
+}