Adding naming micro-service code - persistence. 19/57119/1
authorBT2983 <BT2983@att.com>
Sun, 22 Jul 2018 23:36:55 +0000 (17:36 -0600)
committerBT2983 <BT2983@att.com>
Sun, 22 Jul 2018 23:41:07 +0000 (17:41 -0600)
Entities and repository classes.

Change-Id: I9d7e11fd7196c20cf74ff302f552c1732e0c9121
Issue-ID: CCSDK-342
Signed-off-by: BT2983 <BT2983@att.com>
ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/core/policy/PolicyParametersImpl.java [new file with mode: 0644]
ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/persistence/entity/ExternalInterface.java [new file with mode: 0644]
ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/persistence/entity/GeneratedName.java [new file with mode: 0644]
ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/persistence/entity/IdentifierMap.java [new file with mode: 0644]
ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/persistence/entity/PolicyDetails.java [new file with mode: 0644]
ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/persistence/entity/ServiceParameter.java [new file with mode: 0644]
ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/persistence/repository/ExternalInterfaceRespository.java [new file with mode: 0644]
ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/persistence/repository/GeneratedNameRespository.java [new file with mode: 0644]
ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/persistence/repository/IdentifierMapRespository.java [new file with mode: 0644]
ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/persistence/repository/PolicyDetailsRepository.java [new file with mode: 0644]
ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/persistence/repository/ServiceParameterRepository.java [new file with mode: 0644]

diff --git a/ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/core/policy/PolicyParametersImpl.java b/ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/core/policy/PolicyParametersImpl.java
new file mode 100644 (file)
index 0000000..76cf8c7
--- /dev/null
@@ -0,0 +1,68 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP : CCSDK.apps
+ * ================================================================================
+ * Copyright (C) 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.ccsdk.apps.ms.neng.core.policy;
+
+import org.onap.ccsdk.apps.ms.neng.persistence.repository.IdentifierMapRespository;
+import org.onap.ccsdk.apps.ms.neng.persistence.repository.ServiceParameterRepository;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+/**
+ * Specifies parameters that control the nature of policy data and the behavior of this micro-service.
+ * 
+ * <p/>This implementation gets these parameters from DB.
+ */
+@Component
+public class PolicyParametersImpl implements PolicyParameters {
+    @Autowired
+    IdentifierMapRespository identifierMapRepository;
+
+    @Autowired
+    ServiceParameterRepository serviceParameterRepository;
+
+    static final String RECIPE_SEPERATOR_PARAM = "recipe_separator";
+    static final String MAX_GEN_ATTEMPT_PARAM = "max_gen_attempt";
+
+    /**
+     * Gives the separator between the entries within the same recipe -- such as the pipe('|') character.
+     */
+    @Override
+    public String getRecipeSeparator() throws Exception {
+        return serviceParameterRepository.findByName(RECIPE_SEPERATOR_PARAM).getValue();
+    }
+
+    /**
+     * Maps a given function, used in the policy, to the equivalent function in this micro-service. 
+     */
+    @Override
+    public String mapFunction(String name) throws Exception {
+        return identifierMapRepository.findByPolicyFnName(name).getJsFnName();
+    }
+
+    /**
+     * Maximum number of times the micro-service should attempt name generation in the same transaction
+     * (if all previous attempts in the same transaction fail). 
+     */
+    @Override
+    public int getMaxGenAttempt() throws Exception {
+        return Integer.parseInt(serviceParameterRepository.findByName(MAX_GEN_ATTEMPT_PARAM).getValue());
+    }
+}
diff --git a/ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/persistence/entity/ExternalInterface.java b/ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/persistence/entity/ExternalInterface.java
new file mode 100644 (file)
index 0000000..7a729af
--- /dev/null
@@ -0,0 +1,145 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP : CCSDK.apps
+ * ================================================================================
+ * Copyright (C) 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.ccsdk.apps.ms.neng.persistence.entity;
+
+import java.io.Serializable;
+import java.sql.Timestamp;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+/**
+ * Entity representing the parameters and configuration of an external system/sub-system/application interface
+ * from this micro-service.
+ */
+@Entity
+@Table(name = "EXTERNAL_INTERFACE")
+public class ExternalInterface implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    Integer externalInteraceId;
+    String system;
+    String param;
+    String urlSuffix;
+    Timestamp createdTime;
+    String createdBy;
+    Timestamp lastUpdatedTime;
+    String lastUpdatedBy;
+
+    /**
+     * Primary key for this entity.
+     */
+    @Id
+    @Column(name = "EXTERNAL_INTERFACE_ID")
+    public Integer getExternalInteraceId() {
+        return externalInteraceId;
+    }
+
+    public void setExternalInteraceId(Integer externalInteraceId) {
+        this.externalInteraceId = externalInteraceId;
+    }
+
+    /**
+     * Name of the interfacing system.
+     */
+    @Column(name = "SYSTEM")
+    public String getSystem() {
+        return system;
+    }
+
+    public void setSystem(String system) {
+        this.system = system;
+    }
+
+    /**
+     * A parameter related to the interfacing system.
+     */
+    @Column(name = "PARAM")
+    public String getParam() {
+        return param;
+    }
+
+    public void setParam(String param) {
+        this.param = param;
+    }
+
+    /**
+     * URL suffix for the interfacing system.
+     */
+    @Column(name = "URL_SUFFIX")
+    public String getUrlSuffix() {
+        return urlSuffix;
+    }
+
+    public void setUrlSuffix(String urlSuffix) {
+        this.urlSuffix = urlSuffix;
+    }
+
+    /**
+     * Time-stamp for this entity creation.
+     */
+    @Column(name = "CREATED_TIME")
+    public Timestamp getCreatedTime() {
+        return createdTime;
+    }
+
+    public void setCreatedTime(Timestamp createdTime) {
+        this.createdTime = createdTime;
+    }
+
+    /**
+     * Identifier for the entity creation.
+     */
+    @Column(name = "CREATED_BY")
+    public String getCreatedBy() {
+        return createdBy;
+    }
+
+    public void setCreatedBy(String createdBy) {
+        this.createdBy = createdBy;
+    }
+
+    /**
+     * Time-stamp for this entity update.
+     */
+    @Column(name = "LAST_UPDATED_TIME")
+    public Timestamp getLastUpdatedTime() {
+        return lastUpdatedTime;
+    }
+
+    public void setLastUpdatedTime(Timestamp lastUpdatedTime) {
+        this.lastUpdatedTime = lastUpdatedTime;
+    }
+
+    /**
+     * Identifier for this entity update.
+     */
+    @Column(name = "LAST_UPDATED_BY")
+    public String getLastUpdatedBy() {
+        return lastUpdatedBy;
+    }
+
+    public void setLastUpdatedBy(String lastUpdatedBy) {
+        this.lastUpdatedBy = lastUpdatedBy;
+    }
+}
diff --git a/ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/persistence/entity/GeneratedName.java b/ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/persistence/entity/GeneratedName.java
new file mode 100644 (file)
index 0000000..b5a7463
--- /dev/null
@@ -0,0 +1,211 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP : CCSDK.apps
+ * ================================================================================
+ * Copyright (C) 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.ccsdk.apps.ms.neng.persistence.entity;
+
+import java.io.Serializable;
+import java.sql.Timestamp;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+/**
+ * Represents a generated name.
+ */
+@Entity
+@Table(name = "GENERATED_NAME")
+public class GeneratedName implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    Integer generatedNameId;
+    String externalId;
+    Long sequenceNumber;
+    String sequenceNumberEnc;
+    String elementType;
+    String name;
+    String prefix;
+    String suffix;
+    String isReleased;
+    Timestamp createdTime;
+    String createdBy;
+    Timestamp lastUpdatedTime;
+    String lastUpdatedBy;
+
+    /**
+     * Primary key for this entity.
+     */
+    @Id
+    @Column(name = "GENERATED_NAME_ID")
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    public Integer getGeneratedNameId() {
+        return generatedNameId;
+    }
+
+    public void setGeneratedNameId(Integer generatedNameId) {
+        this.generatedNameId = generatedNameId;
+    }
+
+    /**
+     * Sequence number used for generation of this entity, as an integer.
+     */
+    @Column(name = "SEQUNCE_NUMBER")
+    public Long getSequenceNumber() {
+        return sequenceNumber;
+    }
+
+    public void setSequenceNumber(Long sequenceNumber) {
+        this.sequenceNumber = sequenceNumber;
+    }
+
+    /**
+     * Sequence number used for generation of this entity, in the form encoded in the name.
+     */
+    @Column(name = "SEQUENCE_NUMBER_ENC")
+    public String getSequenceNumberEnc() {
+        return sequenceNumberEnc;
+    }
+
+    public void setSequenceNumberEnc(String sequenceNumberEnc) {
+        this.sequenceNumberEnc = sequenceNumberEnc;
+    }
+
+    /**
+     * Type of the element.
+     */
+    @Column(name = "ELEMENT_TYPE")
+    public String getElementType() {
+        return elementType;
+    }
+
+    public void setElementType(String elementType) {
+        this.elementType = elementType;
+    }
+
+    /**
+     * The generated name.
+     */
+    @Column(name = "NAME")
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    /**
+     * Prefix of the name.
+     */
+    @Column(name = "PREFIX")
+    public String getPrefix() {
+        return prefix;
+    }
+
+    public void setPrefix(String prefix) {
+        this.prefix = prefix;
+    }
+
+    /**
+     * Suffix of the name.
+     */
+    @Column(name = "SUFFIX")
+    public String getSuffix() {
+        return suffix;
+    }
+
+    public void setSuffix(String suffix) {
+        this.suffix = suffix;
+    }
+
+    /**
+     * Indicator telling if the name is released from active use.
+     */
+    @Column(name = "IS_RELEASED")
+    public String getIsReleased() {
+        return isReleased;
+    }
+
+    public void setIsReleased(String isReleased) {
+        this.isReleased = isReleased;
+    }
+
+    /**
+     * Time-stamp for this entity creation.
+     */
+    @Column(name = "CREATED_TIME", insertable = false)
+    public Timestamp getCreatedTime() {
+        return createdTime;
+    }
+
+    public void setCreatedTime(Timestamp createdTime) {
+        this.createdTime = createdTime;
+    }
+
+    /**
+     * Identifier for the entity creation.
+     */
+    @Column(name = "CREATED_BY")
+    public String getCreatedBy() {
+        return createdBy;
+    }
+
+    public void setCreatedBy(String createdBy) {
+        this.createdBy = createdBy;
+    }
+
+    /**
+     * Time-stamp for this entity update.
+     */
+    @Column(name = "LAST_UPDATED_TIME")
+    public Timestamp getLastUpdatedTime() {
+        return lastUpdatedTime;
+    }
+
+    public void setLastUpdatedTime(Timestamp lastUpdatedTime) {
+        this.lastUpdatedTime = lastUpdatedTime;
+    }
+
+    /**
+     * Identifier for this entity update.
+     */
+    @Column(name = "LAST_UPDATED_BY")
+    public String getLastUpdatedBy() {
+        return lastUpdatedBy;
+    }
+
+    public void setLastUpdatedBy(String lastUpdatedBy) {
+        this.lastUpdatedBy = lastUpdatedBy;
+    }
+
+    /**
+     * External system ID mapped to this entity/name.
+     */
+    @Column(name = "EXTERNAL_ID")
+    public String getExternalId() {
+        return externalId;
+    }
+
+    public void setExternalId(String externalId) {
+        this.externalId = externalId;
+    }
+}
diff --git a/ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/persistence/entity/IdentifierMap.java b/ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/persistence/entity/IdentifierMap.java
new file mode 100644 (file)
index 0000000..de8bef1
--- /dev/null
@@ -0,0 +1,132 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP : CCSDK.apps
+ * ================================================================================
+ * Copyright (C) 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.ccsdk.apps.ms.neng.persistence.entity;
+
+import java.io.Serializable;
+import java.sql.Timestamp;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+/**
+ * Maps identifiers (such as function names) in the policy to internal names used by this
+ * micro-service.
+ */
+@Entity
+@Table(name = "IDENTIFIER_MAP")
+public class IdentifierMap implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    Integer identifierMapId;
+    String policyFnName;
+    String jsFnName;
+    Timestamp createdTime;
+    String createdBy;
+    Timestamp lastUpdatedTime;
+    String lastUpdatedBy;
+
+    /**
+     * Primary key for this entity.
+     */
+    @Id
+    @Column(name = "IDENTIFIER_MAP_ID")
+    public Integer getIdentifierMapId() {
+        return identifierMapId;
+    }
+
+    public void setIdentifierMapId(Integer identifierMapId) {
+        this.identifierMapId = identifierMapId;
+    }
+
+    /**
+     * Name in the policy.
+     */
+    @Column(name = "POLICY_FN_NAME")
+    public String getPolicyFnName() {
+        return policyFnName;
+    }
+
+    public void setPolicyFnName(String policyFnName) {
+        this.policyFnName = policyFnName;
+    }
+
+    /**
+     * Name in this micro-service.
+     */
+    @Column(name = "JS_FN_NAME")
+    public String getJsFnName() {
+        return jsFnName;
+    }
+
+    public void setJsFnName(String jsFnName) {
+        this.jsFnName = jsFnName;
+    }
+
+    /**
+     * Time-stamp for this entity creation.
+     */
+    @Column(name = "CREATED_TIME")
+    public Timestamp getCreatedTime() {
+        return createdTime;
+    }
+
+    public void setCreatedTime(Timestamp createdTime) {
+        this.createdTime = createdTime;
+    }
+
+    /**
+     * Identifier for the entity creation.
+     */
+    @Column(name = "CREATED_BY")
+    public String getCreatedBy() {
+        return createdBy;
+    }
+
+    public void setCreatedBy(String createdBy) {
+        this.createdBy = createdBy;
+    }
+
+    /**
+     * Time-stamp for this entity update.
+     */
+    @Column(name = "LAST_UPDATED_TIME")
+    public Timestamp getLastUpdatedTime() {
+        return lastUpdatedTime;
+    }
+
+    public void setLastUpdatedTime(Timestamp lastUpdatedTime) {
+        this.lastUpdatedTime = lastUpdatedTime;
+    }
+
+    /**
+     * Identifier for this entity update.
+     */
+    @Column(name = "LAST_UPDATED_BY")
+    public String getLastUpdatedBy() {
+        return lastUpdatedBy;
+    }
+
+    public void setLastUpdatedBy(String lastUpdatedBy) {
+        this.lastUpdatedBy = lastUpdatedBy;
+    }
+}
diff --git a/ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/persistence/entity/PolicyDetails.java b/ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/persistence/entity/PolicyDetails.java
new file mode 100644 (file)
index 0000000..0141073
--- /dev/null
@@ -0,0 +1,94 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP : CCSDK.apps
+ * ================================================================================
+ * Copyright (C) 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.ccsdk.apps.ms.neng.persistence.entity;
+
+import java.io.Serializable;
+import java.sql.Timestamp;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+/**
+ * Represents an entity representing policies stored in this micro-service (temporarily).
+ */
+@Entity
+@Table(name = "POLICY_MAN_SIM")
+public class PolicyDetails implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+    Integer policyId;
+    String policyName;
+    String policyResponse;
+    Timestamp createdTime;
+
+    /**
+     * Primary key for this entity.
+     */
+    @Id
+    @Column(name = "POLICY_ID")
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    public Integer getPolicyId() {
+        return policyId;
+    }
+
+    public void setPolicyId(Integer policyId) {
+        this.policyId = policyId;
+    }
+
+    /**
+     * Name of the policy.
+     */
+    @Column(name = "POLICY_NAME")
+    public String getPolicyName() {
+        return policyName;
+    }
+
+    public void setPolicyName(String policyName) {
+        this.policyName = policyName;
+    }
+
+    /**
+     * The text form of the policy.
+     */
+    @Column(name = "POLICY_RESPONSE")
+    public String getPolicyResponse() {
+        return policyResponse;
+    }
+
+    public void setPolicyResponse(String policyResponse) {
+        this.policyResponse = policyResponse;
+    }
+
+    /**
+     * Time-stamp for this entity creation.
+     */
+    @Column(name = "CREATED_TIME")
+    public Timestamp getCreatedTime() {
+        return createdTime;
+    }
+
+    public void setCreatedTime(Timestamp createdTime) {
+        this.createdTime = createdTime;
+    }
+}
diff --git a/ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/persistence/entity/ServiceParameter.java b/ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/persistence/entity/ServiceParameter.java
new file mode 100644 (file)
index 0000000..92cfa4f
--- /dev/null
@@ -0,0 +1,131 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP : CCSDK.apps
+ * ================================================================================
+ * Copyright (C) 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.ccsdk.apps.ms.neng.persistence.entity;
+
+import java.io.Serializable;
+import java.sql.Timestamp;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+/**
+ * General parameters controlling this micro-service. 
+ */
+@Entity
+@Table(name = "SERVICE_PARAMETER")
+public class ServiceParameter implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    Integer serviceParameterId;
+    String name;
+    String value;
+    Timestamp createdTime;
+    String createdBy;
+    Timestamp lastUpdatedTime;
+    String lastUpdatedBy;
+
+    /**
+     * Primary key for this entity.
+     */
+    @Id
+    @Column(name = "SERVICE_PARAMETER_ID")
+    public Integer getServiceParameterId() {
+        return serviceParameterId;
+    }
+
+    public void setServiceParameterId(Integer serviceParameterId) {
+        this.serviceParameterId = serviceParameterId;
+    }
+
+    /**
+     * The name of the parameter.
+     */
+    @Column(name = "NAME")
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    /**
+     * The value of the parameter.
+     */
+    @Column(name = "VALUE")
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    /**
+     * Time-stamp for this entity creation.
+     */
+    @Column(name = "CREATED_TIME")
+    public Timestamp getCreatedTime() {
+        return createdTime;
+    }
+
+    public void setCreatedTime(Timestamp createdTime) {
+        this.createdTime = createdTime;
+    }
+
+    /**
+     * Identifier for the entity creation.
+     */
+    @Column(name = "CREATED_BY")
+    public String getCreatedBy() {
+        return createdBy;
+    }
+
+    public void setCreatedBy(String createdBy) {
+        this.createdBy = createdBy;
+    }
+
+    /**
+     * Time-stamp for this entity update.
+     */
+    @Column(name = "LAST_UPDATED_TIME")
+    public Timestamp getLastUpdatedTime() {
+        return lastUpdatedTime;
+    }
+
+    public void setLastUpdatedTime(Timestamp lastUpdatedTime) {
+        this.lastUpdatedTime = lastUpdatedTime;
+    }
+
+    /**
+     * Identifier for this entity update.
+     */
+    @Column(name = "LAST_UPDATED_BY")
+    public String getLastUpdatedBy() {
+        return lastUpdatedBy;
+    }
+
+    public void setLastUpdatedBy(String lastUpdatedBy) {
+        this.lastUpdatedBy = lastUpdatedBy;
+    }
+}
diff --git a/ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/persistence/repository/ExternalInterfaceRespository.java b/ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/persistence/repository/ExternalInterfaceRespository.java
new file mode 100644 (file)
index 0000000..ab80408
--- /dev/null
@@ -0,0 +1,38 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP : CCSDK.apps
+ * ================================================================================
+ * Copyright (C) 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.ccsdk.apps.ms.neng.persistence.repository;
+
+import org.onap.ccsdk.apps.ms.neng.persistence.entity.ExternalInterface;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.repository.query.Param;
+
+/**
+ * Repository for the ExternalInterface entity.
+ */
+public interface ExternalInterfaceRespository extends CrudRepository<ExternalInterface, Integer> {
+
+    /**
+     * Gives the URL to be used for calling an external interface, for the given type of parameter.
+     */
+    @Query("select ie.urlSuffix from ExternalInterface ie where ie.param = :param")
+    public String getUriByNameType(@Param("param") String param) throws Exception;
+}
diff --git a/ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/persistence/repository/GeneratedNameRespository.java b/ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/persistence/repository/GeneratedNameRespository.java
new file mode 100644 (file)
index 0000000..4f5f65d
--- /dev/null
@@ -0,0 +1,67 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP : CCSDK.apps
+ * ================================================================================
+ * Copyright (C) 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.ccsdk.apps.ms.neng.persistence.repository;
+
+import java.util.List;
+import org.onap.ccsdk.apps.ms.neng.persistence.entity.GeneratedName;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.repository.query.Param;
+
+/**
+ * Repository for the GeneratedName entity.
+ */
+public interface GeneratedNameRespository extends CrudRepository<GeneratedName, Integer> {
+    
+    /*
+     * Finds an entity by element type, name and the 'isReleased' flag.
+     */
+    public GeneratedName findByElementTypeAndNameAndIsReleased(String elementType, String name, String isReleased);
+
+    /*
+     * Finds entities for a given external system ID.
+     */
+    public List<GeneratedName> findByExternalId(String externalId);
+
+    /*
+     * Finds the maximum sequence number used for a given prefix and suffix.
+     */
+    @Query("select max(sequenceNumber) from GeneratedName where prefix=:prefix "
+                    + "and ((suffix is null and :suffix is null) or suffix=:suffix)")
+    public String findMaxByPrefixAndSuffix(@Param("prefix") String prefix, @Param("suffix") String suffix);
+
+    /*
+     * Finds the maximum sequence number used that is greater than the given sequence number,
+     * for a given prefix and suffix. 
+     */
+    @Query("select max(sequenceNumber) from GeneratedName g where g.sequenceNumber > :seqNum "
+                    + "and g.prefix=:prefix and ((:suffix is null and g.suffix is null) or g.suffix=:suffix) "
+                    + "and g.isReleased='Y'")
+    public Long findNextReleasedSeq(@Param("seqNum") Long seqNum, @Param("prefix") String prefix,
+                    @Param("suffix") String suffix);
+
+    /*
+     * Finds the entity for given type and name, that is NOT already released. 
+     */
+    @Query("select g from GeneratedName g where g.elementType=:elementType "
+                    + "and g.name=:name and (g.isReleased is null or g.isReleased ='N')")
+    public GeneratedName findUnReleased(@Param("elementType") String elementType, @Param("name") String name);
+}
diff --git a/ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/persistence/repository/IdentifierMapRespository.java b/ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/persistence/repository/IdentifierMapRespository.java
new file mode 100644 (file)
index 0000000..f91ae5c
--- /dev/null
@@ -0,0 +1,35 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP : CCSDK.apps
+ * ================================================================================
+ * Copyright (C) 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.ccsdk.apps.ms.neng.persistence.repository;
+
+import org.onap.ccsdk.apps.ms.neng.persistence.entity.IdentifierMap;
+import org.springframework.data.repository.CrudRepository;
+
+/**
+ * Repository for the IdentifierMap entity.
+ */
+public interface IdentifierMapRespository extends CrudRepository<IdentifierMap, Integer> {
+    
+    /**
+     * Finds the entity by a given policy function/identifier name.
+     */
+    public IdentifierMap findByPolicyFnName(String policyFnName);
+}
diff --git a/ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/persistence/repository/PolicyDetailsRepository.java b/ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/persistence/repository/PolicyDetailsRepository.java
new file mode 100644 (file)
index 0000000..27e272e
--- /dev/null
@@ -0,0 +1,38 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP : CCSDK.apps
+ * ================================================================================
+ * Copyright (C) 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.ccsdk.apps.ms.neng.persistence.repository;
+
+import org.onap.ccsdk.apps.ms.neng.persistence.entity.PolicyDetails;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.repository.query.Param;
+
+/**
+ * Repository for the PolicyDetails entity.
+ */
+public interface PolicyDetailsRepository extends CrudRepository<PolicyDetails, Integer> {
+
+    /**
+     * Finds the entity by a given policy name. 
+     */
+    @Query("select p from PolicyDetails p where p.policyName=:policyName")
+    public PolicyDetails findPolicyResponseByName(@Param("policyName") String policyName);
+}
diff --git a/ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/persistence/repository/ServiceParameterRepository.java b/ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/persistence/repository/ServiceParameterRepository.java
new file mode 100644 (file)
index 0000000..36c7a94
--- /dev/null
@@ -0,0 +1,35 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP : CCSDK.apps
+ * ================================================================================
+ * Copyright (C) 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.ccsdk.apps.ms.neng.persistence.repository;
+
+import org.onap.ccsdk.apps.ms.neng.persistence.entity.ServiceParameter;
+import org.springframework.data.repository.CrudRepository;
+
+/**
+ * Repository for the ServiceParameter entity.
+ */
+public interface ServiceParameterRepository extends CrudRepository<ServiceParameter, Integer> {
+
+    /**
+     * Finds the entity by a given name.
+     */
+    public ServiceParameter findByName(String name);
+}