* limitations under the License.
* ============LICENSE_END=========================================================
*/
+
package org.onap.aai.introspection.sideeffect;
+import java.io.UnsupportedEncodingException;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map.Entry;
+import java.util.Objects;
+import java.util.Optional;
+
+import javax.ws.rs.core.MultivaluedMap;
+
import org.apache.tinkerpop.gremlin.structure.Vertex;
import org.onap.aai.exceptions.AAIException;
import org.onap.aai.introspection.Introspector;
import org.onap.aai.serialization.db.DBSerializer;
import org.onap.aai.serialization.engines.TransactionalGraphEngine;
-import javax.ws.rs.core.MultivaluedMap;
-import java.io.UnsupportedEncodingException;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map.Entry;
-import java.util.Objects;
-import java.util.Optional;
+public class DataCopy extends SideEffect {
+ public DataCopy(Introspector obj, Vertex self, TransactionalGraphEngine dbEngine, DBSerializer serializer) {
+ super(obj, self, dbEngine, serializer);
+ }
-public class DataCopy extends SideEffect {
+ @Override
+ protected void processURI(Optional<String> completeUri, Entry<String, String> entry)
+ throws URISyntaxException, UnsupportedEncodingException, AAIException {
+ if (completeUri.isPresent()) {
+ URI uri = new URI(completeUri.get());
+ MultivaluedMap<String, String> map = URITools.getQueryMap(uri);
+ QueryParser uriQuery = dbEngine.getQueryBuilder(this.latestLoader).createQueryFromURI(uri, map);
+ List<Vertex> results = uriQuery.getQueryBuilder().toList();
+ Introspector resultObj = this.latestLoader.introspectorFromName(uriQuery.getResultType());
+ if (results.size() == 1) {
+ serializer.dbToObject(Collections.singletonList(results.get(0)), resultObj, 0, true, "false");
+ try {
+ obj.setValue(entry.getKey(), Objects.requireNonNull(resultObj.getValue(uri.getFragment()),
+ uri.getFragment() + " was null"));
+ } catch (NullPointerException e) {
+ throw new AAIMissingRequiredPropertyException(
+ "property " + uri.getFragment() + " not found at " + uri);
+ }
+ } else {
+ if (results.isEmpty()) {
+ throw new AAIException("AAI_6114", "object located at " + uri + " not found");
+ } else if (results.size() > 1) {
+ throw new AAIMultiplePropertiesException(
+ "multiple values of " + entry.getKey() + " found when searching " + uri);
+ }
+ }
+ } else {
+ // skip processing because no required properties were specified
+ }
+ }
-
- public DataCopy(Introspector obj, Vertex self, TransactionalGraphEngine dbEngine, DBSerializer serializer) {
- super(obj, self, dbEngine, serializer);
- }
-
- @Override
- protected void processURI(Optional<String> completeUri, Entry<String, String> entry) throws URISyntaxException, UnsupportedEncodingException, AAIException {
- if (completeUri.isPresent()) {
- URI uri = new URI(completeUri.get());
- MultivaluedMap<String, String> map = URITools.getQueryMap(uri);
- QueryParser uriQuery = dbEngine.getQueryBuilder(this.latestLoader).createQueryFromURI(uri, map);
- List<Vertex> results = uriQuery.getQueryBuilder().toList();
- Introspector resultObj = this.latestLoader.introspectorFromName(uriQuery.getResultType());
- if (results.size() == 1) {
- serializer.dbToObject(Collections.singletonList(results.get(0)), resultObj, 0, true, "false");
- try {
- obj.setValue(entry.getKey(), Objects.requireNonNull(resultObj.getValue(uri.getFragment()), uri.getFragment() + " was null"));
- } catch (NullPointerException e) {
- throw new AAIMissingRequiredPropertyException("property " + uri.getFragment() + " not found at " + uri);
- }
- } else {
- if (results.isEmpty()) {
- throw new AAIException("AAI_6114", "object located at " + uri + " not found");
- } else if (results.size() > 1) {
- throw new AAIMultiplePropertiesException("multiple values of " + entry.getKey() + " found when searching " + uri);
- }
- }
- } else {
- //skip processing because no required properties were specified
- }
- }
+ @Override
+ protected PropertyMetadata getPropertyMetadata() {
+ return PropertyMetadata.DATA_COPY;
+ }
- @Override
- protected PropertyMetadata getPropertyMetadata() {
- return PropertyMetadata.DATA_COPY;
- }
+ @Override
+ protected boolean replaceWithWildcard() {
+ return false;
+ }
- @Override
- protected boolean replaceWithWildcard() {
- return false;
- }
-
}