summaryrefslogtreecommitdiffstats
path: root/ecomp-sdk/epsdk-domain/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'ecomp-sdk/epsdk-domain/src/main/java')
-rw-r--r--ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/App.java225
-rw-r--r--ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/AuditLog.java128
-rw-r--r--ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/BroadcastMessage.java135
-rw-r--r--ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/DomainVo.java186
-rw-r--r--ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/FnMenu.java182
-rw-r--r--ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/FusionObject.java122
-rw-r--r--ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/FusionVo.java44
-rw-r--r--ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/LoginBean.java212
-rw-r--r--ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/Lookup.java99
-rw-r--r--ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/LuCountry.java95
-rw-r--r--ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/LuState.java78
-rw-r--r--ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/LuTimeZone.java89
-rw-r--r--ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/Menu.java173
-rw-r--r--ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/MenuData.java87
-rw-r--r--ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/Profile.java110
-rw-r--r--ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/Role.java185
-rw-r--r--ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/RoleFunction.java113
-rw-r--r--ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/UrlsAccessible.java95
-rw-r--r--ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/UrlsAccessibleKey.java93
-rw-r--r--ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/User.java601
-rw-r--r--ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/UserApp.java123
-rw-r--r--ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/UserAppId.java106
-rw-r--r--ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/support/Attribute.java87
-rw-r--r--ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/support/CollaborateList.java72
-rw-r--r--ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/support/Container.java315
-rw-r--r--ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/support/Domain.java222
-rw-r--r--ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/support/DomainVo.java198
-rw-r--r--ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/support/Element.java154
-rw-r--r--ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/support/ElementDetails.java77
-rw-r--r--ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/support/FusionCommand.java54
-rw-r--r--ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/support/Layout.java955
-rw-r--r--ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/support/NameValueId.java105
-rw-r--r--ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/support/Position.java60
-rw-r--r--ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/support/Size.java60
34 files changed, 5640 insertions, 0 deletions
diff --git a/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/App.java b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/App.java
new file mode 100644
index 00000000..9735844e
--- /dev/null
+++ b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/App.java
@@ -0,0 +1,225 @@
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal SDK
+ * ===================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ *
+ * Unless otherwise specified, all software contained herein is licensed
+ * under the Apache License, Version 2.0 (the "License");
+ * you may not use this software 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.
+ *
+ * Unless otherwise specified, all documentation contained herein is licensed
+ * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
+ * you may not use this documentation except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://creativecommons.org/licenses/by/4.0/
+ *
+ * Unless required by applicable law or agreed to in writing, documentation
+ * 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.portalsdk.core.domain;
+
+import org.onap.portalsdk.core.domain.support.DomainVo;
+
+/**
+ * Represents a row in the FN_APP table in the EP_SDK database. (A nearly
+ * identical table is defined in Portal database.)
+ *
+ * @version 1.0
+ */
+public class App extends DomainVo {
+
+ private static final long serialVersionUID = 3465979916929796990L;
+
+ // superclass defines Id
+ private String name; // app_name
+ private String imageUrl; // app_image_url
+ private String description; // app_description
+ private String notes; // app_notes
+ private String url; // app_url
+ private String alternateUrl; // app_alternate_url
+ private String restEndpoint; // app_rest_endpoint
+ private String mlAppName; // ml_app_name
+ private String mlAppAdminId; // ml_app_admin_id
+ private String motsId; // mots_id
+ private String appPassword; // app_password
+ private String open;
+ private String enabled;
+ private byte[] thumbnail;
+ private String username; // app_username
+ private String uebKey; // ueb_key
+ private String uebSecret; // ueb_secret
+ private String uebTopicName; // ueb_topic_name
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getAppPassword() {
+ return appPassword;
+ }
+
+ public void setAppPassword(String appPassword) {
+ this.appPassword = appPassword;
+ }
+
+ public String getUsername() {
+ return username;
+ }
+
+ public void setUsername(String username) {
+ this.username = username;
+ }
+
+ public String getImageUrl() {
+ return imageUrl;
+ }
+
+ public void setImageUrl(String imageUrl) {
+ this.imageUrl = imageUrl;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getNotes() {
+ return notes;
+ }
+
+ public void setNotes(String notes) {
+ this.notes = notes;
+ }
+
+ public String getUrl() {
+ return url;
+ }
+
+ public void setUrl(String url) {
+ this.url = url;
+ }
+
+ public String getAlternateUrl() {
+ return alternateUrl;
+ }
+
+ public void setAlternateUrl(String alternateUrl) {
+ this.alternateUrl = alternateUrl;
+ }
+
+ public String getRestEndpoint() {
+ return restEndpoint;
+ }
+
+ public void setRestEndpoint(String restEndpoint) {
+ this.restEndpoint = restEndpoint;
+ }
+
+ public String getMlAppName() {
+ return mlAppName;
+ }
+
+ public void setMlAppName(String mlAppName) {
+ this.mlAppName = mlAppName;
+ }
+
+ public String getMlAppAdminId() {
+ return mlAppAdminId;
+ }
+
+ public void setMlAppAdminId(String mlAppAdminId) {
+ this.mlAppAdminId = mlAppAdminId;
+ }
+
+ public String getMotsId() {
+ return motsId;
+ }
+
+ public void setMotsId(String motsId) {
+ this.motsId = motsId;
+ }
+
+ public String getOpen() {
+ return open;
+ }
+
+ public void setOpen(String open) {
+ this.open = open;
+ }
+
+ public String getEnabled() {
+ return enabled;
+ }
+
+ public void setEnabled(String enabled) {
+ this.enabled = enabled;
+ }
+
+ public byte[] getThumbnail() {
+ return this.thumbnail;
+ }
+
+ public void setThumbnail(byte[] thumbnail) {
+ this.thumbnail = thumbnail;
+ }
+
+ public String getUebKey() {
+ return uebKey;
+ }
+
+ public void setUebKey(String uebKey) {
+ this.uebKey = uebKey;
+ }
+
+ public String getUebSecret() {
+ return uebSecret;
+ }
+
+ public void setUebSecret(String uebSecret) {
+ this.uebSecret = uebSecret;
+ }
+
+ public String getUebTopicName() {
+ return uebTopicName;
+ }
+
+ public void setUebTopicName(String uebTopicName) {
+ this.uebTopicName = uebTopicName;
+ }
+
+ /**
+ * Answers true if the objects have the same ID.
+ */
+ @Override
+ public int compareTo(Object obj) {
+ Long c1 = getId();
+ Long c2 = ((App) obj).getId();
+ return c1.compareTo(c2);
+ }
+}
diff --git a/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/AuditLog.java b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/AuditLog.java
new file mode 100644
index 00000000..7fd1b356
--- /dev/null
+++ b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/AuditLog.java
@@ -0,0 +1,128 @@
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal SDK
+ * ===================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ *
+ * Unless otherwise specified, all software contained herein is licensed
+ * under the Apache License, Version 2.0 (the "License");
+ * you may not use this software 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.
+ *
+ * Unless otherwise specified, all documentation contained herein is licensed
+ * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
+ * you may not use this documentation except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://creativecommons.org/licenses/by/4.0/
+ *
+ * Unless required by applicable law or agreed to in writing, documentation
+ * 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.portalsdk.core.domain;
+
+import java.util.Date;
+
+import org.onap.portalsdk.core.domain.support.DomainVo;
+
+public class AuditLog extends DomainVo {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ public static final String CD_ACTIVITY_LOGIN = "login";
+ public static final String CD_ACTIVITY_LOGOUT = "logout";
+ public static final String CD_ACTIVITY_MOBILE_LOGIN = "mobile_login";
+ public static final String CD_ACTIVITY_MOBILE_LOGOUT = "mobile_logout";
+
+ /*-------Profile activities -----------*/
+ public static final String CD_ACTIVITY_ROLE_ADD = "add_role";
+ public static final String CD_ACTIVITY_ROLE_REMOVE = "remove_role";
+ public static final String CD_ACTIVITY_CHILD_ROLE_ADD = "add_child_role";
+ public static final String CD_ACTIVITY_CHILD_ROLE_REMOVE = "remove_child_role";
+ public static final String CD_ACTIVITY_ROLE_ADD_FUNCTION = "add_role_function";
+ public static final String CD_ACTIVITY_ROLE_REMOVE_FUNCTION = "remove_role_function";
+ public static final String CD_ACTIVITY_USER_ROLE_ADD = "add_user_role";
+ public static final String CD_ACTIVITY_USER_ROLE_REMOVE = "remove_user_role";
+
+ /* Audit activities */
+ public static final String CD_ACTIVITY_FUNCTIONAL_ACCESS = "functional_access";
+ public static final String CD_ACTIVITY_TAB_ACCESS = "tab_access";
+ public static final String CD_ACTIVITY_APP_ACCESS = "app_access";
+ public static final String CD_ACTIVITY_LEFT_MENU_ACCESS = "left_menu_access";
+
+ private String activityCode;
+ private String affectedRecordId;
+ private String comments;
+ private Date auditDate;
+ private Long userId;
+
+ public AuditLog() {
+ setCreated(new Date());
+ }
+
+ public AuditLog(String activityCode, String affectedRecordId, String comments, Long userId){
+ this.activityCode = activityCode;
+ this.affectedRecordId = affectedRecordId;
+ this.comments = comments;
+ this.userId = userId;
+ setCreated(new Date());
+ }
+ public String getActivityCode() {
+ return activityCode;
+ }
+
+ public String getComments() {
+ return comments;
+ }
+
+ public String getAffectedRecordId() {
+ return affectedRecordId;
+ }
+
+ public void setActivityCode(String activityCode) {
+ this.activityCode = activityCode;
+ }
+
+ public void setComments(String comments) {
+ this.comments = comments;
+ }
+
+ public void setAffectedRecordId(String affectedRecordId) {
+ this.affectedRecordId = affectedRecordId;
+ }
+
+ public Date getAuditDate() {
+ return auditDate;
+ }
+
+ public void setAuditDate(Date auditDate) {
+ this.auditDate = auditDate;
+ }
+
+ public Long getUserId() {
+ return userId;
+ }
+
+ public void setUserId(Long userId) {
+ this.userId = userId;
+ }
+
+}
diff --git a/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/BroadcastMessage.java b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/BroadcastMessage.java
new file mode 100644
index 00000000..8dca7e0e
--- /dev/null
+++ b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/BroadcastMessage.java
@@ -0,0 +1,135 @@
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal SDK
+ * ===================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ *
+ * Unless otherwise specified, all software contained herein is licensed
+ * under the Apache License, Version 2.0 (the "License");
+ * you may not use this software 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.
+ *
+ * Unless otherwise specified, all documentation contained herein is licensed
+ * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
+ * you may not use this documentation except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://creativecommons.org/licenses/by/4.0/
+ *
+ * Unless required by applicable law or agreed to in writing, documentation
+ * 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.portalsdk.core.domain;
+
+import java.util.Date;
+
+import org.onap.portalsdk.core.domain.support.DomainVo;
+
+public class BroadcastMessage extends DomainVo {
+
+ private static final long serialVersionUID = 1L;
+
+ public static final String ID_MESSAGE_LOCATION_LOGIN = "10";
+ public static final String ID_MESSAGE_LOCATION_WELCOME = "20";
+
+ private String messageText;
+ private Integer locationId;
+ private Date startDate;
+ private Date endDate;
+ private Integer sortOrder;
+ private Boolean active;
+ private String siteCd;
+
+ public Boolean getActive() {
+ return active;
+ }
+
+ public Date getEndDate() {
+ return endDate;
+ }
+
+ public Integer getLocationId() {
+ return locationId;
+ }
+
+ public String getMessageText() {
+ return messageText;
+ }
+
+ public Integer getSortOrder() {
+ return sortOrder;
+ }
+
+ public Date getStartDate() {
+ return startDate;
+ }
+
+ public String getSiteCd() {
+ return siteCd;
+ }
+
+ public void setActive(Boolean active) {
+ this.active = active;
+ }
+
+ public void setEndDate(Date endDate) {
+ this.endDate = endDate;
+ }
+
+ public void setLocationId(Integer locationId) {
+ this.locationId = locationId;
+ }
+
+ public void setMessageText(String messageText) {
+ this.messageText = messageText;
+ }
+
+ public void setSortOrder(Integer sortOrder) {
+ this.sortOrder = sortOrder;
+ }
+
+ public void setStartDate(Date startDate) {
+ this.startDate = startDate;
+ }
+
+ public void setSiteCd(String siteCd) {
+ this.siteCd = siteCd;
+ }
+
+ @Override
+ public int compareTo(Object obj) {
+ Integer c1 = getLocationId();
+ Integer c2 = ((BroadcastMessage) obj).getLocationId();
+
+ if (c1.compareTo(c2) == 0) {
+ c1 = getSortOrder();
+ c2 = ((BroadcastMessage) obj).getSortOrder();
+
+ if (c1.compareTo(c2) == 0) {
+ Long c3 = getId();
+ Long c4 = ((BroadcastMessage) obj).getId();
+
+ return c3.compareTo(c4);
+ }
+ }
+
+ return c1.compareTo(c2);
+ }
+
+}
diff --git a/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/DomainVo.java b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/DomainVo.java
new file mode 100644
index 00000000..afdddabf
--- /dev/null
+++ b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/DomainVo.java
@@ -0,0 +1,186 @@
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal SDK
+ * ===================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ *
+ * Unless otherwise specified, all software contained herein is licensed
+ * under the Apache License, Version 2.0 (the "License");
+ * you may not use this software 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.
+ *
+ * Unless otherwise specified, all documentation contained herein is licensed
+ * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
+ * you may not use this documentation except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://creativecommons.org/licenses/by/4.0/
+ *
+ * Unless required by applicable law or agreed to in writing, documentation
+ * 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.portalsdk.core.domain;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.io.Serializable;
+import java.util.Date;
+import java.util.HashSet;
+import java.util.Set;
+
+/* Super class from which all data objects descend
+ *
+ * @deprecated per Sunder T on 3 June 2016:
+ *
+ * Yes, we need to get rid of domain.DomainVO and fold all the references to the support.DomainVO.
+ */
+@SuppressWarnings("rawtypes")
+@Deprecated
+public class DomainVo extends FusionVo implements Serializable, Cloneable, Comparable {
+
+ private static final long serialVersionUID = 1L;
+ protected Long id;
+ protected Date created;
+ protected Date modified;
+ protected Long createdId;
+ protected Long modifiedId;
+ protected Long rowNum;
+
+ protected Serializable auditUserId;
+
+ Set auditTrail = null;
+
+ public void setId(Long i) {
+ id = i;
+ }
+
+ public void setCreated(Date created) {
+ this.created = created;
+ }
+
+ public void setModified(Date modified) {
+ this.modified = modified;
+ }
+
+ public void setCreatedId(Long createdId) {
+ this.createdId = createdId;
+ }
+
+ public void setModifiedId(Long modifiedId) {
+ this.modifiedId = modifiedId;
+ }
+
+ public void setAuditUserId(Serializable auditUserId) {
+ this.auditUserId = auditUserId;
+ }
+
+ public void setRowNum(Long rowNum) {
+ this.rowNum = rowNum;
+ }
+
+ public void setAuditTrail(Set auditTrail) {
+ this.auditTrail = auditTrail;
+ }
+
+ public Long getId() {
+ return id;
+ }
+
+ public Date getCreated() {
+ return created;
+ }
+
+ public Date getModified() {
+ return modified;
+ }
+
+ public Long getCreatedId() {
+ return createdId;
+ }
+
+ public Long getModifiedId() {
+ return modifiedId;
+ }
+
+ public Serializable getAuditUserId() {
+ return auditUserId;
+ }
+
+ public Long getRowNum() {
+ return rowNum;
+ }
+
+ public Set getAuditTrail() {
+ return auditTrail;
+ }
+
+ @SuppressWarnings("unchecked")
+ public void addAuditTrailLog(AuditLog auditLog) {
+ if (getAuditTrail() == null) {
+ setAuditTrail(new HashSet());
+ }
+
+ getAuditTrail().add(auditLog);
+ }
+
+ public Object copy() {
+ return copy(false);
+ }
+
+ public Object copy(boolean isIdNull) {
+ // let's create a "copy" of the object using serialization
+ ByteArrayOutputStream baos = null;
+ ByteArrayInputStream bais = null;
+ ObjectOutputStream oos = null;
+ ObjectInputStream ois = null;
+
+ DomainVo newVo = null;
+
+ try {
+
+ baos = new ByteArrayOutputStream();
+ oos = new ObjectOutputStream(baos);
+ oos.writeObject(this);
+
+ bais = new ByteArrayInputStream(baos.toByteArray());
+ ois = new ObjectInputStream(bais);
+ newVo = (DomainVo) ois.readObject();
+
+ if (isIdNull) {
+ newVo.setId(null);
+ }
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ return newVo;
+ }
+
+ @Override
+ public int compareTo(Object obj) {
+ Long c1 = getId();
+ Long c2 = ((DomainVo) obj).getId();
+
+ return (c1 == null || c2 == null) ? 1 : c1.compareTo(c2);
+ }
+
+}
diff --git a/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/FnMenu.java b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/FnMenu.java
new file mode 100644
index 00000000..f940aa4a
--- /dev/null
+++ b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/FnMenu.java
@@ -0,0 +1,182 @@
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal SDK
+ * ===================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ *
+ * Unless otherwise specified, all software contained herein is licensed
+ * under the Apache License, Version 2.0 (the "License");
+ * you may not use this software 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.
+ *
+ * Unless otherwise specified, all documentation contained herein is licensed
+ * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
+ * you may not use this documentation except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://creativecommons.org/licenses/by/4.0/
+ *
+ * Unless required by applicable law or agreed to in writing, documentation
+ * 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.portalsdk.core.domain;
+
+/**
+ * <p>
+ * RoleFunction.java
+ * </p>
+ *
+ * <p>
+ * Represents a role function data object.
+ * </p>
+ *
+ * @version 1.0
+ */
+public class FnMenu extends DomainVo {
+
+ private static final long serialVersionUID = 1L;
+
+ private Integer menuId;
+ private String label;
+ private Integer parentId;
+ private String action;
+ private String functionCd;
+ private Integer sortOrder;
+ private String servlet;
+ private String queryString;
+ private String externalUrl;
+ private String target;
+ private String active;
+ private String separator;
+ private String imageSrc;
+ private String menuSetCode;
+
+ public Integer getMenuId() {
+ return menuId;
+ }
+
+ public void setMenuId(Integer menuId) {
+ this.menuId = menuId;
+ }
+
+ public String getLabel() {
+ return label;
+ }
+
+ public void setLabel(String label) {
+ this.label = label;
+ }
+
+ public Integer getParentId() {
+ return parentId;
+ }
+
+ public void setParentId(Integer parentId) {
+ this.parentId = parentId;
+ }
+
+ public String getAction() {
+ return action;
+ }
+
+ public void setAction(String action) {
+ this.action = action;
+ }
+
+ public String getFunctionCd() {
+ return functionCd;
+ }
+
+ public void setFunctionCd(String functionCd) {
+ this.functionCd = functionCd;
+ }
+
+ public Integer getSortOrder() {
+ return sortOrder;
+ }
+
+ public void setSortOrder(Integer sortOrder) {
+ this.sortOrder = sortOrder;
+ }
+
+ public String getServlet() {
+ return servlet;
+ }
+
+ public void setServlet(String servlet) {
+ this.servlet = servlet;
+ }
+
+ public String getQueryString() {
+ return queryString;
+ }
+
+ public void setQueryString(String queryString) {
+ this.queryString = queryString;
+ }
+
+ public String getExternalUrl() {
+ return externalUrl;
+ }
+
+ public void setExternalUrl(String externalUrl) {
+ this.externalUrl = externalUrl;
+ }
+
+ public String getTarget() {
+ return target;
+ }
+
+ public void setTarget(String target) {
+ this.target = target;
+ }
+
+ public String getActive() {
+ return active;
+ }
+
+ public void setActive(String active) {
+ this.active = active;
+ }
+
+ public String getSeparator() {
+ return separator;
+ }
+
+ public void setSeparator(String separator) {
+ this.separator = separator;
+ }
+
+ public String getImageSrc() {
+ return imageSrc;
+ }
+
+ public void setImageSrc(String imageSrc) {
+ this.imageSrc = imageSrc;
+ }
+
+ public String getMenuSetCode() {
+ return menuSetCode;
+ }
+
+ public void setMenuSetCode(String menuSetCode) {
+ this.menuSetCode = menuSetCode;
+ }
+
+}
diff --git a/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/FusionObject.java b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/FusionObject.java
new file mode 100644
index 00000000..820bc180
--- /dev/null
+++ b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/FusionObject.java
@@ -0,0 +1,122 @@
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal SDK
+ * ===================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ *
+ * Unless otherwise specified, all software contained herein is licensed
+ * under the Apache License, Version 2.0 (the "License");
+ * you may not use this software 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.
+ *
+ * Unless otherwise specified, all documentation contained herein is licensed
+ * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
+ * you may not use this documentation except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://creativecommons.org/licenses/by/4.0/
+ *
+ * Unless required by applicable law or agreed to in writing, documentation
+ * 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.portalsdk.core.domain;
+
+/**
+ * <p>
+ * Title: FusionObject
+ * </p>
+ *
+ * <p>
+ * Description: This interface is implemented by all top-level support classes
+ * of each package in FUSION. This allows all top-level support classes to have
+ * some commonality for easier maintenance.
+ * </p>
+ */
+public interface FusionObject {
+
+ /**
+ * Inner class provides static constants to any class that implements the
+ * interface.
+ */
+ public class Parameters {
+
+ private Parameters() {
+ // Static content only
+ }
+
+ // HashMap parameters passed to the Service and Dao tiers
+ public static final String PARAM_USERID = "userId";
+ public static final String PARAM_HTTP_REQUEST = "request";
+ public static final String PARAM_FILTERS = "filters";
+ public static final String PARAM_CLIENT_DEVICE = "client_device";
+ // Request parameters passed in the Web tier
+ public static final String REQUEST_PARAM_DISPLAY_SUCCESS_MESSAGE = "display_success_message";
+ }
+
+ /**
+ * Inner class provides static utility functions to any class that implements
+ * the interface.
+ */
+ public class Utilities {
+
+ private Utilities() {
+ // Static content only
+ }
+
+ /**
+ * nvl - replaces a string value with an empty string if null.
+ *
+ * @param s
+ * String - the string value that needs to be checked
+ * @return String - returns the original string value if not null. Otherwise an
+ * empty string ("") is returned.
+ */
+ public static String nvl(String s) {
+ return s == null ? "" : s;
+ }
+
+ /**
+ * nvl - replaces a string value with a default value if null or empty.
+ *
+ * @param s
+ * String - the string value that needs to be checked
+ * @param sDefault
+ * String - the default value
+ * @return String - returns the original string value if not null nor empty.
+ * Otherwise the default value is returned.
+ */
+ public static String nvl(String s, String sDefault) {
+ return "".equals(nvl(s)) ? sDefault : s;
+ }
+
+ /**
+ * Tests the specified string for nullity.
+ *
+ * @param a
+ * String to test for nullity.
+ * @return True if the specified string is null, empty or the 4-character
+ * sequence "null" (ignoring case); otherwise false.
+ */
+ public static boolean isNull(String a) {
+ return a == null || a.length() == 0 || a.equalsIgnoreCase("null");
+ }
+
+ }
+
+}
diff --git a/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/FusionVo.java b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/FusionVo.java
new file mode 100644
index 00000000..21bf5151
--- /dev/null
+++ b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/FusionVo.java
@@ -0,0 +1,44 @@
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal SDK
+ * ===================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ *
+ * Unless otherwise specified, all software contained herein is licensed
+ * under the Apache License, Version 2.0 (the "License");
+ * you may not use this software 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.
+ *
+ * Unless otherwise specified, all documentation contained herein is licensed
+ * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
+ * you may not use this documentation except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://creativecommons.org/licenses/by/4.0/
+ *
+ * Unless required by applicable law or agreed to in writing, documentation
+ * 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.portalsdk.core.domain;
+
+public class FusionVo implements FusionObject {
+ public FusionVo() {
+ // No-argument constructor
+ }
+}
diff --git a/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/LoginBean.java b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/LoginBean.java
new file mode 100644
index 00000000..4ff4e484
--- /dev/null
+++ b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/LoginBean.java
@@ -0,0 +1,212 @@
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal SDK
+ * ===================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ *
+ * Unless otherwise specified, all software contained herein is licensed
+ * under the Apache License, Version 2.0 (the "License");
+ * you may not use this software 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.
+ *
+ * Unless otherwise specified, all documentation contained herein is licensed
+ * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
+ * you may not use this documentation except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://creativecommons.org/licenses/by/4.0/
+ *
+ * Unless required by applicable law or agreed to in writing, documentation
+ * 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.portalsdk.core.domain;
+
+import java.util.Set;
+
+import org.onap.portalsdk.core.domain.support.FusionCommand;
+
+@SuppressWarnings("rawtypes")
+public class LoginBean extends FusionCommand {
+
+ private String loginId;
+ private String loginPwd;
+ private String hrid;
+ private String orgUserId;
+ private String siteAccess;
+ private String loginErrorMessage;
+
+ private User user;
+ private Set menu;
+ private Set businessDirectMenu;
+
+ /**
+ * getLoginId
+ *
+ * @return String
+ */
+ public String getLoginId() {
+ return loginId;
+ }
+
+ /**
+ * getLoginPwd
+ *
+ * @return String
+ */
+ public String getLoginPwd() {
+ return loginPwd;
+ }
+
+ /**
+ * getMenu
+ *
+ * @return Set
+ */
+ public Set getMenu() {
+ return menu;
+ }
+
+ /**
+ * getUser
+ *
+ * @return User
+ */
+ public User getUser() {
+ return user;
+ }
+
+ /**
+ * getHrid
+ *
+ * @return String
+ */
+ public String getHrid() {
+ return hrid;
+ }
+
+ /**
+ * getSiteAccess
+ *
+ * @return String
+ */
+ public String getSiteAccess() {
+ return siteAccess;
+ }
+
+ /**
+ * getBusinessDirectMenu
+ *
+ * @return Set
+ */
+ public Set getBusinessDirectMenu() {
+ return businessDirectMenu;
+ }
+
+ /**
+ * getLoginErrorMessage
+ *
+ * @return String
+ */
+ public String getLoginErrorMessage() {
+ return loginErrorMessage;
+ }
+
+ public String getOrgUserId() {
+ return orgUserId;
+ }
+
+ /**
+ * setLoginId
+ *
+ * @param loginId
+ * String
+ */
+ public void setLoginId(String loginId) {
+ this.loginId = loginId;
+ }
+
+ /**
+ * setLoginPwd
+ *
+ * @param loginPwd
+ * String
+ */
+ public void setLoginPwd(String loginPwd) {
+ this.loginPwd = loginPwd;
+ }
+
+ public void setMenu(Set menu) {
+ this.menu = menu;
+ }
+
+ /**
+ * setUser
+ *
+ * @param user
+ * User
+ */
+ public void setUser(User user) {
+ this.user = user;
+ }
+
+ /**
+ * setHrid
+ *
+ * @param hrid
+ * String
+ */
+ public void setHrid(String hrid) {
+ this.hrid = hrid;
+ }
+
+ /**
+ * setSiteAccess
+ *
+ * @param siteAccess
+ * String
+ */
+ public void setSiteAccess(String siteAccess) {
+ this.siteAccess = siteAccess;
+ }
+
+ /**
+ * setBusinessDirectMenu
+ *
+ * @param businessDirectMenu
+ * Set
+ */
+ public void setBusinessDirectMenu(Set businessDirectMenu) {
+ this.businessDirectMenu = businessDirectMenu;
+ }
+
+ /**
+ * setLoginErrorMessage
+ *
+ * @param loginErrorMessage
+ * String
+ */
+ public void setLoginErrorMessage(String loginErrorMessage) {
+ this.loginErrorMessage = loginErrorMessage;
+ }
+
+ public void setOrgUserId(String orgUserId) {
+ this.orgUserId = orgUserId;
+ }
+
+}
diff --git a/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/Lookup.java b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/Lookup.java
new file mode 100644
index 00000000..de324c75
--- /dev/null
+++ b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/Lookup.java
@@ -0,0 +1,99 @@
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal SDK
+ * ===================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ *
+ * Unless otherwise specified, all software contained herein is licensed
+ * under the Apache License, Version 2.0 (the "License");
+ * you may not use this software 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.
+ *
+ * Unless otherwise specified, all documentation contained herein is licensed
+ * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
+ * you may not use this documentation except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://creativecommons.org/licenses/by/4.0/
+ *
+ * Unless required by applicable law or agreed to in writing, documentation
+ * 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.portalsdk.core.domain;
+
+import java.io.Serializable;
+import java.util.Objects;
+
+import org.onap.portalsdk.core.domain.support.NameValueId;
+
+public class Lookup extends FusionVo implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+ private NameValueId nameValueId = new NameValueId();
+
+ public Lookup() {
+ super();
+ }
+
+ public Lookup(String label, String value) {
+ this();
+ setLabel(label);
+ setValue(value);
+ }
+
+ public String getValue() {
+ return getNameValueId().getVal();
+ }
+
+ public String getLabel() {
+ return getNameValueId().getLab();
+ }
+
+ public void setValue(String value) {
+ getNameValueId().setVal(value);
+ }
+
+ public void setLabel(String label) {
+ getNameValueId().setLab(label);
+ }
+
+ public NameValueId getNameValueId() {
+ return nameValueId;
+ }
+
+ public void setNameValueId(NameValueId nameValueId) {
+ this.nameValueId = nameValueId;
+ }
+
+ // required by ZK for to set the selectedItems of Listboxes (used heavily for
+ // <select>-style drop-downs)
+ @Override
+ public int hashCode() {
+ return Objects.hash(getValue(), getLabel());
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == null || !(obj instanceof Lookup))
+ return false;
+ Lookup lookup = (Lookup) obj;
+ return Objects.equals(lookup.getValue(), getValue()) && Objects.equals(lookup.getLabel(), getLabel());
+ }
+
+}
diff --git a/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/LuCountry.java b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/LuCountry.java
new file mode 100644
index 00000000..0f7ab654
--- /dev/null
+++ b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/LuCountry.java
@@ -0,0 +1,95 @@
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal SDK
+ * ===================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ *
+ * Unless otherwise specified, all software contained herein is licensed
+ * under the Apache License, Version 2.0 (the "License");
+ * you may not use this software 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.
+ *
+ * Unless otherwise specified, all documentation contained herein is licensed
+ * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
+ * you may not use this documentation except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://creativecommons.org/licenses/by/4.0/
+ *
+ * Unless required by applicable law or agreed to in writing, documentation
+ * 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.portalsdk.core.domain;
+
+/**
+ *
+ * <p>
+ * Represents a country data object.
+ * </p>
+ *
+ * @version 1.0
+ */
+public class LuCountry extends DomainVo {
+
+ private static final long serialVersionUID = 1L;
+ private String abbr;
+ private String country;
+ private String fullName;
+ private String webphoneCountryLabel;
+
+ public String getCountry() {
+ return country;
+ }
+
+ public String getAbbr() {
+ return abbr;
+ }
+
+ public void setCountry(String country) {
+ this.country = country;
+ }
+
+ public void setAbbr(String abbr) {
+ this.abbr = abbr;
+ }
+
+ public String getFullName() {
+ return fullName;
+ }
+
+ public void setFullName(String fullName) {
+ this.fullName = fullName;
+ }
+
+ public String getWebphoneCountryLabel() {
+ return webphoneCountryLabel;
+ }
+
+ public void setWebphoneCountryLabel(String webphoneCountryLabel) {
+ this.webphoneCountryLabel = webphoneCountryLabel;
+ }
+
+ @Override
+ public int compareTo(Object obj) {
+ String c1 = getCountry();
+ String c2 = ((LuCountry) obj).getCountry();
+ return c1.compareTo(c2);
+ }
+
+}
diff --git a/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/LuState.java b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/LuState.java
new file mode 100644
index 00000000..75a233be
--- /dev/null
+++ b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/LuState.java
@@ -0,0 +1,78 @@
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal SDK
+ * ===================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ *
+ * Unless otherwise specified, all software contained herein is licensed
+ * under the Apache License, Version 2.0 (the "License");
+ * you may not use this software 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.
+ *
+ * Unless otherwise specified, all documentation contained herein is licensed
+ * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
+ * you may not use this documentation except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://creativecommons.org/licenses/by/4.0/
+ *
+ * Unless required by applicable law or agreed to in writing, documentation
+ * 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.portalsdk.core.domain;
+
+/**
+ * <p>
+ * Represents a state data object.
+ * </p>
+ *
+ * @version 1.0
+ */
+public class LuState extends DomainVo {
+
+ private static final long serialVersionUID = 1L;
+
+ private String abbr;
+ private String state;
+
+ public String getState() {
+ return state;
+ }
+
+ public String getAbbr() {
+ return abbr;
+ }
+
+ public void setState(String state) {
+ this.state = state;
+ }
+
+ public void setAbbr(String abbr) {
+ this.abbr = abbr;
+ }
+
+ @Override
+ public int compareTo(Object obj) {
+ String c1 = getState();
+ String c2 = ((LuState) obj).getState();
+
+ return c1.compareTo(c2);
+ }
+
+}
diff --git a/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/LuTimeZone.java b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/LuTimeZone.java
new file mode 100644
index 00000000..addbed67
--- /dev/null
+++ b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/LuTimeZone.java
@@ -0,0 +1,89 @@
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal SDK
+ * ===================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ *
+ * Unless otherwise specified, all software contained herein is licensed
+ * under the Apache License, Version 2.0 (the "License");
+ * you may not use this software 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.
+ *
+ * Unless otherwise specified, all documentation contained herein is licensed
+ * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
+ * you may not use this documentation except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://creativecommons.org/licenses/by/4.0/
+ *
+ * Unless required by applicable law or agreed to in writing, documentation
+ * 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.portalsdk.core.domain;
+
+/**
+ * <p>
+ * LuTimeZone.java
+ * </p>
+ *
+ * <p>
+ * Represents a LuTimeZone data object.
+ * </p>
+ *
+ * @version 1.0
+ */
+public class LuTimeZone extends DomainVo {
+
+ private static final long serialVersionUID = 1L;
+ private String name;
+ private Long timezoneId;
+ private String value;
+
+ public String getName() {
+ return name;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+ public Long getTimezoneId() {
+ return timezoneId;
+ }
+
+ public void setTimezoneId(Long timezoneId) {
+ this.timezoneId = timezoneId;
+ }
+
+ @Override
+ public int compareTo(Object obj) {
+ Long c1 = getId();
+ Long c2 = ((LuTimeZone) obj).getId();
+ return c1.compareTo(c2);
+ }
+
+}
diff --git a/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/Menu.java b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/Menu.java
new file mode 100644
index 00000000..11a93b3e
--- /dev/null
+++ b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/Menu.java
@@ -0,0 +1,173 @@
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal SDK
+ * ===================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ *
+ * Unless otherwise specified, all software contained herein is licensed
+ * under the Apache License, Version 2.0 (the "License");
+ * you may not use this software 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.
+ *
+ * Unless otherwise specified, all documentation contained herein is licensed
+ * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
+ * you may not use this documentation except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://creativecommons.org/licenses/by/4.0/
+ *
+ * Unless required by applicable law or agreed to in writing, documentation
+ * 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.portalsdk.core.domain;
+
+import org.onap.portalsdk.core.domain.support.DomainVo;
+
+public class Menu extends DomainVo {
+
+ private static final long serialVersionUID = 1L;
+
+ private String menuLevel;
+ private String label;
+ private Long parentId;
+ private String action;
+ private String functionCd;
+ private Short sortOrder;
+ private String servlet;
+ private String queryString;
+ private String externalUrl;
+ private String target;
+ private boolean active;
+ private String menuSetCode;
+ private boolean separator;
+ private String imageSrc;
+
+ public String getAction() {
+ return action;
+ }
+
+ public boolean isActive() {
+ return active;
+ }
+
+ public String getExternalUrl() {
+ return externalUrl;
+ }
+
+ public String getFunctionCd() {
+ return functionCd;
+ }
+
+ public String getLabel() {
+ return label;
+ }
+
+ public String getMenuLevel() {
+ return menuLevel;
+ }
+
+ public Long getParentId() {
+ return parentId;
+ }
+
+ public String getQueryString() {
+ return queryString;
+ }
+
+ public String getServlet() {
+ return servlet;
+ }
+
+ public Short getSortOrder() {
+ return sortOrder;
+ }
+
+ public String getTarget() {
+ return target;
+ }
+
+ public String getMenuSetCode() {
+ return menuSetCode;
+ }
+
+ public void setAction(String action) {
+ this.action = action;
+ }
+
+ public void setActive(boolean active) {
+ this.active = active;
+ }
+
+ public void setExternalUrl(String externalUrl) {
+ this.externalUrl = externalUrl;
+ }
+
+ public void setFunctionCd(String functionCd) {
+ this.functionCd = functionCd;
+ }
+
+ public void setLabel(String label) {
+ this.label = label;
+ }
+
+ public void setMenuLevel(String menuLevel) {
+ this.menuLevel = menuLevel;
+ }
+
+ public void setParentId(Long parentId) {
+ this.parentId = parentId;
+ }
+
+ public void setQueryString(String queryString) {
+ this.queryString = queryString;
+ }
+
+ public void setServlet(String servlet) {
+ this.servlet = servlet;
+ }
+
+ public void setSortOrder(Short sortOrder) {
+ this.sortOrder = sortOrder;
+ }
+
+ public void setTarget(String target) {
+ this.target = target;
+ }
+
+ public void setMenuSetCode(String menuSetCode) {
+ this.menuSetCode = menuSetCode;
+ }
+
+ public boolean isSeparator() {
+ return separator;
+ }
+
+ public void setSeparator(boolean separator) {
+ this.separator = separator;
+ }
+
+ public String getImageSrc() {
+ return imageSrc;
+ }
+
+ public void setImageSrc(String imageSrc) {
+ this.imageSrc = imageSrc;
+ }
+
+}
diff --git a/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/MenuData.java b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/MenuData.java
new file mode 100644
index 00000000..09f9ff41
--- /dev/null
+++ b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/MenuData.java
@@ -0,0 +1,87 @@
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal SDK
+ * ===================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ *
+ * Unless otherwise specified, all software contained herein is licensed
+ * under the Apache License, Version 2.0 (the "License");
+ * you may not use this software 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.
+ *
+ * Unless otherwise specified, all documentation contained herein is licensed
+ * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
+ * you may not use this documentation except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://creativecommons.org/licenses/by/4.0/
+ *
+ * Unless required by applicable law or agreed to in writing, documentation
+ * 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.portalsdk.core.domain;
+
+import java.util.Set;
+import java.util.TreeSet;
+
+public class MenuData extends Menu {
+
+ private static final long serialVersionUID = 1L;
+ private MenuData parentMenu;
+ private Set childMenus = new TreeSet();
+
+ public MenuData() {
+ }
+
+ public Set getChildMenus() {
+ return childMenus;
+ }
+
+ public void setChildMenus(Set childMenus) {
+ this.childMenus = childMenus;
+ }
+
+ public MenuData getParentMenu() {
+ return parentMenu;
+ }
+
+ public void setParentMenu(MenuData parentMenu) {
+ this.parentMenu = parentMenu;
+ }
+
+ public String getActiveAsString() {
+ return String.valueOf(isActive());
+ }
+
+ public String getParentIdAsString() {
+ return String.valueOf(getParentId());
+ }
+
+ public String getSeparatorAsString() {
+ return String.valueOf(isSeparator());
+ }
+
+ @Override
+ public int compareTo(Object obj) {
+ Short c1 = getSortOrder();
+ Short c2 = ((MenuData) obj).getSortOrder();
+ return (c1 == null || c2 == null) ? 1 : ((c1.compareTo(c2) == 0) ? 1 : c1.compareTo(c2));
+ }
+
+}
diff --git a/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/Profile.java b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/Profile.java
new file mode 100644
index 00000000..20200ce8
--- /dev/null
+++ b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/Profile.java
@@ -0,0 +1,110 @@
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal SDK
+ * ===================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ *
+ * Unless otherwise specified, all software contained herein is licensed
+ * under the Apache License, Version 2.0 (the "License");
+ * you may not use this software 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.
+ *
+ * Unless otherwise specified, all documentation contained herein is licensed
+ * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
+ * you may not use this documentation except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://creativecommons.org/licenses/by/4.0/
+ *
+ * Unless required by applicable law or agreed to in writing, documentation
+ * 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.portalsdk.core.domain;
+
+public class Profile extends DomainVo {
+
+ private static final long serialVersionUID = 3409056457412656883L;
+
+ private Long id;
+ private String first_name;
+ private String last_name;
+ private String email;
+ private String orgManagerUserId;
+ private String active_yn;
+ private String orgUserId;
+
+ @Override
+ public Long getId() {
+ return id;
+ }
+
+ @Override
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getFirst_name() {
+ return first_name;
+ }
+
+ public void setFirst_name(String first_name) {
+ this.first_name = first_name;
+ }
+
+ public String getLast_name() {
+ return last_name;
+ }
+
+ public void setLast_name(String last_name) {
+ this.last_name = last_name;
+ }
+
+ public String getEmail() {
+ return email;
+ }
+
+ public void setEmail(String email) {
+ this.email = email;
+ }
+
+ public String getOrgManagerUserId() {
+ return orgManagerUserId;
+ }
+
+ public void setOrgManagerUserId(String orgManagerUserId) {
+ this.orgManagerUserId = orgManagerUserId;
+ }
+
+ public String getActive_yn() {
+ return active_yn;
+ }
+
+ public void setActive_yn(String active_yn) {
+ this.active_yn = active_yn;
+ }
+
+ public String getOrgUserId() {
+ return orgUserId;
+ }
+
+ public void setOrgUserId(String orgUserId) {
+ this.orgUserId = orgUserId;
+ }
+
+}
diff --git a/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/Role.java b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/Role.java
new file mode 100644
index 00000000..dee82c9e
--- /dev/null
+++ b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/Role.java
@@ -0,0 +1,185 @@
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal SDK
+ * ===================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ *
+ * Unless otherwise specified, all software contained herein is licensed
+ * under the Apache License, Version 2.0 (the "License");
+ * you may not use this software 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.
+ *
+ * Unless otherwise specified, all documentation contained herein is licensed
+ * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
+ * you may not use this documentation except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://creativecommons.org/licenses/by/4.0/
+ *
+ * Unless required by applicable law or agreed to in writing, documentation
+ * 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.portalsdk.core.domain;
+
+import java.util.Iterator;
+import java.util.Set;
+import java.util.TreeSet;
+
+import org.onap.portalsdk.core.domain.support.DomainVo;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+
+/**
+ * <p>
+ * Role.java
+ * </p>
+ * <p>
+ * Represents a role data object.
+ * </p>
+ *
+ * @version 1.0
+ */
+public class Role extends DomainVo {
+
+ private static final long serialVersionUID = 1L;
+ private String name;
+ private boolean active;
+ private Integer priority;
+
+ private Set roleFunctions = new TreeSet();
+ private Set childRoles = new TreeSet();
+ @JsonIgnore
+ private Set parentRoles = new TreeSet();
+
+ public String getName() {
+ return name;
+ }
+
+ public boolean getActive() {
+ return active;
+ }
+
+ public Set getRoleFunctions() {
+ return roleFunctions;
+ }
+
+ public Integer getPriority() {
+ return priority;
+ }
+
+ public Set getChildRoles() {
+ return childRoles;
+ }
+
+ public Set getParentRoles() {
+ return parentRoles;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public void setActive(boolean active) {
+ this.active = active;
+ }
+
+ public void setRoleFunctions(Set roleFunctions) {
+ this.roleFunctions = roleFunctions;
+ }
+
+ public void setPriority(Integer priority) {
+ this.priority = priority;
+ }
+
+ public void setChildRoles(Set childRoles) {
+ this.childRoles = childRoles;
+ }
+
+ public void setParentRoles(Set parentRoles) {
+ this.parentRoles = parentRoles;
+ }
+
+ @SuppressWarnings("unchecked")
+ public void addRoleFunction(RoleFunction roleFunction) {
+ this.roleFunctions.add(roleFunction);
+ }
+
+ @SuppressWarnings("unchecked")
+ public void addChildRole(Role role) {
+ this.childRoles.add(role);
+ }
+
+ @SuppressWarnings("unchecked")
+ public void addParentRole(Role role) {
+ this.parentRoles.add(role);
+ }
+
+ public String getEditUrl() {
+ return "/role.htm?role_id=" + getId();
+ }
+
+ public String getToggleActiveImage() {
+ return "/static/fusion/images/" + (getActive() ? "active.png" : "inactive.png");
+ }
+
+ public String getToggleActiveAltText() {
+ return getActive() ? "Click to Deactivate Role" : "Click to Activate Role";
+ }
+
+ public void removeChildRole(Long roleId) {
+ Iterator i = this.childRoles.iterator();
+ while (i.hasNext()) {
+ Role childRole = (Role) i.next();
+ if (childRole.getId().equals(roleId)) {
+ this.childRoles.remove(childRole);
+ break;
+ }
+ }
+ }
+
+ public void removeParentRole(Long roleId) {
+ Iterator i = this.parentRoles.iterator();
+ while (i.hasNext()) {
+ Role parentRole = (Role) i.next();
+ if (parentRole.getId().equals(roleId)) {
+ this.parentRoles.remove(parentRole);
+ break;
+ }
+ }
+ }
+
+ public void removeRoleFunction(String roleFunctionCd) {
+ Iterator i = this.roleFunctions.iterator();
+ while (i.hasNext()) {
+ RoleFunction roleFunction = (RoleFunction) i.next();
+ if (roleFunction.getCode().equals(roleFunctionCd)) {
+ this.roleFunctions.remove(roleFunction);
+ break;
+ }
+ }
+ }
+
+ @Override
+ public int compareTo(Object obj) {
+ String c1 = getName();
+ String c2 = ((Role) obj).getName();
+ return (c1 == null || c2 == null) ? 1 : c1.compareTo(c2);
+ }
+
+}
diff --git a/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/RoleFunction.java b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/RoleFunction.java
new file mode 100644
index 00000000..98da488f
--- /dev/null
+++ b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/RoleFunction.java
@@ -0,0 +1,113 @@
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal SDK
+ * ===================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ *
+ * Unless otherwise specified, all software contained herein is licensed
+ * under the Apache License, Version 2.0 (the "License");
+ * you may not use this software 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.
+ *
+ * Unless otherwise specified, all documentation contained herein is licensed
+ * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
+ * you may not use this documentation except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://creativecommons.org/licenses/by/4.0/
+ *
+ * Unless required by applicable law or agreed to in writing, documentation
+ * 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.portalsdk.core.domain;
+
+import org.onap.portalsdk.core.domain.support.DomainVo;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+
+/**
+ * <p>
+ * RoleFunction.java
+ * </p>
+ *
+ * <p>
+ * Represents a role function data object.
+ * </p>
+ *
+ * @version 1.0
+ */
+public class RoleFunction extends DomainVo {
+
+ private static final long serialVersionUID = 1L;
+ private String code;
+ private String name;
+ private String type;
+ private String action;
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public String getAction() {
+ return action;
+ }
+
+ public void setAction(String action) {
+ this.action = action;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+ @JsonIgnore
+ public String getEditUrl() {
+ return "/role_function.htm?role_function_id=" + getCode();
+ }
+
+ @Override
+ public int compareTo(Object obj) {
+ String c1 = getName();
+ String c2 = ((RoleFunction) obj).getName();
+ return (c1 == null || c2 == null) ? 1 : c1.compareTo(c2);
+ }
+
+ @Override
+ public String toString() {
+ return "RoleFunction [code=" + code + ", name=" + name + ", type=" + type + ", action=" + action + "]";
+ }
+
+
+}
diff --git a/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/UrlsAccessible.java b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/UrlsAccessible.java
new file mode 100644
index 00000000..ba9e4654
--- /dev/null
+++ b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/UrlsAccessible.java
@@ -0,0 +1,95 @@
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal SDK
+ * ===================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ *
+ * Unless otherwise specified, all software contained herein is licensed
+ * under the Apache License, Version 2.0 (the "License");
+ * you may not use this software 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.
+ *
+ * Unless otherwise specified, all documentation contained herein is licensed
+ * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
+ * you may not use this documentation except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://creativecommons.org/licenses/by/4.0/
+ *
+ * Unless required by applicable law or agreed to in writing, documentation
+ * 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.portalsdk.core.domain;
+
+import java.io.Serializable;
+import java.util.Objects;
+
+public class UrlsAccessible extends FusionVo implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+ private UrlsAccessibleKey urlsAccessibleKey = new UrlsAccessibleKey();
+
+ public UrlsAccessible() {
+ super();
+ }
+
+ public UrlsAccessible(String url, String functionCd) {
+ this();
+ setUrl(url);
+ setFunctionCd(functionCd);
+ }
+
+ public String getUrl() {
+ return getUrlsAccessibleKey().getUrl();
+ }
+
+ public String getFunctionCd() {
+ return getUrlsAccessibleKey().getFunctionCd();
+ }
+
+ public void setUrl(String url) {
+ getUrlsAccessibleKey().setUrl(url);
+ }
+
+ public void setFunctionCd(String functionCd) {
+ getUrlsAccessibleKey().setFunctionCd(functionCd);
+ }
+
+ public UrlsAccessibleKey getUrlsAccessibleKey() {
+ return urlsAccessibleKey;
+ }
+
+ public void setUrlsAccessibleKey(UrlsAccessibleKey urlsAccessibleKey) {
+ this.urlsAccessibleKey = urlsAccessibleKey;
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(getUrl(), getFunctionCd());
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == null || !(obj instanceof UrlsAccessible))
+ return false;
+ UrlsAccessible ua = (UrlsAccessible) obj;
+ return Objects.equals(ua.getUrl(), getUrl()) && Objects.equals(ua.getFunctionCd(), getFunctionCd());
+ }
+
+}
diff --git a/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/UrlsAccessibleKey.java b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/UrlsAccessibleKey.java
new file mode 100644
index 00000000..ade754fd
--- /dev/null
+++ b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/UrlsAccessibleKey.java
@@ -0,0 +1,93 @@
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal SDK
+ * ===================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ *
+ * Unless otherwise specified, all software contained herein is licensed
+ * under the Apache License, Version 2.0 (the "License");
+ * you may not use this software 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.
+ *
+ * Unless otherwise specified, all documentation contained herein is licensed
+ * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
+ * you may not use this documentation except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://creativecommons.org/licenses/by/4.0/
+ *
+ * Unless required by applicable law or agreed to in writing, documentation
+ * 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.portalsdk.core.domain;
+
+import java.io.Serializable;
+
+public class UrlsAccessibleKey implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+ private String url;
+ private String functionCd;
+
+ public UrlsAccessibleKey() {
+ super();
+ }
+
+ public UrlsAccessibleKey(String url, String functionCd) {
+ setUrl(url);
+ setFunctionCd(functionCd);
+ }
+
+ public String getUrl() {
+ return url;
+ }
+
+ public String getFunctionCd() {
+ return functionCd;
+ }
+
+ public void setUrl(String url) {
+ this.url = url;
+ }
+
+ public void setFunctionCd(String functionCd) {
+ this.functionCd = functionCd;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o)
+ return true;
+ if (o == null)
+ return false;
+ if (!(o instanceof UrlsAccessibleKey))
+ return false;
+ final UrlsAccessibleKey key = (UrlsAccessibleKey) o;
+ if (getFunctionCd().equals(key.getFunctionCd()) && getUrl().equals(key.getUrl()))
+ return true;
+
+ return false;
+ }
+
+ @Override
+ public int hashCode() {
+ return getUrl().hashCode() + getFunctionCd().hashCode();
+ }
+
+}
diff --git a/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/User.java b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/User.java
new file mode 100644
index 00000000..3fb5e205
--- /dev/null
+++ b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/User.java
@@ -0,0 +1,601 @@
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal SDK
+ * ===================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ *
+ * Unless otherwise specified, all software contained herein is licensed
+ * under the Apache License, Version 2.0 (the "License");
+ * you may not use this software 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.
+ *
+ * Unless otherwise specified, all documentation contained herein is licensed
+ * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
+ * you may not use this documentation except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://creativecommons.org/licenses/by/4.0/
+ *
+ * Unless required by applicable law or agreed to in writing, documentation
+ * 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.portalsdk.core.domain;
+
+import java.util.Date;
+import java.util.Iterator;
+import java.util.Set;
+import java.util.SortedSet;
+import java.util.TreeSet;
+
+import org.onap.portalsdk.core.domain.support.DomainVo;
+
+/**
+ * <p>
+ * User.java
+ * </p>
+ *
+ * <p>
+ * Represents a user data object.
+ * </p>
+ *
+ * @version 1.0
+ */
+public class User extends DomainVo {
+
+ private static final long serialVersionUID = 1L;
+ private Long orgId;
+ private Long managerId;
+ private String firstName;
+ private String middleInitial;
+ private String lastName;
+ private String phone;
+ private String fax;
+ private String cellular;
+ private String email;
+ private Long addressId;
+ private String alertMethodCd;
+ private String hrid;
+ private String orgUserId;
+ private String orgCode;
+ private String address1;
+ private String address2;
+ private String city;
+ private String state;
+ private String zipCode;
+ private String country;
+ private String orgManagerUserId;
+ private String locationClli;
+ private String businessCountryCode;
+ private String businessCountryName;
+ private String businessUnit;
+ private String businessUnitName;
+ private String department;
+ private String departmentName;
+ private String companyCode;
+ private String company;
+ private String zipCodeSuffix;
+ private String jobTitle;
+ private String commandChain;
+ private String siloStatus;
+ private String costCenter;
+ private String financialLocCode;
+
+ private String loginId;
+ private String loginPwd;
+ private Date lastLoginDate;
+ private boolean active;
+ private boolean internal;
+ private Long selectedProfileId;
+ private Long timeZoneId;
+ private boolean online;
+ private String chatId;
+
+ private Set userApps = new TreeSet();
+
+ private Set pseudoRoles = new TreeSet();
+
+ public Long getAddressId() {
+ return addressId;
+ }
+
+ public String getAlertMethodCd() {
+ return alertMethodCd;
+ }
+
+ public String getCellular() {
+ return cellular;
+ }
+
+ public String getEmail() {
+ return email;
+ }
+
+ public String getFax() {
+ return fax;
+ }
+
+ public String getFirstName() {
+ return firstName;
+ }
+
+ public String getHrid() {
+ return hrid;
+ }
+
+ public Date getLastLoginDate() {
+ return lastLoginDate;
+ }
+
+ public String getLastName() {
+ return lastName;
+ }
+
+ public String getFullName() {
+ return getFirstName() + " " + getLastName();
+ }
+
+ public String getLoginId() {
+ return loginId;
+ }
+
+ public String getLoginPwd() {
+ return loginPwd;
+ }
+
+ public Long getManagerId() {
+ return managerId;
+ }
+
+ public String getMiddleInitial() {
+ return middleInitial;
+ }
+
+ public String getOrgCode() {
+ return orgCode;
+ }
+
+ public Long getOrgId() {
+ return orgId;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public String getOrgUserId() {
+ return orgUserId;
+ }
+
+ public boolean getActive() {
+ return active;
+ }
+
+ public boolean getInternal() {
+ return internal;
+ }
+
+ public String getAddress1() {
+ return address1;
+ }
+
+ public String getAddress2() {
+ return address2;
+ }
+
+ public String getCity() {
+ return city;
+ }
+
+ public String getCountry() {
+ return country;
+ }
+
+ public String getState() {
+ return state;
+ }
+
+ public String getZipCode() {
+ return zipCode;
+ }
+
+ public String getBusinessCountryCode() {
+ return businessCountryCode;
+ }
+
+ public String getCommandChain() {
+ return commandChain;
+ }
+
+ public String getCompany() {
+ return company;
+ }
+
+ public String getCompanyCode() {
+ return companyCode;
+ }
+
+ public String getDepartment() {
+ return department;
+ }
+
+ public String getJobTitle() {
+ return jobTitle;
+ }
+
+ public String getLocationClli() {
+ return locationClli;
+ }
+
+ public String getOrgManagerUserId() {
+ return orgManagerUserId;
+ }
+
+ public String getZipCodeSuffix() {
+ return zipCodeSuffix;
+ }
+
+ public String getBusinessCountryName() {
+ return businessCountryName;
+ }
+
+ public Set getPseudoRoles() {
+ return pseudoRoles;
+ }
+
+ public Long getSelectedProfileId() {
+ return selectedProfileId;
+ }
+
+ public void setAddressId(Long addressId) {
+ this.addressId = addressId;
+ }
+
+ public void setAlertMethodCd(String alertMethodCd) {
+ this.alertMethodCd = alertMethodCd;
+ }
+
+ public void setCellular(String cellular) {
+ this.cellular = cellular;
+ }
+
+ public void setEmail(String email) {
+ this.email = email;
+ }
+
+ public void setFax(String fax) {
+ this.fax = fax;
+ }
+
+ public void setFirstName(String firstName) {
+ this.firstName = firstName;
+ }
+
+ public void setHrid(String hrid) {
+ this.hrid = hrid;
+ }
+
+ public void setLastLoginDate(Date lastLoginDate) {
+ this.lastLoginDate = lastLoginDate;
+ }
+
+ public void setLastName(String lastName) {
+ this.lastName = lastName;
+ }
+
+ public void setLoginId(String loginId) {
+ this.loginId = loginId;
+ }
+
+ public void setLoginPwd(String loginPwd) {
+ this.loginPwd = loginPwd;
+ }
+
+ public void setManagerId(Long managerId) {
+ this.managerId = managerId;
+ }
+
+ public void setMiddleInitial(String middleInitial) {
+ this.middleInitial = middleInitial;
+ }
+
+ public void setOrgCode(String orgCode) {
+ this.orgCode = orgCode;
+ }
+
+ public void setOrgId(Long orgId) {
+ this.orgId = orgId;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+
+ public void setOrgUserId(String orgUserId) {
+ this.orgUserId = orgUserId;
+ }
+
+ public void setActive(boolean active) {
+ this.active = active;
+ }
+
+ public void setInternal(boolean internal) {
+ this.internal = internal;
+ }
+
+ public void setAddress1(String address1) {
+ this.address1 = address1;
+ }
+
+ public void setAddress2(String address2) {
+ this.address2 = address2;
+ }
+
+ public void setCity(String city) {
+ this.city = city;
+ }
+
+ public void setCountry(String country) {
+ this.country = country;
+ }
+
+ public void setState(String state) {
+ this.state = state;
+ }
+
+ public void setZipCode(String zipCode) {
+ this.zipCode = zipCode;
+ }
+
+ public void setBusinessCountryCode(String businessCountryCode) {
+ this.businessCountryCode = businessCountryCode;
+ }
+
+ public void setCommandChain(String commandChain) {
+ this.commandChain = commandChain;
+ }
+
+ public void setCompany(String company) {
+ this.company = company;
+ }
+
+ public void setCompanyCode(String companyCode) {
+ this.companyCode = companyCode;
+ }
+
+ public void setDepartment(String department) {
+ this.department = department;
+ }
+
+ public void setJobTitle(String jobTitle) {
+ this.jobTitle = jobTitle;
+ }
+
+ public void setLocationClli(String locationClli) {
+ this.locationClli = locationClli;
+ }
+
+ public void setOrgManagerUserId(String orgManagerUserId) {
+ this.orgManagerUserId = orgManagerUserId;
+ }
+
+ public void setZipCodeSuffix(String zipCodeSuffix) {
+ this.zipCodeSuffix = zipCodeSuffix;
+ }
+
+ public void setBusinessCountryName(String businessCountryName) {
+ this.businessCountryName = businessCountryName;
+ }
+
+ public void setPseudoRoles(Set pseudoRoles) {
+ this.pseudoRoles = pseudoRoles;
+ }
+
+ public void setSelectedProfileId(Long selectedProfileId) {
+ this.selectedProfileId = selectedProfileId;
+ }
+
+ public Long getTimeZoneId() {
+ return timeZoneId;
+ }
+
+ public void setTimeZoneId(Long timeZoneId) {
+ this.timeZoneId = timeZoneId;
+ }
+
+ public String getBusinessUnit() {
+ return businessUnit;
+ }
+
+ public void setBusinessUnit(String businessUnit) {
+ this.businessUnit = businessUnit;
+ }
+
+ public String getSiloStatus() {
+ return siloStatus;
+ }
+
+ public void setSiloStatus(String siloStatus) {
+ this.siloStatus = siloStatus;
+ }
+
+ public String getCostCenter() {
+ return costCenter;
+ }
+
+ public void setCostCenter(String costCenter) {
+ this.costCenter = costCenter;
+ }
+
+ public String getFinancialLocCode() {
+ return financialLocCode;
+ }
+
+ public void setFinancialLocCode(String financialLocCode) {
+ this.financialLocCode = financialLocCode;
+ }
+
+ public String getBusinessUnitName() {
+ return businessUnitName;
+ }
+
+ public void setBusinessUnitName(String businessUnitName) {
+ this.businessUnitName = businessUnitName;
+ }
+
+ public String getDepartmentName() {
+ return departmentName;
+ }
+
+ public void setDepartmentName(String departmentName) {
+ this.departmentName = departmentName;
+ }
+
+ public boolean isOnline() {
+ return online;
+ }
+
+ public void setOnline(boolean online) {
+ this.online = online;
+ }
+
+ public String getChatId() {
+ return chatId;
+ }
+
+ public void setChatId(String chatId) {
+ this.chatId = chatId;
+ }
+
+ public Set getUserApps() {
+ return userApps;
+ }
+
+ public void setUserApps(Set userApps) {
+ this.userApps = userApps;
+ }
+
+ @SuppressWarnings("unchecked")
+ public void addAppRoles(App app, SortedSet<Role> roles) {
+ if (roles != null) {
+ // add all
+ Set newUserApps = new TreeSet();
+ Iterator itr = roles.iterator();
+ while (itr.hasNext()) {
+ Role role = (Role) itr.next();
+ UserApp userApp = new UserApp();
+ userApp.setUserId(this.id);
+ userApp.setApp(app);
+ userApp.setRole(role);
+ newUserApps.add(userApp);
+ }
+ setUserApps(newUserApps);
+ } else {
+ // remove all
+ this.userApps.clear();
+ }
+
+ }
+
+ @SuppressWarnings("unchecked")
+ public SortedSet<Role> getAppRoles(App app) {
+ SortedSet<Role> roles = new TreeSet();
+ Set apps = getUserApps();
+ Iterator appsItr = apps.iterator();
+ // getting default app
+ while (appsItr.hasNext()) {
+ UserApp tempUserApp = (UserApp) appsItr.next();
+ if (tempUserApp.getApp().getId().equals(app.getId())) {
+ roles.add(tempUserApp.getRole());
+ }
+ }
+ return roles;
+ }
+
+ public SortedSet<Role> getRoles() {
+ App app = new App();
+ app.setId(new Long(1));
+ app.setName("Default");
+ return getAppRoles(app);
+ }
+
+ public UserApp getDefaultUserApp() {
+ Set apps = getUserApps();
+ Iterator appsItr = apps.iterator();
+ UserApp userApp = null;
+ // getting default app
+ while (appsItr.hasNext()) {
+ UserApp tempApp = (UserApp) appsItr.next();
+ if (tempApp.getApp().getId().equals(new Long(1))) {
+ userApp = tempApp;
+ break;
+ }
+ }
+ return userApp;
+ }
+
+ public void setRoles(SortedSet<Role> roles) {
+ App app = new App();
+ app.setId(new Long(1));
+ app.setName("Default");
+ addAppRoles(app, roles);
+ }
+
+ public void removeRole(Long roleId) {
+ Set apps = getUserApps();
+ Iterator appsItr = apps.iterator();
+ // getting default app
+ while (appsItr.hasNext()) {
+ UserApp tempUserApp = (UserApp) appsItr.next();
+ if (tempUserApp.getRole().getId().equals(roleId)) {
+ appsItr.remove();
+ }
+ }
+
+ }
+
+ @SuppressWarnings("unchecked")
+ public void addRole(Role role) {
+ if (role != null) {
+ SortedSet<Role> roles = getRoles();
+ if (roles == null) {
+ roles = new TreeSet();
+ }
+ roles.add(role);
+ setRoles(roles);
+ }
+ }
+
+ @Override
+ public int compareTo(Object obj) {
+ User user = (User) obj;
+
+ String c1 = getLastName() + getFirstName() + getMiddleInitial();
+ String c2 = user.getLastName() + user.getFirstName() + user.getMiddleInitial();
+
+ return c1.compareTo(c2);
+ }
+
+ @Override
+ public String toString() {
+ return "User [orgUserId=" + orgUserId + ", userApps=" + userApps + ", pseudoRoles=" + pseudoRoles + "]";
+ }
+
+
+
+}
diff --git a/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/UserApp.java b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/UserApp.java
new file mode 100644
index 00000000..4eebb02f
--- /dev/null
+++ b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/UserApp.java
@@ -0,0 +1,123 @@
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal SDK
+ * ===================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ *
+ * Unless otherwise specified, all software contained herein is licensed
+ * under the Apache License, Version 2.0 (the "License");
+ * you may not use this software 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.
+ *
+ * Unless otherwise specified, all documentation contained herein is licensed
+ * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
+ * you may not use this documentation except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://creativecommons.org/licenses/by/4.0/
+ *
+ * Unless required by applicable law or agreed to in writing, documentation
+ * 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.portalsdk.core.domain;
+
+
+@SuppressWarnings("rawtypes")
+public class UserApp implements java.io.Serializable, Comparable {
+
+ private static final long serialVersionUID = 1L;
+ private Long userId;
+ private App app;
+ private Role role;
+ private Short priority;
+
+ public Long getUserId() {
+ return userId;
+ }
+
+ public void setUserId(Long userId) {
+ this.userId = userId;
+ }
+
+ public App getApp() {
+ return app;
+ }
+
+ public void setApp(App app) {
+ this.app = app;
+ }
+
+ public Role getRole() {
+ return role;
+ }
+
+ public void setRole(Role role) {
+ this.role = role;
+ }
+
+ public Short getPriority() {
+ return this.priority;
+ }
+
+ public void setPriority(Short priority) {
+ this.priority = priority;
+ }
+
+ @Override
+ public boolean equals(Object other) {
+ if (this == other)
+ return true;
+ if (other == null)
+ return false;
+ if (!(other instanceof UserApp))
+ return false;
+ UserApp castOther = (UserApp) other;
+
+ return (this.getUserId().equals(castOther.getUserId()))
+ && (this.getApp().getId().equals(castOther.getApp().getId()))
+ && (this.getRole().getId().equals(castOther.getRole().getId()))
+ && ((this.priority == null && castOther.getPriority() == null)
+ || this.getPriority().equals(castOther.getPriority()));
+ }
+
+ @Override
+ public int hashCode() {
+ int result = 17;
+ result = 37 * result + (int) (this.getUserId() == null ? 0 : this.getUserId().intValue());
+ result = 37 * result + (int) (this.getApp().getId() == null ? 0 : this.getApp().getId().intValue());
+ result = 37 * result + (int) (this.getRole().getId() == null ? 0 : this.getRole().getId().intValue());
+ result = 37 * result + (int) (this.priority == null ? 0 : this.priority);
+ return result;
+ }
+
+ @Override
+ public int compareTo(Object other) {
+ UserApp castOther = (UserApp) other;
+ Long c1 = (this.getUserId() == null ? 0 : this.getUserId())
+ + (this.getApp() == null || this.getApp().getId() == null ? 0 : this.getApp().getId())
+ + (this.getRole() == null || this.getRole().getId() == null ? 0 : this.getRole().getId())
+ + (this.priority == null ? 0 : this.priority);
+ Long c2 = (castOther.getUserId() == null ? 0 : castOther.getUserId())
+ + (castOther.getApp() == null || castOther.getApp().getId() == null ? 0 : castOther.getApp().getId())
+ + (castOther.getRole() == null || castOther.getRole().getId() == null ? 0 : castOther.getRole().getId())
+ + (castOther.priority == null ? 0 : castOther.priority);
+ return c1.compareTo(c2);
+ }
+
+}
diff --git a/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/UserAppId.java b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/UserAppId.java
new file mode 100644
index 00000000..7095168f
--- /dev/null
+++ b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/UserAppId.java
@@ -0,0 +1,106 @@
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal SDK
+ * ===================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ *
+ * Unless otherwise specified, all software contained herein is licensed
+ * under the Apache License, Version 2.0 (the "License");
+ * you may not use this software 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.
+ *
+ * Unless otherwise specified, all documentation contained herein is licensed
+ * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
+ * you may not use this documentation except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://creativecommons.org/licenses/by/4.0/
+ *
+ * Unless required by applicable law or agreed to in writing, documentation
+ * 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.portalsdk.core.domain;
+
+// Generated Aug 27, 2014 5:51:36 PM by Hibernate Tools 3.4.0.CR1
+
+/**
+ * FnUserRoleId generated by hbm2java
+ */
+public class UserAppId implements java.io.Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private Long userId;
+ private App app;
+ private Role role;
+
+ public UserAppId() {
+ super();
+ }
+
+ public Long getUserId() {
+ return userId;
+ }
+
+ public void setUserId(Long userId) {
+ this.userId = userId;
+ }
+
+ public App getApp() {
+ return app;
+ }
+
+ public void setApp(App app) {
+ this.app = app;
+ }
+
+ public Role getRole() {
+ return role;
+ }
+
+ public void setRole(Role role) {
+ this.role = role;
+ }
+
+ @Override
+ public boolean equals(Object other) {
+ if (this == other)
+ return true;
+ if (other == null)
+ return false;
+ if (!(other instanceof UserAppId))
+ return false;
+ UserAppId castOther = (UserAppId) other;
+
+ return (this.getUserId() == castOther.getUserId()) && (this.getApp().getId() == castOther.getApp().getId())
+ && (this.getRole().getId() == castOther.getRole().getId());
+ }
+
+ @Override
+ public int hashCode() {
+ int result = 17;
+ result = 37 * result + (int) (this.getUserId() == null ? 0 : this.getUserId().intValue());
+ result = 37 * result + (int) (this.getApp().getId() == null ? 0 : this.getApp().getId().intValue());
+ result = 37 * result + (int) (this.getRole().getId() == null ? 0 : this.getRole().getId().intValue());
+ return result;
+ }
+
+}
diff --git a/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/support/Attribute.java b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/support/Attribute.java
new file mode 100644
index 00000000..8d7fadf9
--- /dev/null
+++ b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/support/Attribute.java
@@ -0,0 +1,87 @@
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal SDK
+ * ===================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ *
+ * Unless otherwise specified, all software contained herein is licensed
+ * under the Apache License, Version 2.0 (the "License");
+ * you may not use this software 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.
+ *
+ * Unless otherwise specified, all documentation contained herein is licensed
+ * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
+ * you may not use this documentation except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://creativecommons.org/licenses/by/4.0/
+ *
+ * Unless required by applicable law or agreed to in writing, documentation
+ * 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.portalsdk.core.domain.support;
+
+public class Attribute {
+ private double width;
+ private double top;
+ private double left;
+ private String name;
+ private double height;
+
+ public double getWidth() {
+ return width;
+ }
+
+ public void setWidth(double width) {
+ this.width = width;
+ }
+
+ public double getTop() {
+ return top;
+ }
+
+ public void setTop(double top) {
+ this.top = top;
+ }
+
+ public double getLeft() {
+ return left;
+ }
+
+ public void setLeft(double left) {
+ this.left = left;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public double getHeight() {
+ return height;
+ }
+
+ public void setHeight(double height) {
+ this.height = height;
+ }
+
+}
diff --git a/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/support/CollaborateList.java b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/support/CollaborateList.java
new file mode 100644
index 00000000..8534e2e7
--- /dev/null
+++ b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/support/CollaborateList.java
@@ -0,0 +1,72 @@
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal SDK
+ * ===================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ *
+ * Unless otherwise specified, all software contained herein is licensed
+ * under the Apache License, Version 2.0 (the "License");
+ * you may not use this software 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.
+ *
+ * Unless otherwise specified, all documentation contained herein is licensed
+ * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
+ * you may not use this documentation except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://creativecommons.org/licenses/by/4.0/
+ *
+ * Unless required by applicable law or agreed to in writing, documentation
+ * 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.portalsdk.core.domain.support;
+
+import java.io.Serializable;
+import java.util.HashSet;
+import java.util.Set;
+
+public class CollaborateList implements Serializable {
+
+ private static final long serialVersionUID = -4104440747626736243L;
+ private HashSet<String> userNameList = new HashSet<>();
+ private static CollaborateList userListData = new CollaborateList();
+
+ private CollaborateList() {
+ }
+
+ public static CollaborateList getInstance() {
+ return userListData;
+ }
+
+ public Set<String> getAllUserName() {
+ return userNameList;
+ }
+
+ public static void addUserName(String name) {
+ final Set<String> allUserName = CollaborateList.getInstance().getAllUserName();
+ if (!allUserName.contains(name))
+ allUserName.add(name);
+ }
+
+ public static void delUserName(String name) {
+ final Set<String> allUserName = CollaborateList.getInstance().getAllUserName();
+ allUserName.remove((String) name);
+ }
+
+}
diff --git a/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/support/Container.java b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/support/Container.java
new file mode 100644
index 00000000..3d9ee77a
--- /dev/null
+++ b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/support/Container.java
@@ -0,0 +1,315 @@
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal SDK
+ * ===================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ *
+ * Unless otherwise specified, all software contained herein is licensed
+ * under the Apache License, Version 2.0 (the "License");
+ * you may not use this software 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.
+ *
+ * Unless otherwise specified, all documentation contained herein is licensed
+ * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
+ * you may not use this documentation except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://creativecommons.org/licenses/by/4.0/
+ *
+ * Unless required by applicable law or agreed to in writing, documentation
+ * 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.portalsdk.core.domain.support;
+
+import java.util.List;
+import java.util.Map;
+
+public class Container {
+
+ String id;
+
+ String name;
+
+ Size size;
+
+ Position p;
+
+ Map<String, Container> containerRowCol;
+
+ Map<String, Element> elementRowCol;
+
+ int numOfRows;
+
+ int numOfCols;
+
+ double sum = 0;
+
+ double interEleWd;
+
+ double interEleH;
+
+ double interEleToContainerWd;
+
+ double interEleToContainerH;
+
+ double interEleToInnerContainerWd;
+
+ double interEleToInnerContainerH;
+
+ double top;
+
+ double left;
+
+ double height;
+
+ double width;
+
+ String visibilityType;
+
+ List<Container> innerCList;
+
+ List<Element> elementList;
+
+ public Container() {
+
+ }
+
+ public Container(String id, String name, int numOfRows, int numOfCols, double interEleWd, double interEleH,
+ double interEleToContainerWd, double interEleToContainerH, double interEleToInnerContainerWd,
+ double interEleToInnerContainerH) {
+
+ this.id = id;
+ this.name = name;
+ this.numOfRows = numOfRows;
+ this.numOfCols = numOfCols;
+ this.interEleWd = interEleWd;
+ this.interEleH = interEleH;
+ this.interEleToContainerWd = interEleToContainerWd;
+ this.interEleToContainerH = interEleToContainerH;
+ this.interEleToInnerContainerWd = interEleToInnerContainerWd;
+ this.interEleToInnerContainerH = interEleToInnerContainerH;
+
+ }
+
+ public Map<String, Container> getContainerRowCol() {
+ return containerRowCol;
+ }
+
+ public Map<String, Element> getElementRowCol() {
+ return elementRowCol;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public void setInnerContainer(Map<String, Container> innerCon) {
+ containerRowCol = innerCon;
+ }
+
+ public void setElements(Map<String, Element> innerE) {
+ elementRowCol = innerE;
+ }
+
+ public Position getP() {
+ return p;
+ }
+
+ public void setP(Position p) {
+ this.p = p;
+ }
+
+ public void setTop(double top) {
+ this.top = top;
+ }
+
+ public void setLeft(double left) {
+ this.left = left;
+ }
+
+ public void setHeight(double height) {
+ this.height = height;
+ }
+
+ public void setWidth(double width) {
+ this.width = width;
+ }
+
+ public void setInnerCList(List<Container> innerCList) {
+ this.innerCList = innerCList;
+ }
+
+ public void setElementList(List<Element> elementList) {
+ this.elementList = elementList;
+ }
+
+ public void setVisibilityType(String visibilityType) {
+ this.visibilityType = visibilityType;
+ }
+
+ public Size computeSize() {
+ Size size = new Size();
+ double width = 0;
+ double height = 0;
+ for (int i = 0; i < numOfRows; i++) {
+ if ((containerRowCol != null && containerRowCol.containsKey(i + String.valueOf(numOfCols - 1)))
+ || (elementRowCol != null && elementRowCol.containsKey(i + String.valueOf(numOfCols - 1)))) {
+ for (int j = 0; j < numOfCols; j++) {
+ if (containerRowCol != null && containerRowCol.containsKey(i + String.valueOf(j))) {
+ width += containerRowCol.get(i + String.valueOf(j)).computeSize().getWidth();
+ } else if (elementRowCol != null && elementRowCol.containsKey(i + String.valueOf(j)))
+ width += elementRowCol.get(i + String.valueOf(j)).computeSize().getWidth();
+ }
+ break;
+ }
+ }
+
+ if (this.getName().equals("Broadworks complex") || this.getName().equals("Application Servers")
+ || this.getName().equals("Call Session Control") || this.getName().equals("GMLC Provider")
+ || this.getName().equals("Neo") || this.getName().equals("Support")) {
+ width += (numOfCols - 1) * interEleWd + 2 * interEleToInnerContainerWd;
+ } else {
+ width += (numOfCols - 1) * interEleWd + 2 * interEleToContainerWd;
+ }
+ size.setWidth(width);
+ for (int j = 0; j < numOfCols; j++) {
+ if ((containerRowCol != null && containerRowCol.containsKey(String.valueOf(numOfRows - 1) + j))
+ || (elementRowCol != null && elementRowCol.containsKey(String.valueOf(numOfRows - 1) + j))) {
+ for (int i = 0; i < numOfRows; i++) {
+ if (containerRowCol != null && containerRowCol.containsKey(i + String.valueOf(j))) {
+ height += containerRowCol.get(i + String.valueOf(j)).computeSize().getHeight();
+ } else if (elementRowCol != null && elementRowCol.containsKey(i + String.valueOf(j)))
+ height += elementRowCol.get(String.valueOf(i) + String.valueOf(j)).computeSize().getHeight();
+ }
+ break;
+ }
+ }
+ if (this.getName().equals("Broadworks complex") || this.getName().equals("Application Servers")
+ || this.getName().equals("Call Session Control") || this.getName().equals("GMLC Provider")
+ || this.getName().equals("Neo") || this.getName().equals("Support")) {
+ height += (numOfRows - 1) * interEleH + 2 * interEleToInnerContainerH + 0.1;
+ } else {
+ if (this.getName().equals("VoLTE UE") || this.getName().equals("3G UE") || this.getName().equals("HC UE-A")
+ || this.getName().equals("HC UE-B") || this.getName().equals("VNI UE")
+ || this.getName().equals("PSTN")) {
+ height += (numOfRows - 1) * interEleH + interEleToContainerH / 2;
+ } else
+ height += (numOfRows - 1) * interEleH + 2 * interEleToContainerH;
+ }
+ size.setHeight(height);
+ return size;
+ }
+
+ public void computeElementPositions() {
+ double xsum = 0;
+ double ysum = 0;
+ for (int i = 0; i < numOfRows; i++) {
+ for (int j = 0; j < numOfCols; j++) {
+ if (containerRowCol != null && containerRowCol.containsKey(String.valueOf(i) + String.valueOf(j))) {
+ Container c = containerRowCol.get(String.valueOf(i) + String.valueOf(j));
+ Position p = new Position();
+ p.x = j * interEleWd + xsum + this.getP().getX() + interEleToContainerWd;
+ ysum = 0;
+ for (int k = 0; k < i; k++) {
+ if (containerRowCol.containsKey(String.valueOf(k) + String.valueOf(j)))
+ ysum += containerRowCol.get(String.valueOf(k) + String.valueOf(j)).computeSize()
+ .getHeight();
+ else if (elementRowCol.containsKey(String.valueOf(k) + String.valueOf(j)))
+ ysum += elementRowCol.get(String.valueOf(k) + String.valueOf(j)).computeSize().getHeight();
+ }
+ p.y = i * interEleH + ysum + this.getP().getY() + interEleToContainerH;
+ // containerCoord.add(c,p);
+ xsum += c.computeSize().getWidth();
+ c.setP(p);
+
+ } else if (elementRowCol != null && elementRowCol.containsKey(String.valueOf(i) + String.valueOf(j))) {
+ Element e = elementRowCol.get(String.valueOf(i) + String.valueOf(j));
+ Position p = new Position();
+ if (j == numOfCols - 1) {
+ for (int t = 0; t < i; t++) {
+ if (containerRowCol != null
+ && containerRowCol.containsKey(String.valueOf(t) + String.valueOf(j - 1))) {
+ if (!elementRowCol.containsKey(String.valueOf(i) + String.valueOf(j - 1))
+ && !containerRowCol.containsKey(String.valueOf(i) + String.valueOf(j - 1))) {
+ xsum += containerRowCol.get(String.valueOf(t) + String.valueOf(j - 1)).computeSize()
+ .getWidth();
+ break;
+ }
+ }
+ }
+ }
+ if (this.getName().equals("Broadworks complex") || this.getName().equals("Application Servers")
+ || this.getName().equals("Call Session Control") || this.getName().equals("GMLC Provider")
+ || this.getName().equals("Neo") || this.getName().equals("Support")) {
+ p.x = j * interEleWd + xsum + this.getP().getX() + interEleToInnerContainerWd;
+ } else if (this.getName().equals("VNI UE") || this.getName().equals("PSTN")
+ || this.getName().equals("3G UE") || this.getName().equals("HC UE-A")
+ || this.getName().equals("HC UE-B")) {
+ p.x = j * interEleWd + xsum + this.getP().getX() + interEleToContainerWd - 0.8;
+ } else {
+ p.x = j * interEleWd + xsum + this.getP().getX() + interEleToContainerWd;
+ }
+ ysum = 0;
+ for (int k = 0; k < i; k++) {
+ if (containerRowCol != null
+ && containerRowCol.containsKey(String.valueOf(k) + String.valueOf(j)))
+ ysum += containerRowCol.get(String.valueOf(k) + String.valueOf(j)).computeSize()
+ .getHeight();
+ else if (elementRowCol != null
+ && elementRowCol.containsKey(String.valueOf(k) + String.valueOf(j)))
+ ysum += elementRowCol.get(String.valueOf(k) + String.valueOf(j)).computeSize().getHeight();
+ else if (containerRowCol != null) {
+ for (int chk = j; chk > 0; chk--) {
+ if (containerRowCol.containsKey(String.valueOf(k) + String.valueOf(chk - 1))) {
+ if (containerRowCol.get(String.valueOf(k) + String.valueOf(chk - 1)).computeSize()
+ .getWidth()
+ + containerRowCol.get(String.valueOf(k) + String.valueOf(chk - 1)).getP()
+ .getX() > p.x) {
+ ysum += containerRowCol.get(String.valueOf(k) + String.valueOf(chk - 1))
+ .computeSize().getHeight();
+ break;
+ }
+ }
+ }
+ }
+
+ }
+ if (this.getName().equals("Broadworks complex") || this.getName().equals("Application Servers")
+ || this.getName().equals("Call Session Control") || this.getName().equals("GMLC Provider")
+ || this.getName().equals("Neo") || this.getName().equals("Support")) {
+ p.y = this.getP().getY() + ysum + i * interEleH + interEleToInnerContainerH + 1;
+ } else {
+ if (e.getName().equals("")) {
+ p.y = this.getP().getY() + ysum + i * interEleH + (interEleToContainerH);
+ } else
+ p.y = this.getP().getY() + ysum + i * interEleH + interEleToContainerH;
+ }
+ xsum += e.computeSize().getWidth();
+ e.setP(p);
+ }
+ }
+ xsum = 0;
+ }
+ }
+
+}
diff --git a/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/support/Domain.java b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/support/Domain.java
new file mode 100644
index 00000000..dcf4fd54
--- /dev/null
+++ b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/support/Domain.java
@@ -0,0 +1,222 @@
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal SDK
+ * ===================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ *
+ * Unless otherwise specified, all software contained herein is licensed
+ * under the Apache License, Version 2.0 (the "License");
+ * you may not use this software 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.
+ *
+ * Unless otherwise specified, all documentation contained herein is licensed
+ * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
+ * you may not use this documentation except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://creativecommons.org/licenses/by/4.0/
+ *
+ * Unless required by applicable law or agreed to in writing, documentation
+ * 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.portalsdk.core.domain.support;
+
+import java.util.List;
+import java.util.Map;
+
+public class Domain {
+ // Unique identifier of the domain
+ String id;
+ String name;
+ Size size;
+ Position p;
+ // Horizontal space between a pair of containers
+ double interContWd = 1.0;
+ // Vertical space between a pair of containers
+ double interContH;
+ double domainToLayoutWd;
+ double domainToContH;
+ double domainToLayoutH;
+ int numOfRowsofContainer;
+ int numOfColsofContainer;
+ boolean indexChanged;
+ Map<String, Container> containerRowCol;
+ double top;
+ double left;
+ double height;
+ double width;
+ List<Container> containerList;
+ double newXafterColl;
+ double YafterColl;
+
+ public Domain(String id, String name, double interContWd, double interContH, double domainToLayoutWd,
+ double domainToLayoutH, double domainToContH, int numOfRowsofContainer, int numOfColsofContainer) {
+ this.id = id;
+ this.name = name;
+ this.interContWd = interContWd;
+ this.interContH = interContH;
+ this.domainToLayoutWd = domainToLayoutWd;
+ this.domainToLayoutH = domainToLayoutH;
+ this.domainToContH = domainToContH;
+ this.numOfRowsofContainer = numOfRowsofContainer;
+ this.numOfColsofContainer = numOfColsofContainer;
+ }
+
+ public Position getP() {
+ return p;
+ }
+
+ public void setP(Position p) {
+ this.p = p;
+ }
+
+ public void setNewXafterColl(double newXafterColl) {
+ this.newXafterColl = newXafterColl;
+ }
+
+ public double getNewXafterColl() {
+ return newXafterColl;
+ }
+
+ public double getYafterColl() {
+ return YafterColl;
+ }
+
+ public void setYafterColl(double yafterColl) {
+ YafterColl = yafterColl;
+ }
+
+ public void setDomainToLayoutWd(double domainToLayoutWd) {
+ this.domainToLayoutWd = domainToLayoutWd;
+ }
+
+ public double getDomainToLayoutWd() {
+ return domainToLayoutWd;
+ }
+
+ public double getTop() {
+ return top;
+ }
+
+ public void setTop(double top) {
+ this.top = top;
+ }
+
+ public double getLeft() {
+ return left;
+ }
+
+ public void setLeft(double left) {
+ this.left = left;
+ }
+
+ public double getHeight() {
+ return height;
+ }
+
+ public void setHeight(double height) {
+ this.height = height;
+ }
+
+ public double getWidth() {
+ return width;
+ }
+
+ public void setWidth(double width) {
+ this.width = width;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setContainers(Map<String, Container> containerRowCol) {
+ this.containerRowCol = containerRowCol;
+ }
+
+ public Map<String, Container> getContainerRowCol() {
+ return containerRowCol;
+ }
+
+ public void setContainerList(List<Container> containerList) {
+ this.containerList = containerList;
+ }
+
+ public boolean isIndexChanged() {
+ return indexChanged;
+ }
+
+ public void setIndexChanged(boolean indexChanged) {
+ this.indexChanged = indexChanged;
+ }
+
+ // Compute the size of any domain
+ public Size computeSize() {
+ size = new Size();
+ size.setHeight(5);
+ double myWidth = 0;
+ for (int i = 0; i < numOfRowsofContainer; i++) {
+ if (containerRowCol != null
+ && containerRowCol.containsKey(String.valueOf(i) + String.valueOf(numOfColsofContainer - 1))) {
+ for (int j = 0; j < numOfColsofContainer; j++) {
+ myWidth += containerRowCol.get(String.valueOf(i) + String.valueOf(j)).computeSize().getWidth();
+ }
+ break;
+ }
+
+ }
+ myWidth += (numOfColsofContainer - 1) * interContWd;
+ if (this.getName().equals("VNI"))
+ size.setWidth(myWidth - 4);
+ else
+ size.setWidth(myWidth);
+ return size;
+ }
+
+ public void computeConatinerPositions() {
+
+ double xsum = 0;
+ for (int i = 0; i < numOfRowsofContainer; i++) {
+ for (int j = 0; j < numOfColsofContainer; j++) {
+ if (containerRowCol != null && containerRowCol.containsKey(String.valueOf(i) + String.valueOf(j))) {
+ Container c = containerRowCol.get(String.valueOf(i) + String.valueOf(j));
+ Position p = new Position();
+ p.x = j * interContWd + xsum + domainToLayoutWd;
+ double ysum = 0;
+ for (int k = 0; k < i; k++) {
+ if (containerRowCol.containsKey(String.valueOf(k) + String.valueOf(j)))
+ ysum += containerRowCol.get(String.valueOf(k) + String.valueOf(j)).computeSize()
+ .getHeight();
+ }
+ p.y = domainToLayoutH + ysum + this.computeSize().getHeight() + domainToContH + i * interContH;
+ c.setP(p);
+ xsum += c.computeSize().getWidth();
+ }
+ }
+ xsum = 0;
+
+ }
+
+ }
+
+}
diff --git a/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/support/DomainVo.java b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/support/DomainVo.java
new file mode 100644
index 00000000..d2f41c90
--- /dev/null
+++ b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/support/DomainVo.java
@@ -0,0 +1,198 @@
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal SDK
+ * ===================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ *
+ * Unless otherwise specified, all software contained herein is licensed
+ * under the Apache License, Version 2.0 (the "License");
+ * you may not use this software 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.
+ *
+ * Unless otherwise specified, all documentation contained herein is licensed
+ * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
+ * you may not use this documentation except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://creativecommons.org/licenses/by/4.0/
+ *
+ * Unless required by applicable law or agreed to in writing, documentation
+ * 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.portalsdk.core.domain.support;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Set;
+
+import org.onap.portalsdk.core.domain.FusionVo;
+
+/* Super class from which all data objects descend */
+@SuppressWarnings("rawtypes")
+public class DomainVo extends FusionVo implements Serializable, Cloneable, Comparable {
+
+// TODO: Remove after the EELFLoggerImpl
+// private static final EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(DomainVo.class);
+
+ private static final long serialVersionUID = 1L;
+ protected Long id;
+ protected Date created;
+ protected Date modified;
+ protected Long createdId;
+ protected Long modifiedId;
+ protected Long rowNum;
+ protected Serializable auditUserId;
+ protected Set auditTrail = null;
+
+ public DomainVo() {
+ super();
+ }
+
+ public void setId(Long i) {
+ id = i;
+ }
+
+ public void setCreated(Date created) {
+ this.created = created;
+ }
+
+ public void setModified(Date modified) {
+ this.modified = modified;
+ }
+
+ public void setCreatedId(Long createdId) {
+ this.createdId = createdId;
+ }
+
+ public void setModifiedId(Long modifiedId) {
+ this.modifiedId = modifiedId;
+ }
+
+ public void setAuditUserId(Serializable auditUserId) {
+ this.auditUserId = auditUserId;
+ }
+
+ public void setRowNum(Long rowNum) {
+ this.rowNum = rowNum;
+ }
+
+ public void setAuditTrail(Set auditTrail) {
+ this.auditTrail = auditTrail;
+ }
+
+ public Long getId() {
+ return id;
+ }
+
+ public Date getCreated() {
+ return created;
+ }
+
+ public Date getModified() {
+ return modified;
+ }
+
+ public Long getCreatedId() {
+ return createdId;
+ }
+
+ public Long getModifiedId() {
+ return modifiedId;
+ }
+
+ public Serializable getAuditUserId() {
+ return auditUserId;
+ }
+
+ public Long getRowNum() {
+ return rowNum;
+ }
+
+ public Set getAuditTrail() {
+ return auditTrail;
+ }
+
+ public Object copy() {
+ return copy(false);
+ }
+
+ public Object copy(boolean isIdNull) {
+ // let's create a "copy" of the object using serialization
+ ByteArrayOutputStream baos = null;
+ ByteArrayInputStream bais = null;
+ ObjectOutputStream oos = null;
+ ObjectInputStream ois = null;
+
+ DomainVo newVo = null;
+ try {
+ baos = new ByteArrayOutputStream();
+ oos = new ObjectOutputStream(baos);
+ oos.writeObject(this);
+
+ bais = new ByteArrayInputStream(baos.toByteArray());
+ ois = new ObjectInputStream(bais);
+ newVo = (DomainVo) ois.readObject();
+
+ if (isIdNull) {
+ newVo.setId(null);
+ }
+
+ } catch (Exception e) {
+
+// TODO: Remove after the EELFLoggerImpl logger.error(EELFLoggerDelegate.errorLogger, "copy failed", e);
+ e.printStackTrace();
+ }
+
+ return newVo;
+ }
+
+ @Override
+ public Object clone() throws CloneNotSupportedException {
+ return super.clone();
+ }
+
+ @Override
+ public boolean equals(Object other) {
+ if (this == other)
+ return true;
+ if (other == null)
+ return false;
+ if (!(other instanceof DomainVo))
+ return false;
+ DomainVo castOther = (DomainVo) other;
+ return this.getId() == castOther.getId()
+ && this.getCreated().equals(castOther.getCreated())
+ && this.getCreatedId() == castOther.getCreatedId()
+ && this.getModified().equals(castOther.getModified())
+ && this.getModifiedId() == castOther.getModifiedId()
+ ;
+ }
+
+ @Override
+ public int compareTo(Object obj) {
+ Long c1 = getId();
+ Long c2 = ((DomainVo) obj).getId();
+ return (c1 == null || c2 == null) ? 1 : c1.compareTo(c2);
+ }
+
+}
diff --git a/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/support/Element.java b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/support/Element.java
new file mode 100644
index 00000000..9da4a242
--- /dev/null
+++ b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/support/Element.java
@@ -0,0 +1,154 @@
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal SDK
+ * ===================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ *
+ * Unless otherwise specified, all software contained herein is licensed
+ * under the Apache License, Version 2.0 (the "License");
+ * you may not use this software 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.
+ *
+ * Unless otherwise specified, all documentation contained herein is licensed
+ * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
+ * you may not use this documentation except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://creativecommons.org/licenses/by/4.0/
+ *
+ * Unless required by applicable law or agreed to in writing, documentation
+ * 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.portalsdk.core.domain.support;
+
+public class Element {
+
+ String id;
+ String name;
+
+ double top;
+
+ double left;
+
+ double height;
+
+ double width;
+
+ String imgFileName;
+
+ String borderType;
+
+ String bgColor;
+
+ ElementDetails details;
+
+ Position p;
+
+ public Element(String id, String name) {
+ this.id = id;
+ this.name = name;
+ }
+
+ public Element(String id, String name, String imgFilename, String bgColor, String borderType,
+ ElementDetails details) {
+ this.id = id;
+ this.name = name;
+ this.imgFileName = imgFilename;
+ this.bgColor = bgColor;
+ this.borderType = borderType;
+ this.details = details;
+
+ }
+
+ public void setBgColor(String bgColor) {
+ this.bgColor = bgColor;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public void setTop(double top) {
+ this.top = top;
+ }
+
+ public void setLeft(double left) {
+ this.left = left;
+ }
+
+ public void setHeight(double height) {
+ this.height = height;
+ }
+
+ public void setWidth(double width) {
+ this.width = width;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public Position getP() {
+ return p;
+ }
+
+ public void setP(Position p) {
+ this.p = p;
+ }
+
+ public void setBorderType(String borderType) {
+ this.borderType = borderType;
+ }
+
+ public String getImgFileName() {
+ return imgFileName;
+ }
+
+ public void setImgFileName(String imgFileName) {
+ this.imgFileName = imgFileName;
+ }
+
+ public String getBorderType() {
+ return borderType;
+ }
+
+ public ElementDetails getDetails() {
+ return details;
+ }
+
+ public void setDetails(ElementDetails details) {
+ this.details = details;
+ }
+
+ public Size computeSize() {
+ Size size = new Size();
+ size.setWidth(0.5 * 7.0);
+ size.setHeight(0.5 * 3.0);
+ return size;
+ }
+
+}
diff --git a/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/support/ElementDetails.java b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/support/ElementDetails.java
new file mode 100644
index 00000000..61fc6497
--- /dev/null
+++ b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/support/ElementDetails.java
@@ -0,0 +1,77 @@
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal SDK
+ * ===================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ *
+ * Unless otherwise specified, all software contained herein is licensed
+ * under the Apache License, Version 2.0 (the "License");
+ * you may not use this software 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.
+ *
+ * Unless otherwise specified, all documentation contained herein is licensed
+ * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
+ * you may not use this documentation except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://creativecommons.org/licenses/by/4.0/
+ *
+ * Unless required by applicable law or agreed to in writing, documentation
+ * 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.portalsdk.core.domain.support;
+
+public class ElementDetails {
+
+ String logical_group;
+ String display_longname;
+ String description;
+ String primary_function;
+ String network_function;
+ String key_interfaces;
+ String location;
+ String vendor;
+ String vendor_shortname;
+ String enclosingContainer;
+
+ public ElementDetails(String logical_group, String display_longname, String description, String primary_function,
+ String network_function, String key_interfaces, String location, String vendor, String vendor_shortname,
+ String enclosingContainer) {
+
+ this.logical_group = logical_group;
+ this.display_longname = display_longname;
+ this.description = description;
+ this.primary_function = primary_function;
+ this.network_function = network_function;
+ this.key_interfaces = key_interfaces;
+ this.location = location;
+ this.vendor = vendor;
+ this.vendor_shortname = vendor_shortname;
+ this.enclosingContainer = enclosingContainer;
+ }
+
+ public String getLogical_group() {
+ return logical_group;
+ }
+
+ public void setLogical_group(String logical_group) {
+ this.logical_group = logical_group;
+ }
+
+}
diff --git a/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/support/FusionCommand.java b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/support/FusionCommand.java
new file mode 100644
index 00000000..b79dc064
--- /dev/null
+++ b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/support/FusionCommand.java
@@ -0,0 +1,54 @@
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal SDK
+ * ===================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ *
+ * Unless otherwise specified, all software contained herein is licensed
+ * under the Apache License, Version 2.0 (the "License");
+ * you may not use this software 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.
+ *
+ * Unless otherwise specified, all documentation contained herein is licensed
+ * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
+ * you may not use this documentation except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://creativecommons.org/licenses/by/4.0/
+ *
+ * Unless required by applicable law or agreed to in writing, documentation
+ * 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.portalsdk.core.domain.support;
+
+import org.onap.portalsdk.core.domain.FusionObject;
+
+public class FusionCommand implements FusionObject {
+
+ private String task;
+
+ public String getTask() {
+ return task;
+ }
+
+ public void setTask(String task) {
+ this.task = task;
+ }
+
+}
diff --git a/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/support/Layout.java b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/support/Layout.java
new file mode 100644
index 00000000..33a347de
--- /dev/null
+++ b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/support/Layout.java
@@ -0,0 +1,955 @@
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal SDK
+ * ===================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ *
+ * Unless otherwise specified, all software contained herein is licensed
+ * under the Apache License, Version 2.0 (the "License");
+ * you may not use this software 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.
+ *
+ * Unless otherwise specified, all documentation contained herein is licensed
+ * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
+ * you may not use this documentation except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://creativecommons.org/licenses/by/4.0/
+ *
+ * Unless required by applicable law or agreed to in writing, documentation
+ * 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.portalsdk.core.domain.support;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
+
+public class Layout {
+
+ Map<String, Domain> domainRowCol;
+
+ Map<String, Domain> originalDomainRowCol;
+
+ // Horizontal space between a pair of domains
+ double interDomainWd;
+ // Vertical space between a pair of domains
+ double interDomainH;
+ // Computing the co-ordinates of any domain
+ int numberofRowsofDomains;
+
+ int numberofColsofDomains;
+
+ Map<String, Domain> collapsedDomains;
+
+ List<Domain> collapsedDomainsNewList;
+
+ public Layout(Map<String, Domain> domainRowCol, double interDomainWd, double interDomainH,
+ int numberofRowsofDomains, int numberofColsofDomains) {
+
+ this.domainRowCol = domainRowCol;
+ this.interDomainWd = interDomainWd;
+ this.interDomainH = interDomainH;
+ this.numberofRowsofDomains = numberofRowsofDomains;
+ this.numberofColsofDomains = numberofColsofDomains;
+ this.collapsedDomains = new HashMap<>();
+ this.originalDomainRowCol = new TreeMap<>();
+ // nline
+ this.collapsedDomainsNewList = new ArrayList<>();
+ }
+
+ public List<Domain> getCollapsedDomainsNewList() {
+ return collapsedDomainsNewList;
+ }
+
+ public void setCollapsedDomainsNewList(List<Domain> collapsedDomainsNewList) {
+ this.collapsedDomainsNewList = collapsedDomainsNewList;
+ }
+
+ public void setCollapsedDomains(Map<String, Domain> collapsedDomains) {
+ this.collapsedDomains = collapsedDomains;
+ }
+
+ public Map<String, Domain> getCollapsedDomains() {
+ return collapsedDomains;
+ }
+
+ public int getNumberofColsofDomains() {
+ return numberofColsofDomains;
+ }
+
+ public void setNumberofColsofDomains(int numberofColsofDomains) {
+ this.numberofColsofDomains = numberofColsofDomains;
+ }
+
+ public Map<String, Domain> getDomainRowCol() {
+ return domainRowCol;
+ }
+
+ public void setDomainRowCol(Map<String, Domain> domainRowCol) {
+ this.domainRowCol = domainRowCol;
+ }
+
+ public void computeDomainPositions() {
+ double xsum = 0;
+ double domainTolayout = 10.6;
+ for (int i = 0; i < numberofRowsofDomains; i++) {
+ for (int j = 0; j < numberofColsofDomains; j++) {
+ if (domainRowCol.containsKey(String.valueOf(i) + String.valueOf(j))) {
+ Domain d = domainRowCol.get(String.valueOf(i) + String.valueOf(j));
+ Position p = new Position();
+ if (j == 0)
+ p.x = domainTolayout;
+ else
+ p.x = j * interDomainWd + xsum + domainTolayout;
+ if (getCollapsedDomainsNewList().size() > 0)
+ p.x += accountForPlusSpaceBefore(d);
+ xsum += d.computeSize().getWidth();
+ double ysum = 0;
+ for (int k = 0; k < i; k++) {
+ if (domainRowCol.containsKey(String.valueOf(k) + String.valueOf(j)))
+ ysum += domainRowCol.get(String.valueOf(k) + String.valueOf(j)).computeSize().getHeight();
+ }
+ p.y = (i + 1) * interDomainH + ysum;
+ d.setP(p);
+
+ }
+ }
+ xsum = 0;
+ }
+ }
+
+ public void computeDomainPositionsModified() {
+ for (int i = 0; i < numberofRowsofDomains; i++) {
+ for (int j = 0; j < numberofColsofDomains; j++) {
+ if (domainRowCol.containsKey(String.valueOf(i) + String.valueOf(j))) {
+ Domain d = domainRowCol.get(String.valueOf(i) + String.valueOf(j));
+ Position p = new Position();
+ Map<String, Container> enclosedContainers = d.getContainerRowCol();
+ for (Map.Entry<String, Container> entry : enclosedContainers.entrySet()) {
+ if (entry.getKey().equals("00")) {
+ double containerX = entry.getValue().getP().getX();
+ p.x = containerX;
+ double ysum = 0;
+ for (int k = 0; k < i; k++) {
+ if (domainRowCol.containsKey(String.valueOf(k) + String.valueOf(j)))
+ ysum += domainRowCol.get(String.valueOf(k) + String.valueOf(j)).computeSize()
+ .getHeight();
+ }
+ p.y = (i + 1) * interDomainH + ysum;
+ d.setP(p);
+ break;
+ }
+ }
+ }
+ }
+ }
+
+ }
+
+ public Layout collapseDomainModified(String domainsToCollapse) {
+
+ if (domainsToCollapse == null || domainsToCollapse.isEmpty())
+ return null;
+
+ Map<String, Domain> updatedRC = new HashMap<>();
+
+ for (Map.Entry<String, Domain> copyEntry : domainRowCol.entrySet()) {
+ updatedRC.put(copyEntry.getKey(), copyEntry.getValue());
+ }
+
+ Map<String, Domain> updatedRCSorted = new TreeMap<>(updatedRC);
+
+ Map<String, Domain> collapsedDomainMap = getCollapsedDomains();
+
+ List<Domain> collapsedDomainNewL = getCollapsedDomainsNewList();
+
+ if (collapsedDomainNewL.size() == 0) {
+ for (Map.Entry<String, Domain> copyEntry : domainRowCol.entrySet()) {
+ originalDomainRowCol.put(copyEntry.getKey(), copyEntry.getValue());
+ }
+ }
+
+ Map<String, Domain> updatedRCSortedTrunc = new TreeMap<>();
+
+ int colToDelete = 0;
+ for (Map.Entry<String, Domain> entry : updatedRCSorted.entrySet()) {
+ if (entry.getValue().getName().equals(domainsToCollapse)) {
+ if (entry.getValue().isIndexChanged()) {
+ collapsedDomainMap.put("0" + String.valueOf(Integer.parseInt(entry.getKey()) + 1),
+ entry.getValue());
+
+ } else {
+ collapsedDomainMap.put(entry.getKey(), entry.getValue());
+ }
+
+ collapsedDomainNewL.add(entry.getValue());
+ setNumberofColsofDomains(getNumberofColsofDomains() - 1);
+ updatedRC.remove(entry.getKey());
+ colToDelete = Character.getNumericValue(entry.getKey().toCharArray()[1]);
+ break;
+ }
+ }
+
+ for (Map.Entry<String, Domain> copyEntry : updatedRCSorted.entrySet()) {
+ updatedRCSortedTrunc.put(copyEntry.getKey(), copyEntry.getValue());
+ }
+
+ for (Map.Entry<String, Domain> rmv : updatedRCSorted.entrySet()) {
+ if (Character.getNumericValue(rmv.getKey().toCharArray()[1]) <= colToDelete) {
+ updatedRCSortedTrunc.remove(rmv.getKey());
+ }
+ }
+
+ for (Map.Entry<String, Domain> updateOthers : updatedRCSortedTrunc.entrySet()) {
+ char update[] = updateOthers.getKey().toCharArray();
+ int charToupdate = Character.getNumericValue(update[1]);
+ --charToupdate;
+ String resultRowCol = String.valueOf(update[0]) + String.valueOf(charToupdate);
+ updateOthers.getValue().setIndexChanged(true);
+ updatedRC.put(resultRowCol, updateOthers.getValue());
+ updatedRC.remove(updateOthers.getKey());
+
+ }
+ setDomainRowCol(updatedRC);
+
+ double currDistFromLftM = 11.0;
+ for (Map.Entry<String, Domain> cd : updatedRC.entrySet()) {
+ Domain d = cd.getValue();
+ double accountPlus = accountForPlusSpaceBefore(d);
+ d.setDomainToLayoutWd(currDistFromLftM + accountPlus);
+ d.computeConatinerPositions();
+ for (Map.Entry<String, Container> entry1 : d.getContainerRowCol().entrySet()) {
+ Container c = entry1.getValue();
+ c.computeSize();
+ c.computeElementPositions();
+ if (c.getContainerRowCol() != null) {
+ for (Map.Entry<String, Container> entryInner : c.getContainerRowCol().entrySet()) {
+ Container inner = entryInner.getValue();
+ inner.computeElementPositions();
+ }
+ }
+ }
+ currDistFromLftM += d.computeSize().getWidth() + 2;
+ }
+
+ // nline
+ // Insert method invocation
+ updatePlusPosition(collapsedDomainNewL, updatedRC);
+
+ // order changed
+ setCollapsedDomains(collapsedDomainMap);
+ setCollapsedDomainsNewList(collapsedDomainNewL);
+
+ computeDomainPositionsModified();
+ return this;
+ }
+
+ public Layout collapseDomainNew(String domainsToCollapse) {
+
+ if (domainsToCollapse == null || domainsToCollapse.isEmpty())
+ return null;
+
+ Map<String, Domain> updatedRC = new HashMap<>();
+
+ for (Map.Entry<String, Domain> copyEntry : domainRowCol.entrySet()) {
+ updatedRC.put(copyEntry.getKey(), copyEntry.getValue());
+ }
+
+ Map<String, Domain> updatedRCSorted = new TreeMap<>(updatedRC);
+
+ Map<String, Domain> collapsedDomainMap = getCollapsedDomains();
+
+ List<Domain> collapsedDomainNewL = getCollapsedDomainsNewList();
+
+ if (collapsedDomainNewL.isEmpty()) {
+ for (Map.Entry<String, Domain> copyEntry : domainRowCol.entrySet()) {
+ originalDomainRowCol.put(copyEntry.getKey(), copyEntry.getValue());
+ }
+ }
+
+ Map<String, Domain> updatedRCSortedTrunc = new TreeMap<>();
+
+ int colToDelete = 0;
+ for (Map.Entry<String, Domain> entry : updatedRCSorted.entrySet()) {
+ if (entry.getValue().getName().equals(domainsToCollapse)) {
+ if (entry.getValue().isIndexChanged()) {
+ collapsedDomainMap.put("0" + String.valueOf(Integer.parseInt(entry.getKey()) + 1),
+ entry.getValue());
+
+ } else {
+ collapsedDomainMap.put(entry.getKey(), entry.getValue());
+ }
+
+ collapsedDomainNewL.add(entry.getValue());
+ setNumberofColsofDomains(getNumberofColsofDomains() - 1);
+ updatedRC.remove(entry.getKey());
+ colToDelete = Character.getNumericValue(entry.getKey().toCharArray()[1]);
+ break;
+ }
+ }
+
+ for (Map.Entry<String, Domain> copyEntry : updatedRCSorted.entrySet()) {
+ updatedRCSortedTrunc.put(copyEntry.getKey(), copyEntry.getValue());
+ }
+
+ for (Map.Entry<String, Domain> rmv : updatedRCSorted.entrySet()) {
+ if (Character.getNumericValue(rmv.getKey().toCharArray()[1]) <= colToDelete) {
+ updatedRCSortedTrunc.remove(rmv.getKey());
+ }
+ }
+
+ for (Map.Entry<String, Domain> updateOthers : updatedRCSortedTrunc.entrySet()) {
+ char[] update = updateOthers.getKey().toCharArray();
+ int charToupdate = Character.getNumericValue(update[1]);
+ --charToupdate;
+ String resultRowCol = String.valueOf(update[0]) + String.valueOf(charToupdate);
+ updateOthers.getValue().setIndexChanged(true);
+ updatedRC.put(resultRowCol, updateOthers.getValue());
+ updatedRC.remove(updateOthers.getKey());
+
+ }
+ setDomainRowCol(updatedRC);
+
+ double currDistFromLftM = 11.0;
+
+ boolean isDisplayed;
+ for (Map.Entry<String, Domain> orgEntry : originalDomainRowCol.entrySet()) {
+ isDisplayed = false;
+ for (Map.Entry<String, Domain> cd : updatedRC.entrySet()) {
+ if (cd.getValue().getName().equals(orgEntry.getValue().getName())) {
+ Domain d = cd.getValue();
+ d.setDomainToLayoutWd(currDistFromLftM);
+ d.computeConatinerPositions();
+ for (Map.Entry<String, Container> entry1 : d.getContainerRowCol().entrySet()) {
+ Container c = entry1.getValue();
+ c.computeSize();
+ c.computeElementPositions();
+ if (c.getContainerRowCol() != null) {
+ for (Map.Entry<String, Container> entryInner : c.getContainerRowCol().entrySet()) {
+ Container inner = entryInner.getValue();
+ inner.computeElementPositions();
+ }
+ }
+ }
+ currDistFromLftM += d.computeSize().getWidth() + 1;
+ isDisplayed = true;
+ break;
+ }
+ }
+
+ if (!isDisplayed) {
+ Domain myCollapsed = orgEntry.getValue();
+ myCollapsed.setNewXafterColl(currDistFromLftM);
+ myCollapsed.setYafterColl(myCollapsed.getP().getY());
+ currDistFromLftM += 4;
+ }
+ }
+
+ setCollapsedDomains(collapsedDomainMap);
+ setCollapsedDomainsNewList(collapsedDomainNewL);
+
+ computeDomainPositionsModified();
+ return this;
+
+ }
+
+ public Layout collapseDomain(String domainsToCollapse) {
+
+ Map<String, Domain> updatedRC = new HashMap<>();
+
+ for (Map.Entry<String, Domain> copyEntry : domainRowCol.entrySet()) {
+ updatedRC.put(copyEntry.getKey(), copyEntry.getValue());
+ }
+
+ Map<String, Domain> updatedRCSorted = new TreeMap<>(updatedRC);
+
+ Map<String, Domain> collapsedDomainMap = getCollapsedDomains();
+
+ if (collapsedDomainMap.size() == 0) {
+ for (Map.Entry<String, Domain> copyEntry : domainRowCol.entrySet()) {
+ originalDomainRowCol.put(copyEntry.getKey(), copyEntry.getValue());
+ }
+ }
+
+ double prevDomXCordinate = 0.0;
+ Map<String, Domain> updatedRCSortedTrunc = new TreeMap<>();
+ int colToDelete = 0;
+ for (Map.Entry<String, Domain> entry : updatedRCSorted.entrySet()) {
+ if (entry.getValue().getName().equals(domainsToCollapse)) {
+ if (entry.getValue().isIndexChanged())
+ collapsedDomainMap.put("0" + String.valueOf(Integer.parseInt(entry.getKey()) + 1),
+ entry.getValue());
+ else
+ collapsedDomainMap.put(entry.getKey(), entry.getValue());
+ prevDomXCordinate = entry.getValue().getP().getX();
+ entry.getValue().getP().setX(prevDomXCordinate - 2);
+ setNumberofColsofDomains(getNumberofColsofDomains() - 1);
+ updatedRC.remove(entry.getKey());
+ colToDelete = Character.getNumericValue(entry.getKey().toCharArray()[1]);
+ break;
+ }
+ }
+
+ setCollapsedDomains(collapsedDomainMap);
+
+ for (Map.Entry<String, Domain> copyEntry : updatedRCSorted.entrySet()) {
+ updatedRCSortedTrunc.put(copyEntry.getKey(), copyEntry.getValue());
+ }
+
+ for (Map.Entry<String, Domain> rmv : updatedRCSorted.entrySet()) {
+ if (Character.getNumericValue(rmv.getKey().toCharArray()[1]) <= colToDelete) {
+ updatedRCSortedTrunc.remove(rmv.getKey());
+ }
+ }
+
+ for (Map.Entry<String, Domain> updateOthers : updatedRCSortedTrunc.entrySet()) {
+ char update[] = updateOthers.getKey().toCharArray();
+ int charToupdate = Character.getNumericValue(update[1]);
+ --charToupdate;
+ String resultRowCol = String.valueOf(update[0]) + String.valueOf(charToupdate);
+ updateOthers.getValue().setIndexChanged(true);
+ updatedRC.put(resultRowCol, updateOthers.getValue());
+ updatedRC.remove(updateOthers.getKey());
+
+ }
+
+ setDomainRowCol(updatedRC);
+
+ for (Map.Entry<String, Domain> entry : updatedRCSortedTrunc.entrySet()) {
+ Domain d = entry.getValue();
+ if (collapsedDomains.size() == 2 && collapsedDomains.containsKey("00") && collapsedDomains.containsKey("01")
+ && domainsToCollapse.equals("RAN")) {
+ if (d.getName().equals("USP"))
+ d.setDomainToLayoutWd(prevDomXCordinate);
+ else if (d.getName().equals("VNI"))
+ d.setDomainToLayoutWd(prevDomXCordinate + 8);
+ else
+ d.setDomainToLayoutWd(prevDomXCordinate + 10);
+ } else if (domainsToCollapse.equals("RAN") && !d.getName().equals("EPC") && collapsedDomains.size() < 3)
+ d.setDomainToLayoutWd(prevDomXCordinate + 11);
+ else if (domainsToCollapse.equals("RAN") && collapsedDomains.size() == 3
+ && collapsedDomains.containsKey("01") && collapsedDomains.containsKey("04")) {
+ if (d.getName().equals("USP"))
+ d.setDomainToLayoutWd(prevDomXCordinate);
+ else
+ d.setDomainToLayoutWd(prevDomXCordinate + 10);
+ }
+
+ else if (collapsedDomains.containsKey("00") && collapsedDomains.size() == 3
+ && collapsedDomains.containsKey("01") && collapsedDomains.containsKey("02")) {
+ if (d.getName().equals("VNI"))
+ d.setDomainToLayoutWd(prevDomXCordinate + 10);
+ else
+ d.setDomainToLayoutWd(prevDomXCordinate);
+
+ }
+
+ else if (collapsedDomains.containsKey("00") && collapsedDomains.size() == 3
+ && collapsedDomains.containsKey("01") && collapsedDomains.containsKey("03")) {
+ if (d.getName().equals("VNI"))
+ d.setDomainToLayoutWd(prevDomXCordinate + 10);
+ else
+ d.setDomainToLayoutWd(prevDomXCordinate);
+
+ }
+
+ else {
+ d.setDomainToLayoutWd(prevDomXCordinate);
+ }
+ d.computeConatinerPositions();
+ prevDomXCordinate = d.getP().getX();
+ for (Map.Entry<String, Container> entry1 : d.getContainerRowCol().entrySet()) {
+ Container c = entry1.getValue();
+ c.computeSize();
+ c.computeElementPositions();
+ if (c.getContainerRowCol() != null) {
+ for (Map.Entry<String, Container> entryInner : c.getContainerRowCol().entrySet()) {
+ Container inner = entryInner.getValue();
+ inner.computeElementPositions();
+ }
+ }
+ }
+ }
+ computeDomainPositions();
+ return this;
+
+ }
+
+ public Layout uncollapseDomainModified(String domainToUnCollapse) {
+ Map<String, Domain> currentDomainsSorted = new TreeMap<>(domainRowCol);
+ Map<String, Domain> updateDomains = new TreeMap<>();
+ Map<String, Domain> collapsedDomainList = getCollapsedDomains();
+ Map<String, Domain> collapsedDomainListSorted = new TreeMap<>(collapsedDomainList);
+
+ List<Domain> domainstoUpd = new ArrayList<>();
+
+ int colToUnCollapse = 99;
+
+ Domain domainToInsert = null;
+
+ if (collapsedDomains.size() == 0) {
+ for (Map.Entry<String, Domain> unindexDomain : originalDomainRowCol.entrySet()) {
+ Domain dm = unindexDomain.getValue();
+ dm.setIndexChanged(false);
+ }
+ }
+
+ for (Map.Entry<String, Domain> entry : collapsedDomainListSorted.entrySet()) {
+ if (entry.getValue().getName().equals(domainToUnCollapse)) {
+ colToUnCollapse = Character.getNumericValue(entry.getKey().toCharArray()[1]);
+ domainToInsert = entry.getValue();
+ collapsedDomainList.remove(entry.getKey());
+ break;
+ }
+ }
+
+ domainstoUpd.add(domainToInsert);
+
+ int lastKeyCol = -1;
+ for (Map.Entry<String, Domain> entry : originalDomainRowCol.entrySet()) {
+ int currcol = Character.getNumericValue(entry.getKey().toCharArray()[1]);
+ if (currcol < colToUnCollapse) {
+ for (Map.Entry<String, Domain> currDomainsEntry : currentDomainsSorted.entrySet()) {
+ if (currDomainsEntry.getValue().getName().equals(entry.getValue().getName())) {
+ updateDomains.put(currDomainsEntry.getKey(), currDomainsEntry.getValue());
+ lastKeyCol = Character.getNumericValue(currDomainsEntry.getKey().toCharArray()[1]);
+ break;
+ }
+ }
+ } else {
+ String newKey = "0" + String.valueOf(lastKeyCol + 1);
+ if (currcol == colToUnCollapse) {
+ updateDomains.put(newKey, domainToInsert);
+ ++lastKeyCol;
+ } else {
+ for (Map.Entry<String, Domain> currDomainsEnt : currentDomainsSorted.entrySet()) {
+ if (currDomainsEnt.getValue().getName().equals(entry.getValue().getName())) {
+ updateDomains.put(newKey, currDomainsEnt.getValue());
+ domainstoUpd.add(currDomainsEnt.getValue());
+ ++lastKeyCol;
+ break;
+ }
+ }
+ }
+
+ }
+ }
+
+ setNumberofColsofDomains(getNumberofColsofDomains() + 1);
+ setDomainRowCol(updateDomains);
+ setCollapsedDomains(collapsedDomainList);
+
+ for (int i = 0; i < domainstoUpd.size(); i++) {
+ Domain d = domainstoUpd.get(i);
+ double newX = 0.0;
+ if (i + 1 < domainstoUpd.size())
+ newX = domainstoUpd.get(i + 1).getP().getX();
+ else
+ newX = domainstoUpd.get(i).getP().getX() + 32;
+
+ if (d.getName().equals("Datacenter with AIC"))
+ newX += 2;
+ d.setDomainToLayoutWd(newX);
+
+ d.computeConatinerPositions();
+ for (Map.Entry<String, Container> entry1 : d.getContainerRowCol().entrySet()) {
+ Container c = entry1.getValue();
+ c.computeSize();
+ c.computeElementPositions();
+ if (c.getContainerRowCol() != null) {
+ for (Map.Entry<String, Container> entryInner : c.getContainerRowCol().entrySet()) {
+ Container inner = entryInner.getValue();
+ inner.computeElementPositions();
+ }
+ }
+ }
+
+ }
+
+ computeDomainPositions();
+ return this;
+
+ }
+
+ public Layout uncollapseDomain(String domainToCollapse) {
+ Map<String, Domain> currentDomainsSorted = new TreeMap<>(domainRowCol);
+ Map<String, Domain> updateDomains = new TreeMap<String, Domain>();
+ Map<String, Domain> collapsedDomainList = getCollapsedDomains();
+ Map<String, Domain> collapsedDomainListSorted = new TreeMap<String, Domain>(collapsedDomainList);
+
+ List<Domain> domainstoUpd = new ArrayList<>();
+ for (Map.Entry<String, Domain> entry : collapsedDomainListSorted.entrySet()) {
+ if (entry.getValue().getName().equals(domainToCollapse)) {
+ Domain domainInserted = entry.getValue();
+ if (currentDomainsSorted != null) {
+ int colToUnCollapse = Character.getNumericValue(entry.getKey().toCharArray()[1]);
+ for (Map.Entry<String, Domain> curr : currentDomainsSorted.entrySet()) {
+ if (Character.getNumericValue(curr.getKey().toCharArray()[1]) < colToUnCollapse) {
+ updateDomains.put(curr.getKey(), curr.getValue());
+ } else {
+ updateDomains.put("0" + String.valueOf(Integer.parseInt(curr.getKey()) + 1),
+ curr.getValue());
+ domainstoUpd.add(curr.getValue());
+ }
+ }
+ }
+ updateDomains.put(entry.getKey(), entry.getValue());
+ collapsedDomainList.remove(entry.getKey());
+ break;
+
+ }
+ }
+ setNumberofColsofDomains(getNumberofColsofDomains() + 1);
+ setDomainRowCol(updateDomains);
+ setCollapsedDomains(collapsedDomainList);
+
+ for (int i = 0; i < domainstoUpd.size(); i++) {
+ Domain d = domainstoUpd.get(i);
+ double newX = 0.0;
+ if (i + 1 < domainstoUpd.size())
+ newX = domainstoUpd.get(i + 1).getP().getX();
+ // d.setDomainToLayoutWd(domainstoUpd.get(i+1).getP().getX());
+ else
+ newX = domainstoUpd.get(i).getP().getX() + 38;
+
+ d.setDomainToLayoutWd(newX);
+
+ d.computeConatinerPositions();
+ for (Map.Entry<String, Container> entry1 : d.getContainerRowCol().entrySet()) {
+ Container c = entry1.getValue();
+ c.computeSize();
+ c.computeElementPositions();
+ if (c.getContainerRowCol() != null) {
+ for (Map.Entry<String, Container> entryInner : c.getContainerRowCol().entrySet()) {
+ Container inner = entryInner.getValue();
+ inner.computeElementPositions();
+ }
+ }
+ }
+ }
+
+ computeDomainPositions();
+ return this;
+ }
+
+ public Layout uncollapseDomainNew(String domainToUnCollapse) {
+ Map<String, Domain> currentDomainsSorted = new TreeMap<String, Domain>(domainRowCol);
+ Map<String, Domain> updateDomains = new TreeMap<String, Domain>();
+ Map<String, Domain> collapsedDomainList = getCollapsedDomains();
+
+ List<Domain> domainstoUpd = new ArrayList<>();
+
+ // nline
+ List<Domain> collapsedDomainNewLL = getCollapsedDomainsNewList();
+
+ int colToUnCollapse = 99;
+
+ Domain domainToInsert = null;
+
+ // nline
+ if (collapsedDomainNewLL.isEmpty()) {
+ for (Map.Entry<String, Domain> unindexDomain : originalDomainRowCol.entrySet()) {
+ Domain dm = unindexDomain.getValue();
+ dm.setIndexChanged(false);
+ }
+ }
+
+ for (Map.Entry<String, Domain> entry : originalDomainRowCol.entrySet()) {
+ if (entry.getValue().getName().equals(domainToUnCollapse)) {
+ colToUnCollapse = Character.getNumericValue(entry.getKey().toCharArray()[1]);
+ domainToInsert = entry.getValue();
+ collapsedDomainList.remove(entry.getKey());
+ // nline
+ collapsedDomainNewLL.remove(entry.getValue());
+ break;
+ }
+ }
+
+ domainstoUpd.add(domainToInsert);
+
+ int lastKeyCol = -1;
+ for (Map.Entry<String, Domain> entry : originalDomainRowCol.entrySet()) {
+ int currcol = Character.getNumericValue(entry.getKey().toCharArray()[1]);
+ if (currcol < colToUnCollapse) {
+ for (Map.Entry<String, Domain> currDomainsEntry : currentDomainsSorted.entrySet()) {
+ if (currDomainsEntry.getValue().getName().equals(entry.getValue().getName())) {
+ updateDomains.put(currDomainsEntry.getKey(), currDomainsEntry.getValue());
+ lastKeyCol = Character.getNumericValue(currDomainsEntry.getKey().toCharArray()[1]);
+ break;
+ }
+ }
+ } else {
+ String newKey = "0" + String.valueOf(lastKeyCol + 1);
+ if (currcol == colToUnCollapse) {
+ updateDomains.put(newKey, domainToInsert);
+ ++lastKeyCol;
+ } else {
+ for (Map.Entry<String, Domain> currDomainsEnt : currentDomainsSorted.entrySet()) {
+ if (currDomainsEnt.getValue().getName().equals(entry.getValue().getName())) {
+ updateDomains.put(newKey, currDomainsEnt.getValue());
+ domainstoUpd.add(currDomainsEnt.getValue());
+ ++lastKeyCol;
+ break;
+ }
+ }
+ }
+
+ }
+ }
+
+ setNumberofColsofDomains(getNumberofColsofDomains() + 1);
+ setDomainRowCol(updateDomains);
+
+ double currDistFromLftMargin = 11.0;
+ for (Map.Entry<String, Domain> cd : updateDomains.entrySet()) {
+ Domain d = cd.getValue();
+ double accountPlus = accountForPlusSpaceBefore(d);
+ d.setDomainToLayoutWd(currDistFromLftMargin + accountPlus);
+ d.computeConatinerPositions();
+ for (Map.Entry<String, Container> entry1 : d.getContainerRowCol().entrySet()) {
+ Container c = entry1.getValue();
+ c.computeSize();
+ c.computeElementPositions();
+ if (c.getContainerRowCol() != null) {
+ for (Map.Entry<String, Container> entryInner : c.getContainerRowCol().entrySet()) {
+ Container inner = entryInner.getValue();
+ inner.computeElementPositions();
+ }
+ }
+ }
+ currDistFromLftMargin += d.computeSize().getWidth() + 2;
+
+ }
+
+ // nline
+ updatePlusPosition(collapsedDomainNewLL, updateDomains);
+
+ // order changed
+ setCollapsedDomains(collapsedDomainList);
+
+ // nline
+ setCollapsedDomainsNewList(collapsedDomainNewLL);
+
+ computeDomainPositionsModified();
+ return this;
+
+ }
+
+ public Layout uncollapseDomainNew1(String domainToUnCollapse) {
+
+ if (domainToUnCollapse == null || domainToUnCollapse.isEmpty())
+ return null;
+
+ Map<String, Domain> currentDomainsSorted = new TreeMap<String, Domain>(domainRowCol);
+ Map<String, Domain> updateDomains = new TreeMap<String, Domain>();
+ Map<String, Domain> collapsedDomainList = getCollapsedDomains();
+
+ List<Domain> domainstoUpd = new ArrayList<>();
+
+ // nline
+ List<Domain> collapsedDomainNewLL = getCollapsedDomainsNewList();
+
+ int colToUnCollapse = 99;
+
+ Domain domainToInsert = null;
+
+ // nline
+ if (collapsedDomainNewLL.isEmpty()) {
+ for (Map.Entry<String, Domain> unindexDomain : originalDomainRowCol.entrySet()) {
+ Domain dm = unindexDomain.getValue();
+ dm.setIndexChanged(false);
+ }
+ }
+
+ for (Map.Entry<String, Domain> entry : originalDomainRowCol.entrySet()) {
+ if (entry.getValue().getName().equals(domainToUnCollapse)) {
+ colToUnCollapse = Character.getNumericValue(entry.getKey().toCharArray()[1]);
+ domainToInsert = entry.getValue();
+ collapsedDomainList.remove(entry.getKey());
+ // nline
+ collapsedDomainNewLL.remove(entry.getValue());
+ break;
+ }
+ }
+
+ domainstoUpd.add(domainToInsert);
+
+ int lastKeyCol = -1;
+ for (Map.Entry<String, Domain> entry : originalDomainRowCol.entrySet()) {
+ int currcol = Character.getNumericValue(entry.getKey().toCharArray()[1]);
+ if (currcol < colToUnCollapse) {
+ for (Map.Entry<String, Domain> currDomainsEntry : currentDomainsSorted.entrySet()) {
+ if (currDomainsEntry.getValue().getName().equals(entry.getValue().getName())) {
+ updateDomains.put(currDomainsEntry.getKey(), currDomainsEntry.getValue());
+ lastKeyCol = Character.getNumericValue(currDomainsEntry.getKey().toCharArray()[1]);
+ break;
+ }
+ }
+ } else {
+ String newKey = "0" + String.valueOf(lastKeyCol + 1);
+ if (currcol == colToUnCollapse) {
+ updateDomains.put(newKey, domainToInsert);
+ ++lastKeyCol;
+ } else {
+ for (Map.Entry<String, Domain> currDomainsEnt : currentDomainsSorted.entrySet()) {
+ if (currDomainsEnt.getValue().getName().equals(entry.getValue().getName())) {
+ updateDomains.put(newKey, currDomainsEnt.getValue());
+ domainstoUpd.add(currDomainsEnt.getValue());
+ ++lastKeyCol;
+ break;
+ }
+ }
+ }
+
+ }
+ }
+
+ setNumberofColsofDomains(getNumberofColsofDomains() + 1);
+ setDomainRowCol(updateDomains);
+
+ double currDistFromLftM = 11.0;
+
+ boolean isDisplayed;
+ for (Map.Entry<String, Domain> orgEntry : originalDomainRowCol.entrySet()) {
+ isDisplayed = false;
+ for (Map.Entry<String, Domain> cd : updateDomains.entrySet()) {
+ if (cd.getValue().getName().equals(orgEntry.getValue().getName())) {
+ Domain d = cd.getValue();
+ d.setDomainToLayoutWd(currDistFromLftM);
+ d.computeConatinerPositions();
+ for (Map.Entry<String, Container> entry1 : d.getContainerRowCol().entrySet()) {
+ Container c = entry1.getValue();
+ c.computeSize();
+ c.computeElementPositions();
+ if (c.getContainerRowCol() != null) {
+ for (Map.Entry<String, Container> entryInner : c.getContainerRowCol().entrySet()) {
+ Container inner = entryInner.getValue();
+ inner.computeElementPositions();
+ }
+ }
+ }
+ currDistFromLftM += d.computeSize().getWidth() + 1;
+ isDisplayed = true;
+ break;
+ }
+ }
+
+ if (!isDisplayed) {
+ Domain myCollapsed = orgEntry.getValue();
+ myCollapsed.setNewXafterColl(currDistFromLftM);
+ currDistFromLftM += 4;
+ }
+ }
+
+ // order changed
+ setCollapsedDomains(collapsedDomainList);
+
+ // nline
+ setCollapsedDomainsNewList(collapsedDomainNewLL);
+
+ computeDomainPositionsModified();
+ return this;
+
+ }
+
+ private void updatePlusPosition(List<Domain> collapsedDNewL, Map<String, Domain> displayedDomainMap) {
+ List<Domain> copyCollapseList = new ArrayList<>();
+
+ for (Domain copyCollapse : collapsedDNewL) {
+ copyCollapseList.add(copyCollapse);
+ }
+
+ int orgColofCollapsed = -1;
+ int orgColofDisplayed = -1;
+ int orgColofDisplayedOtherPlus = -1;
+
+ for (Domain plus : collapsedDNewL) {
+ double distOfCollFrmLft = 0.0;
+ for (Map.Entry<String, Domain> colCheck : originalDomainRowCol.entrySet()) {
+ if (colCheck.getValue().getName().equals(plus.getName())) {
+ orgColofCollapsed = Character.getNumericValue(colCheck.getKey().toCharArray()[1]);
+ break;
+ }
+ }
+ for (Map.Entry<String, Domain> displayedEntry : displayedDomainMap.entrySet()) {
+
+ for (Map.Entry<String, Domain> colCheck1 : originalDomainRowCol.entrySet()) {
+ if (colCheck1.getValue().getName().equals(displayedEntry.getValue().getName())) {
+ orgColofDisplayed = Character.getNumericValue(colCheck1.getKey().toCharArray()[1]);
+ break;
+ }
+ }
+ if (orgColofDisplayed < orgColofCollapsed) {
+ distOfCollFrmLft += displayedEntry.getValue().computeSize().getWidth();
+ }
+
+ }
+
+ for (Domain collp : copyCollapseList) {
+ if (!collp.getName().equals(plus.getName())) {
+ for (Map.Entry<String, Domain> colCheck2 : originalDomainRowCol.entrySet()) {
+ if (colCheck2.getValue().getName().equals(collp.getName())) {
+ orgColofDisplayedOtherPlus = Character.getNumericValue(colCheck2.getKey().toCharArray()[1]);
+ break;
+ }
+ }
+ if (orgColofDisplayedOtherPlus < orgColofCollapsed) {
+ distOfCollFrmLft += 3.0;
+ }
+ }
+ }
+
+ plus.setNewXafterColl(distOfCollFrmLft + 1.5);
+
+ }
+ }
+
+ private double accountForPlusSpaceBefore(Domain d) {
+
+ int orgColofCollapsed = 0;
+ int orgColofDisplayed = 0;
+ double distFromLftM = 0.0;
+
+ for (Map.Entry<String, Domain> colCheckk : originalDomainRowCol.entrySet()) {
+ if (colCheckk.getValue().getName().equals(d.getName())) {
+ orgColofDisplayed = Character.getNumericValue(colCheckk.getKey().toCharArray()[1]);
+ break;
+ }
+ }
+
+ for (Domain collapsed : getCollapsedDomainsNewList()) {
+ for (Map.Entry<String, Domain> colCheck : originalDomainRowCol.entrySet()) {
+ if (colCheck.getValue().getName().equals(collapsed.getName())) {
+ orgColofCollapsed = Character.getNumericValue(colCheck.getKey().toCharArray()[1]);
+ break;
+ }
+ }
+
+ if (orgColofCollapsed < orgColofDisplayed) {
+ distFromLftM += 2;
+ }
+ }
+ return distFromLftM;
+
+ }
+
+}
diff --git a/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/support/NameValueId.java b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/support/NameValueId.java
new file mode 100644
index 00000000..eb1ba450
--- /dev/null
+++ b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/support/NameValueId.java
@@ -0,0 +1,105 @@
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal SDK
+ * ===================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ *
+ * Unless otherwise specified, all software contained herein is licensed
+ * under the Apache License, Version 2.0 (the "License");
+ * you may not use this software 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.
+ *
+ * Unless otherwise specified, all documentation contained herein is licensed
+ * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
+ * you may not use this documentation except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://creativecommons.org/licenses/by/4.0/
+ *
+ * Unless required by applicable law or agreed to in writing, documentation
+ * 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.portalsdk.core.domain.support;
+
+import java.io.Serializable;
+
+public class NameValueId implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+ private String lab;
+ private String val;
+
+ public NameValueId() {
+ // No-arg constructor
+ }
+
+ public NameValueId(String value, String label) {
+ setVal(value);
+ setLab(label);
+ }
+
+ public String getLab() {
+ return lab;
+ }
+
+ public String getVal() {
+ return val;
+ }
+
+ public void setLab(String label) {
+ this.lab = label;
+ }
+
+ public void setVal(String value) {
+ this.val = value;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+
+ if (o == null) {
+ return false;
+ }
+
+ if (!(o instanceof NameValueId)) {
+ return false;
+ }
+
+ final NameValueId nameValueId = (NameValueId) o;
+
+ if (!getVal().equals(nameValueId.getVal())) {
+ return false;
+ }
+
+ if (!getLab().equals(nameValueId.getLab())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ return getVal().hashCode();
+ }
+
+}
diff --git a/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/support/Position.java b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/support/Position.java
new file mode 100644
index 00000000..e19da235
--- /dev/null
+++ b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/support/Position.java
@@ -0,0 +1,60 @@
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal SDK
+ * ===================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ *
+ * Unless otherwise specified, all software contained herein is licensed
+ * under the Apache License, Version 2.0 (the "License");
+ * you may not use this software 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.
+ *
+ * Unless otherwise specified, all documentation contained herein is licensed
+ * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
+ * you may not use this documentation except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://creativecommons.org/licenses/by/4.0/
+ *
+ * Unless required by applicable law or agreed to in writing, documentation
+ * 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.portalsdk.core.domain.support;
+
+public class Position {
+ double x;
+ double y;
+
+ public double getX() {
+ return x;
+ }
+
+ public void setX(double x) {
+ this.x = x;
+ }
+
+ public double getY() {
+ return y;
+ }
+
+ public void setY(double y) {
+ this.y = y;
+ }
+
+}
diff --git a/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/support/Size.java b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/support/Size.java
new file mode 100644
index 00000000..d4c7942b
--- /dev/null
+++ b/ecomp-sdk/epsdk-domain/src/main/java/org/onap/portalsdk/core/domain/support/Size.java
@@ -0,0 +1,60 @@
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal SDK
+ * ===================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ *
+ * Unless otherwise specified, all software contained herein is licensed
+ * under the Apache License, Version 2.0 (the "License");
+ * you may not use this software 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.
+ *
+ * Unless otherwise specified, all documentation contained herein is licensed
+ * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
+ * you may not use this documentation except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://creativecommons.org/licenses/by/4.0/
+ *
+ * Unless required by applicable law or agreed to in writing, documentation
+ * 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.portalsdk.core.domain.support;
+
+public class Size {
+ private double width;
+ private double height;
+
+ public double getWidth() {
+ return width;
+ }
+
+ public void setWidth(double width) {
+ this.width = width;
+ }
+
+ public double getHeight() {
+ return height;
+ }
+
+ public void setHeight(double height) {
+ this.height = height;
+ }
+
+}