WIP in gov registry

Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/a8e5b830
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/a8e5b830
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/a8e5b830

Branch: refs/heads/airavata-gov-registry
Commit: a8e5b83072e43dd5e3f66a8285d5bdd3bcbefb76
Parents: 920f55b
Author: scnakandala <supun.nakand...@gmail.com>
Authored: Tue Sep 20 16:34:47 2016 -0400
Committer: scnakandala <supun.nakand...@gmail.com>
Committed: Tue Sep 20 16:34:47 2016 -0400

----------------------------------------------------------------------
 .../airavata-gov-registry-core/pom.xml          |    5 +
 .../gov/registry/db/entities/EntityEntity.java  |   24 +
 .../registry/db/entities/EntityTypeEntity.java  |   12 +
 .../db/entities/PermissionTypeEntity.java       |   12 +
 .../gov/registry/db/entities/UserEntity.java    |   12 +
 .../registry/db/entities/UserGroupEntity.java   |   24 +
 .../db/repositories/AbstractRepository.java     |   79 +
 .../db/repositories/UserRepository.java         |   34 +
 .../gov/registry/db/utils/Committer.java        |   27 +
 .../gov/registry/db/utils/JPAUtils.java         |   24 +-
 .../db/utils/ObjectMapperSingleton.java         |   39 +
 .../server/GovRegistryServerHandler.java        |  197 ++-
 .../src/main/resources/gov-registry.sql         |    2 -
 .../airavata-gov-registry-stubs/pom.xml         |    7 +
 .../airavata/gov/registry/models/Entitiy.java   | 1401 ------------------
 .../airavata/gov/registry/models/Entity.java    |  183 ++-
 .../thrift_models/gov_reg_models.thrift         |   13 +-
 17 files changed, 644 insertions(+), 1451 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/a8e5b830/airavata-gov-registry/airavata-gov-registry-core/pom.xml
----------------------------------------------------------------------
diff --git a/airavata-gov-registry/airavata-gov-registry-core/pom.xml 
b/airavata-gov-registry/airavata-gov-registry-core/pom.xml
index b0aac88..d986ebe 100644
--- a/airavata-gov-registry/airavata-gov-registry-core/pom.xml
+++ b/airavata-gov-registry/airavata-gov-registry-core/pom.xml
@@ -32,6 +32,11 @@
             <artifactId>airavata-commons</artifactId>
             <version>${project.version}</version>
         </dependency>
+        <dependency>
+            <groupId>net.sf.dozer</groupId>
+            <artifactId>dozer</artifactId>
+            <version>5.4.0</version>
+        </dependency>
     </dependencies>
 
 </project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8e5b830/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/EntityEntity.java
----------------------------------------------------------------------
diff --git 
a/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/EntityEntity.java
 
b/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/EntityEntity.java
index 6abed54..e472790 100644
--- 
a/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/EntityEntity.java
+++ 
b/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/EntityEntity.java
@@ -31,6 +31,8 @@ import java.util.Arrays;
 public class EntityEntity {
     private final static Logger logger = 
LoggerFactory.getLogger(EntityEntity.class);
     private String entityId;
+    private String domainId;
+    private String parentEntityId;
     private String name;
     private String description;
     private byte[] metadata;
@@ -51,6 +53,26 @@ public class EntityEntity {
     }
 
     @Basic
+    @Column(name = "DOMAIN_ID")
+    public String getDomainId() {
+        return domainId;
+    }
+
+    public void setDomainId(String domainId) {
+        this.domainId = domainId;
+    }
+
+    @Basic
+    @Column(name = "PARENT_ENTITY_ID")
+    public String getParentEntityId() {
+        return parentEntityId;
+    }
+
+    public void setParentEntityId(String parentEntityId) {
+        this.parentEntityId = parentEntityId;
+    }
+
+    @Basic
     @Column(name = "NAME")
     public String getName() {
         return name;
@@ -118,6 +140,8 @@ public class EntityEntity {
         EntityEntity that = (EntityEntity) o;
 
         if (entityId != null ? !entityId.equals(that.entityId) : that.entityId 
!= null) return false;
+        if (domainId != null ? !domainId.equals(that.domainId) : that.domainId 
!= null) return false;
+        if (parentEntityId != null ? 
!parentEntityId.equals(that.parentEntityId) : that.parentEntityId != null) 
return false;
         if (name != null ? !name.equals(that.name) : that.name != null) return 
false;
         if (description != null ? !description.equals(that.description) : 
that.description != null) return false;
         if (!Arrays.equals(metadata, that.metadata)) return false;

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8e5b830/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/EntityTypeEntity.java
----------------------------------------------------------------------
diff --git 
a/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/EntityTypeEntity.java
 
b/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/EntityTypeEntity.java
index f54eb91..63c5e2f 100644
--- 
a/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/EntityTypeEntity.java
+++ 
b/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/EntityTypeEntity.java
@@ -30,6 +30,7 @@ import javax.persistence.*;
 public class EntityTypeEntity {
     private final static Logger logger = 
LoggerFactory.getLogger(EntityTypeEntity.class);
     private String entityTypeId;
+    private String domainId;
     private String name;
     private String description;
     private String createdTime;
@@ -47,6 +48,16 @@ public class EntityTypeEntity {
     }
 
     @Basic
+    @Column(name = "DOMAIN_ID")
+    public String getDomainId() {
+        return domainId;
+    }
+
+    public void setDomainId(String domainId) {
+        this.domainId = domainId;
+    }
+
+    @Basic
     @Column(name = "NAME")
     public String getName() {
         return name;
@@ -94,6 +105,7 @@ public class EntityTypeEntity {
         EntityTypeEntity that = (EntityTypeEntity) o;
 
         if (entityTypeId != null ? !entityTypeId.equals(that.entityTypeId) : 
that.entityTypeId != null) return false;
+        if (domainId != null ? !domainId.equals(that.domainId) : that.domainId 
!= null) return false;
         if (name != null ? !name.equals(that.name) : that.name != null) return 
false;
         if (description != null ? !description.equals(that.description) : 
that.description != null) return false;
         if (createdTime != null ? !createdTime.equals(that.createdTime) : 
that.createdTime != null) return false;

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8e5b830/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/PermissionTypeEntity.java
----------------------------------------------------------------------
diff --git 
a/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/PermissionTypeEntity.java
 
b/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/PermissionTypeEntity.java
index 198bc9e..ecc37b6 100644
--- 
a/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/PermissionTypeEntity.java
+++ 
b/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/PermissionTypeEntity.java
@@ -30,6 +30,7 @@ import javax.persistence.*;
 public class PermissionTypeEntity {
     private final static Logger logger = 
LoggerFactory.getLogger(PermissionTypeEntity.class);
     private String permissionTypeId;
+    private String domainId;
     private String name;
     private String createdTime;
     private String updatedTime;
@@ -46,6 +47,16 @@ public class PermissionTypeEntity {
     }
 
     @Basic
+    @Column(name = "DOMAIN_ID")
+    public String getDomainId() {
+        return domainId;
+    }
+
+    public void setDomainId(String domainId) {
+        this.domainId = domainId;
+    }
+
+    @Basic
     @Column(name = "NAME")
     public String getName() {
         return name;
@@ -84,6 +95,7 @@ public class PermissionTypeEntity {
 
         if (permissionTypeId != null ? 
!permissionTypeId.equals(that.permissionTypeId) : that.permissionTypeId != null)
             return false;
+        if (domainId != null ? !domainId.equals(that.domainId) : that.domainId 
!= null) return false;
         if (name != null ? !name.equals(that.name) : that.name != null) return 
false;
         if (createdTime != null ? !createdTime.equals(that.createdTime) : 
that.createdTime != null) return false;
         if (updatedTime != null ? !updatedTime.equals(that.updatedTime) : 
that.updatedTime != null) return false;

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8e5b830/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/UserEntity.java
----------------------------------------------------------------------
diff --git 
a/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/UserEntity.java
 
b/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/UserEntity.java
index a19321f..d4598d5 100644
--- 
a/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/UserEntity.java
+++ 
b/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/UserEntity.java
@@ -30,6 +30,7 @@ import javax.persistence.*;
 public class UserEntity {
     private final static Logger logger = 
LoggerFactory.getLogger(UserEntity.class);
     private String userId;
+    private String domainId;
     private String userName;
     private String createdTime;
     private String updatedTime;
@@ -45,6 +46,16 @@ public class UserEntity {
         this.userId = userId;
     }
 
+    @Id
+    @Column(name = "DOMAIN_ID")
+    public String getDomainId() {
+        return domainId;
+    }
+
+    public void setDomainId(String domainId) {
+        this.domainId = domainId;
+    }
+
     @Basic
     @Column(name = "USER_NAME")
     public String getUserName() {
@@ -83,6 +94,7 @@ public class UserEntity {
         UserEntity that = (UserEntity) o;
 
         if (userId != null ? !userId.equals(that.userId) : that.userId != 
null) return false;
+        if (domainId != null ? !domainId.equals(that.domainId) : that.domainId 
!= null) return false;
         if (userName != null ? !userName.equals(that.userName) : that.userName 
!= null) return false;
         if (createdTime != null ? !createdTime.equals(that.createdTime) : 
that.createdTime != null) return false;
         if (updatedTime != null ? !updatedTime.equals(that.updatedTime) : 
that.updatedTime != null) return false;

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8e5b830/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/UserGroupEntity.java
----------------------------------------------------------------------
diff --git 
a/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/UserGroupEntity.java
 
b/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/UserGroupEntity.java
index d0a6bbb..560f171 100644
--- 
a/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/UserGroupEntity.java
+++ 
b/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/entities/UserGroupEntity.java
@@ -30,8 +30,10 @@ import javax.persistence.*;
 public class UserGroupEntity {
     private final static Logger logger = 
LoggerFactory.getLogger(UserGroupEntity.class);
     private String groupId;
+    private String domainId;
     private String name;
     private String description;
+    private String ownerId;
     private String type;
     private String createdTime;
     private String updatedTime;
@@ -48,6 +50,26 @@ public class UserGroupEntity {
         this.groupId = groupId;
     }
 
+    @Id
+    @Column(name = "DOMAIN_ID")
+    public String getDomainId() {
+        return domainId;
+    }
+
+    public void setDomainId(String domainId) {
+        this.domainId = domainId;
+    }
+
+    @Id
+    @Column(name = "OWNER_ID")
+    public String getOwnerId() {
+        return ownerId;
+    }
+
+    public void setOwnerId(String ownerId) {
+        this.ownerId = ownerId;
+    }
+
     @Basic
     @Column(name = "NAME")
     public String getName() {
@@ -106,6 +128,8 @@ public class UserGroupEntity {
         UserGroupEntity that = (UserGroupEntity) o;
 
         if (groupId != null ? !groupId.equals(that.groupId) : that.groupId != 
null) return false;
+        if (domainId != null ? !domainId.equals(that.domainId) : that.domainId 
!= null) return false;
+        if (ownerId != null ? !ownerId.equals(that.ownerId) : that.ownerId != 
null) return false;
         if (name != null ? !name.equals(that.name) : that.name != null) return 
false;
         if (description != null ? !description.equals(that.description) : 
that.description != null) return false;
         if (type != null ? !type.equals(that.type) : that.type != null) return 
false;

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8e5b830/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/repositories/AbstractRepository.java
----------------------------------------------------------------------
diff --git 
a/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/repositories/AbstractRepository.java
 
b/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/repositories/AbstractRepository.java
new file mode 100644
index 0000000..03c3b41
--- /dev/null
+++ 
b/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/repositories/AbstractRepository.java
@@ -0,0 +1,79 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+package org.apache.airavata.gov.registry.db.repositories;
+
+import org.apache.airavata.gov.registry.db.utils.JPAUtils;
+import org.apache.airavata.gov.registry.db.utils.ObjectMapperSingleton;
+import org.apache.airavata.gov.registry.models.GovRegistryException;
+import org.dozer.Mapper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public abstract class AbstractRepository<T, E, Id> {
+    private final static Logger logger = 
LoggerFactory.getLogger(AbstractRepository.class);
+
+    private Class<T> thriftGenericClass;
+    private Class<E> dbEntityGenericClass;
+
+    public AbstractRepository(Class<T> thriftGenericClass, Class<E> 
dbEntityGenericClass){
+        this.thriftGenericClass = thriftGenericClass;
+        this.dbEntityGenericClass = dbEntityGenericClass;
+    }
+
+    public T create(T t) throws GovRegistryException {
+        return update(t);
+    }
+
+    public  T update(T t) throws GovRegistryException {
+        Mapper mapper = ObjectMapperSingleton.getInstance();
+        E entity = mapper.map(t, dbEntityGenericClass);
+        E persistedCopy = JPAUtils.execute(entityManager -> 
entityManager.merge(entity));
+        return mapper.map(persistedCopy, thriftGenericClass);
+    }
+
+    public boolean delete(Id id) throws GovRegistryException {
+        JPAUtils.execute(entityManager -> {
+            E entity = entityManager.find(dbEntityGenericClass, id);
+            entityManager.remove(entity);
+            return entity;
+        });
+        return true;
+    }
+
+    public T get(Id id) throws GovRegistryException {
+        E entity = JPAUtils.execute(entityManager -> entityManager
+                .find(dbEntityGenericClass, id));
+        Mapper mapper = ObjectMapperSingleton.getInstance();
+        return mapper.map(entity, thriftGenericClass);
+    }
+
+    public List<T> select(String query, int limit, int offset) throws 
GovRegistryException {
+        List resultSet = JPAUtils.execute(entityManager -> 
entityManager.createQuery(query).setFirstResult(offset)
+                .setMaxResults(offset).getResultList());
+        Mapper mapper = ObjectMapperSingleton.getInstance();
+        List<T> gatewayList = new ArrayList<>();
+        resultSet.stream().forEach(rs -> gatewayList.add(mapper.map(rs, 
thriftGenericClass)));
+        return gatewayList;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8e5b830/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/repositories/UserRepository.java
----------------------------------------------------------------------
diff --git 
a/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/repositories/UserRepository.java
 
b/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/repositories/UserRepository.java
new file mode 100644
index 0000000..44af810
--- /dev/null
+++ 
b/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/repositories/UserRepository.java
@@ -0,0 +1,34 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+package org.apache.airavata.gov.registry.db.repositories;
+
+import org.apache.airavata.gov.registry.db.entities.UserEntity;
+import org.apache.airavata.gov.registry.models.User;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class UserRepository extends AbstractRepository<User, UserEntity, 
String> {
+    private final static Logger logger = 
LoggerFactory.getLogger(UserRepository.class);
+
+    public UserRepository(Class<User> thriftGenericClass, Class<UserEntity> 
dbEntityGenericClass) {
+        super(thriftGenericClass, dbEntityGenericClass);
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8e5b830/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/utils/Committer.java
----------------------------------------------------------------------
diff --git 
a/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/utils/Committer.java
 
b/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/utils/Committer.java
new file mode 100644
index 0000000..ae9feda
--- /dev/null
+++ 
b/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/utils/Committer.java
@@ -0,0 +1,27 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+package org.apache.airavata.gov.registry.db.utils;
+
+@FunctionalInterface
+public interface Committer<T, R>  {
+
+    R commit(T t);
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8e5b830/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/utils/JPAUtils.java
----------------------------------------------------------------------
diff --git 
a/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/utils/JPAUtils.java
 
b/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/utils/JPAUtils.java
index d94a0eb..0d8b78f 100644
--- 
a/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/utils/JPAUtils.java
+++ 
b/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/utils/JPAUtils.java
@@ -22,6 +22,7 @@ package org.apache.airavata.gov.registry.db.utils;
 
 import org.apache.airavata.common.exception.ApplicationSettingsException;
 import org.apache.airavata.common.utils.ServerSettings;
+import org.apache.airavata.gov.registry.models.GovRegistryException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -46,7 +47,7 @@ public class JPAUtils {
     @PersistenceContext(unitName = "airavata-gov-registry")
     private static EntityManager appCatEntityManager;
 
-    public static EntityManager getEntityManager() throws 
ApplicationSettingsException {
+    public static EntityManager getEntityManager() {
         if (factory == null) {
 //            String connectionProperties = "DriverClassName=" + 
readServerProperties(GOV_REG_JDBC_DRIVER) + "," +
 //                    "Url=" + readServerProperties(GOV_REG_JDBC_URL) + 
"?autoReconnect=true," +
@@ -76,12 +77,29 @@ public class JPAUtils {
         return appCatEntityManager;
     }
 
-    private static String readServerProperties(String propertyName) throws 
ApplicationSettingsException {
+    private static String readServerProperties(String propertyName) throws 
GovRegistryException {
         try {
             return ServerSettings.getSetting(propertyName);
         } catch (ApplicationSettingsException e) {
             logger.error("Unable to read airavata-server.properties...", e);
-            throw new ApplicationSettingsException("Unable to read 
airavata-server.properties...");
+            throw new GovRegistryException("Unable to read 
airavata-server.properties...");
+        }
+    }
+
+    public static <R> R execute(Committer<EntityManager, R> committer) throws 
GovRegistryException {
+        EntityManager entityManager = JPAUtils.getEntityManager();
+        try {
+            entityManager.getTransaction().begin();
+            R r = committer.commit(entityManager);
+            entityManager.getTransaction().commit();
+            return  r;
+        }finally {
+            if (entityManager != null && entityManager.isOpen()) {
+                if (entityManager.getTransaction().isActive()) {
+                    entityManager.getTransaction().rollback();
+                }
+                entityManager.close();
+            }
         }
     }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8e5b830/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/utils/ObjectMapperSingleton.java
----------------------------------------------------------------------
diff --git 
a/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/utils/ObjectMapperSingleton.java
 
b/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/utils/ObjectMapperSingleton.java
new file mode 100644
index 0000000..d6c4d4d
--- /dev/null
+++ 
b/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/db/utils/ObjectMapperSingleton.java
@@ -0,0 +1,39 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+package org.apache.airavata.gov.registry.db.utils;
+
+import org.dozer.DozerBeanMapper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class ObjectMapperSingleton extends DozerBeanMapper{
+    private final static Logger logger = 
LoggerFactory.getLogger(ObjectMapperSingleton.class);
+
+    private static ObjectMapperSingleton instance;
+
+    private ObjectMapperSingleton(){}
+
+    public static ObjectMapperSingleton getInstance(){
+        if(instance == null)
+            instance = new ObjectMapperSingleton();
+        return instance;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8e5b830/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/server/GovRegistryServerHandler.java
----------------------------------------------------------------------
diff --git 
a/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/server/GovRegistryServerHandler.java
 
b/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/server/GovRegistryServerHandler.java
index 2fdfb7e..57d9093 100644
--- 
a/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/server/GovRegistryServerHandler.java
+++ 
b/airavata-gov-registry/airavata-gov-registry-core/src/main/java/org/apache/airavata/gov/registry/server/GovRegistryServerHandler.java
@@ -20,9 +20,204 @@
 */
 package org.apache.airavata.gov.registry.server;
 
+import org.apache.airavata.gov.registry.models.*;
+import org.apache.airavata.gov.registry.service.cpi.GovRegistryService;
+import org.apache.thrift.TException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class GovRegistryServerHandler {
+import java.util.List;
+import java.util.Map;
+
+public class GovRegistryServerHandler implements GovRegistryService.Iface{
     private final static Logger logger = 
LoggerFactory.getLogger(GovRegistryServerHandler.class);
+
+    /**
+     * * Domain Operations
+     * *
+     */
+    @Override
+    public boolean createDomain(Domain domain) throws GovRegistryException, 
TException {
+        return false;
+    }
+
+    @Override
+    public boolean updateDomain(Domain domain) throws GovRegistryException, 
TException {
+        return false;
+    }
+
+    @Override
+    public boolean deleteDomain(String domainId) throws GovRegistryException, 
TException {
+        return false;
+    }
+
+    @Override
+    public Domain getDomain(String domainId) throws GovRegistryException, 
TException {
+        return null;
+    }
+
+    @Override
+    public List<Domain> getDomains(int offset, int limit) throws TException {
+        return null;
+    }
+
+    /**
+     * * User Operations
+     * *
+     */
+    @Override
+    public boolean registerUser(User user) throws GovRegistryException, 
TException {
+        return false;
+    }
+
+    @Override
+    public boolean updatedUser(User user) throws GovRegistryException, 
TException {
+        return false;
+    }
+
+    @Override
+    public boolean deleteUser(String userId) throws GovRegistryException, 
TException {
+        return false;
+    }
+
+    @Override
+    public User getUser(String userId) throws GovRegistryException, TException 
{
+        return null;
+    }
+
+    @Override
+    public List<User> getUsers(String domain, int offset, int limit) throws 
TException {
+        return null;
+    }
+
+    /**
+     * * Group Operations
+     * *
+     */
+    @Override
+    public boolean createGroup(Group group) throws GovRegistryException, 
TException {
+        return false;
+    }
+
+    @Override
+    public boolean updateGroup(Group group) throws GovRegistryException, 
TException {
+        return false;
+    }
+
+    @Override
+    public boolean deleteGroup(String groupId) throws GovRegistryException, 
TException {
+        return false;
+    }
+
+    @Override
+    public Group getGroup(String groupId) throws GovRegistryException, 
TException {
+        return null;
+    }
+
+    @Override
+    public List<Group> getGroups(String domain, int offset, int limit) throws 
TException {
+        return null;
+    }
+
+    @Override
+    public boolean addUsersToGroup(List<String> userIds, String groupId) 
throws GovRegistryException, TException {
+        return false;
+    }
+
+    @Override
+    public boolean removeUsersFromGroup(List<String> userIds, String groupId) 
throws GovRegistryException, TException {
+        return false;
+    }
+
+    @Override
+    public Map<String, GroupType> getGroupMembers(String groupId) throws 
TException {
+        return null;
+    }
+
+    /**
+     * * EntityType Operations
+     * *
+     */
+    @Override
+    public boolean createEntityType(EntityType entityType) throws 
GovRegistryException, TException {
+        return false;
+    }
+
+    @Override
+    public boolean updateEntityType(EntityType entityType) throws 
GovRegistryException, TException {
+        return false;
+    }
+
+    @Override
+    public boolean deleteEntityType(String entityTypeId) throws 
GovRegistryException, TException {
+        return false;
+    }
+
+    @Override
+    public EntityType getEntityType(String entityTypeId) throws 
GovRegistryException, TException {
+        return null;
+    }
+
+    @Override
+    public List<EntityType> getEntityTypes(String domain, int offset, int 
limit) throws TException {
+        return null;
+    }
+
+    /**
+     * * Entity Operations
+     * *
+     */
+    @Override
+    public boolean registerEntity(Entity entity) throws GovRegistryException, 
TException {
+        return false;
+    }
+
+    @Override
+    public boolean updateEntity(Entity entity) throws GovRegistryException, 
TException {
+        return false;
+    }
+
+    @Override
+    public boolean deleteEntity(String entityId) throws GovRegistryException, 
TException {
+        return false;
+    }
+
+    @Override
+    public Entity getEntity(String entityId) throws GovRegistryException, 
TException {
+        return null;
+    }
+
+    @Override
+    public List<Entity> searchEntities(String domain, String entityType, 
Map<String, String> filters, int offset, int limit) throws 
GovRegistryException, TException {
+        return null;
+    }
+
+    /**
+     * * EntityType Operations
+     * *
+     */
+    @Override
+    public boolean createPermissionType(PermissionType permisionType) throws 
GovRegistryException, TException {
+        return false;
+    }
+
+    @Override
+    public boolean updatePermissionType(PermissionType permisionType) throws 
GovRegistryException, TException {
+        return false;
+    }
+
+    @Override
+    public boolean deletePermissionType(String entityTypeId) throws 
GovRegistryException, TException {
+        return false;
+    }
+
+    @Override
+    public PermissionType getPermissionType(String permisionTypeId) throws 
GovRegistryException, TException {
+        return null;
+    }
+
+    @Override
+    public List<PermissionType> getPermissionTypes(String domain, int offset, 
int limit) throws GovRegistryException, TException {
+        return null;
+    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8e5b830/airavata-gov-registry/airavata-gov-registry-core/src/main/resources/gov-registry.sql
----------------------------------------------------------------------
diff --git 
a/airavata-gov-registry/airavata-gov-registry-core/src/main/resources/gov-registry.sql
 
b/airavata-gov-registry/airavata-gov-registry-core/src/main/resources/gov-registry.sql
index 239ecde..68e1a95 100644
--- 
a/airavata-gov-registry/airavata-gov-registry-core/src/main/resources/gov-registry.sql
+++ 
b/airavata-gov-registry/airavata-gov-registry-core/src/main/resources/gov-registry.sql
@@ -88,7 +88,6 @@ CREATE TABLE ENTITY (
   DOMAIN_ID VARCHAR(255),
   ENITY_TYPE VARCHAR(255),
   OWNER_ID VARCHAR(255),
-  PARENT_ENTITY_TYPE VARCHAR(255),
   PARENT_ENTITY_ID VARCHAR(255),
   NAME VARCHAR(255),
   DESCRIPTION VARCHAR(255),
@@ -100,7 +99,6 @@ CREATE TABLE ENTITY (
   FOREIGN KEY (DOMAIN_ID) REFERENCES DOMAIN(DOMAIN_ID),
   FOREIGN KEY (ENITY_TYPE) REFERENCES ENTITY_TYPE(ENTITY_TYPE_ID),
   FOREIGN KEY (OWNER_ID) REFERENCES USER(USER_ID),
-  FOREIGN KEY (PARENT_ENTITY_TYPE) REFERENCES ENTITY_TYPE(ENTITY_TYPE_ID),
   FOREIGN KEY (PARENT_ENTITY_ID) REFERENCES ENTITY(ENTITY_ID)
 );
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8e5b830/airavata-gov-registry/airavata-gov-registry-stubs/pom.xml
----------------------------------------------------------------------
diff --git a/airavata-gov-registry/airavata-gov-registry-stubs/pom.xml 
b/airavata-gov-registry/airavata-gov-registry-stubs/pom.xml
index 72ec866..51aab58 100644
--- a/airavata-gov-registry/airavata-gov-registry-stubs/pom.xml
+++ b/airavata-gov-registry/airavata-gov-registry-stubs/pom.xml
@@ -11,6 +11,13 @@
     <modelVersion>4.0.0</modelVersion>
 
     <artifactId>airavata-gov-registry-stubs</artifactId>
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.thrift</groupId>
+            <artifactId>libthrift</artifactId>
+            <version>0.9.3</version>
+        </dependency>
+    </dependencies>
 
 
 </project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/a8e5b830/airavata-gov-registry/airavata-gov-registry-stubs/src/main/java/org/apache/airavata/gov/registry/models/Entitiy.java
----------------------------------------------------------------------
diff --git 
a/airavata-gov-registry/airavata-gov-registry-stubs/src/main/java/org/apache/airavata/gov/registry/models/Entitiy.java
 
b/airavata-gov-registry/airavata-gov-registry-stubs/src/main/java/org/apache/airavata/gov/registry/models/Entitiy.java
deleted file mode 100644
index 9787ae7..0000000
--- 
a/airavata-gov-registry/airavata-gov-registry-stubs/src/main/java/org/apache/airavata/gov/registry/models/Entitiy.java
+++ /dev/null
@@ -1,1401 +0,0 @@
-/**
- * Autogenerated by Thrift Compiler (0.9.3)
- *
- * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
- *  @generated
- */
-package org.apache.airavata.gov.registry.models;
-
-import org.apache.thrift.scheme.IScheme;
-import org.apache.thrift.scheme.SchemeFactory;
-import org.apache.thrift.scheme.StandardScheme;
-
-import org.apache.thrift.scheme.TupleScheme;
-import org.apache.thrift.protocol.TTupleProtocol;
-import org.apache.thrift.protocol.TProtocolException;
-import org.apache.thrift.EncodingUtils;
-import org.apache.thrift.TException;
-import org.apache.thrift.async.AsyncMethodCallback;
-import org.apache.thrift.server.AbstractNonblockingServer.*;
-import java.util.List;
-import java.util.ArrayList;
-import java.util.Map;
-import java.util.HashMap;
-import java.util.EnumMap;
-import java.util.Set;
-import java.util.HashSet;
-import java.util.EnumSet;
-import java.util.Collections;
-import java.util.BitSet;
-import java.nio.ByteBuffer;
-import java.util.Arrays;
-import javax.annotation.Generated;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = 
"2016-09-19")
-public class Entitiy implements org.apache.thrift.TBase<Entitiy, 
Entitiy._Fields>, java.io.Serializable, Cloneable, Comparable<Entitiy> {
-  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("Entitiy");
-
-  private static final org.apache.thrift.protocol.TField ID_FIELD_DESC = new 
org.apache.thrift.protocol.TField("id", 
org.apache.thrift.protocol.TType.STRING, (short)1);
-  private static final org.apache.thrift.protocol.TField DOMAIN_FIELD_DESC = 
new org.apache.thrift.protocol.TField("domain", 
org.apache.thrift.protocol.TType.STRING, (short)2);
-  private static final org.apache.thrift.protocol.TField 
ENTITY_TYPE_ID_FIELD_DESC = new 
org.apache.thrift.protocol.TField("entityTypeId", 
org.apache.thrift.protocol.TType.STRING, (short)3);
-  private static final org.apache.thrift.protocol.TField OWNER_ID_FIELD_DESC = 
new org.apache.thrift.protocol.TField("ownerId", 
org.apache.thrift.protocol.TType.STRING, (short)4);
-  private static final org.apache.thrift.protocol.TField NAME_FIELD_DESC = new 
org.apache.thrift.protocol.TField("name", 
org.apache.thrift.protocol.TType.STRING, (short)5);
-  private static final org.apache.thrift.protocol.TField 
DESCRIPTION_FIELD_DESC = new org.apache.thrift.protocol.TField("description", 
org.apache.thrift.protocol.TType.STRING, (short)6);
-  private static final org.apache.thrift.protocol.TField METADATA_FIELD_DESC = 
new org.apache.thrift.protocol.TField("metadata", 
org.apache.thrift.protocol.TType.MAP, (short)7);
-  private static final org.apache.thrift.protocol.TField FULL_TEXT_FIELD_DESC 
= new org.apache.thrift.protocol.TField("fullText", 
org.apache.thrift.protocol.TType.STRING, (short)8);
-  private static final org.apache.thrift.protocol.TField 
CREATED_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("createdTime", 
org.apache.thrift.protocol.TType.I64, (short)9);
-  private static final org.apache.thrift.protocol.TField 
UPDATED_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("updatedTime", 
org.apache.thrift.protocol.TType.I64, (short)10);
-
-  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = 
new HashMap<Class<? extends IScheme>, SchemeFactory>();
-  static {
-    schemes.put(StandardScheme.class, new EntitiyStandardSchemeFactory());
-    schemes.put(TupleScheme.class, new EntitiyTupleSchemeFactory());
-  }
-
-  public String id; // optional
-  public String domain; // optional
-  public String entityTypeId; // optional
-  public String ownerId; // optional
-  public String name; // optional
-  public String description; // optional
-  public Map<String,String> metadata; // optional
-  public String fullText; // optional
-  public long createdTime; // optional
-  public long updatedTime; // optional
-
-  /** The set of fields this struct contains, along with convenience methods 
for finding and manipulating them. */
-  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
-    ID((short)1, "id"),
-    DOMAIN((short)2, "domain"),
-    ENTITY_TYPE_ID((short)3, "entityTypeId"),
-    OWNER_ID((short)4, "ownerId"),
-    NAME((short)5, "name"),
-    DESCRIPTION((short)6, "description"),
-    METADATA((short)7, "metadata"),
-    FULL_TEXT((short)8, "fullText"),
-    CREATED_TIME((short)9, "createdTime"),
-    UPDATED_TIME((short)10, "updatedTime");
-
-    private static final Map<String, _Fields> byName = new HashMap<String, 
_Fields>();
-
-    static {
-      for (_Fields field : EnumSet.allOf(_Fields.class)) {
-        byName.put(field.getFieldName(), field);
-      }
-    }
-
-    /**
-     * Find the _Fields constant that matches fieldId, or null if its not 
found.
-     */
-    public static _Fields findByThriftId(int fieldId) {
-      switch(fieldId) {
-        case 1: // ID
-          return ID;
-        case 2: // DOMAIN
-          return DOMAIN;
-        case 3: // ENTITY_TYPE_ID
-          return ENTITY_TYPE_ID;
-        case 4: // OWNER_ID
-          return OWNER_ID;
-        case 5: // NAME
-          return NAME;
-        case 6: // DESCRIPTION
-          return DESCRIPTION;
-        case 7: // METADATA
-          return METADATA;
-        case 8: // FULL_TEXT
-          return FULL_TEXT;
-        case 9: // CREATED_TIME
-          return CREATED_TIME;
-        case 10: // UPDATED_TIME
-          return UPDATED_TIME;
-        default:
-          return null;
-      }
-    }
-
-    /**
-     * Find the _Fields constant that matches fieldId, throwing an exception
-     * if it is not found.
-     */
-    public static _Fields findByThriftIdOrThrow(int fieldId) {
-      _Fields fields = findByThriftId(fieldId);
-      if (fields == null) throw new IllegalArgumentException("Field " + 
fieldId + " doesn't exist!");
-      return fields;
-    }
-
-    /**
-     * Find the _Fields constant that matches name, or null if its not found.
-     */
-    public static _Fields findByName(String name) {
-      return byName.get(name);
-    }
-
-    private final short _thriftId;
-    private final String _fieldName;
-
-    _Fields(short thriftId, String fieldName) {
-      _thriftId = thriftId;
-      _fieldName = fieldName;
-    }
-
-    public short getThriftFieldId() {
-      return _thriftId;
-    }
-
-    public String getFieldName() {
-      return _fieldName;
-    }
-  }
-
-  // isset id assignments
-  private static final int __CREATEDTIME_ISSET_ID = 0;
-  private static final int __UPDATEDTIME_ISSET_ID = 1;
-  private byte __isset_bitfield = 0;
-  private static final _Fields optionals[] = 
{_Fields.ID,_Fields.DOMAIN,_Fields.ENTITY_TYPE_ID,_Fields.OWNER_ID,_Fields.NAME,_Fields.DESCRIPTION,_Fields.METADATA,_Fields.FULL_TEXT,_Fields.CREATED_TIME,_Fields.UPDATED_TIME};
-  public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> 
metaDataMap;
-  static {
-    Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new 
EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
-    tmpMap.put(_Fields.ID, new org.apache.thrift.meta_data.FieldMetaData("id", 
org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.DOMAIN, new 
org.apache.thrift.meta_data.FieldMetaData("domain", 
org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.ENTITY_TYPE_ID, new 
org.apache.thrift.meta_data.FieldMetaData("entityTypeId", 
org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.OWNER_ID, new 
org.apache.thrift.meta_data.FieldMetaData("ownerId", 
org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.NAME, new 
org.apache.thrift.meta_data.FieldMetaData("name", 
org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.DESCRIPTION, new 
org.apache.thrift.meta_data.FieldMetaData("description", 
org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.METADATA, new 
org.apache.thrift.meta_data.FieldMetaData("metadata", 
org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new 
org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, 
-            new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING),
 
-            new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
-    tmpMap.put(_Fields.FULL_TEXT, new 
org.apache.thrift.meta_data.FieldMetaData("fullText", 
org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.CREATED_TIME, new 
org.apache.thrift.meta_data.FieldMetaData("createdTime", 
org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
-    tmpMap.put(_Fields.UPDATED_TIME, new 
org.apache.thrift.meta_data.FieldMetaData("updatedTime", 
org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
-    metaDataMap = Collections.unmodifiableMap(tmpMap);
-    
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(Entitiy.class, 
metaDataMap);
-  }
-
-  public Entitiy() {
-  }
-
-  /**
-   * Performs a deep copy on <i>other</i>.
-   */
-  public Entitiy(Entitiy other) {
-    __isset_bitfield = other.__isset_bitfield;
-    if (other.isSetId()) {
-      this.id = other.id;
-    }
-    if (other.isSetDomain()) {
-      this.domain = other.domain;
-    }
-    if (other.isSetEntityTypeId()) {
-      this.entityTypeId = other.entityTypeId;
-    }
-    if (other.isSetOwnerId()) {
-      this.ownerId = other.ownerId;
-    }
-    if (other.isSetName()) {
-      this.name = other.name;
-    }
-    if (other.isSetDescription()) {
-      this.description = other.description;
-    }
-    if (other.isSetMetadata()) {
-      Map<String,String> __this__metadata = new 
HashMap<String,String>(other.metadata);
-      this.metadata = __this__metadata;
-    }
-    if (other.isSetFullText()) {
-      this.fullText = other.fullText;
-    }
-    this.createdTime = other.createdTime;
-    this.updatedTime = other.updatedTime;
-  }
-
-  public Entitiy deepCopy() {
-    return new Entitiy(this);
-  }
-
-  @Override
-  public void clear() {
-    this.id = null;
-    this.domain = null;
-    this.entityTypeId = null;
-    this.ownerId = null;
-    this.name = null;
-    this.description = null;
-    this.metadata = null;
-    this.fullText = null;
-    setCreatedTimeIsSet(false);
-    this.createdTime = 0;
-    setUpdatedTimeIsSet(false);
-    this.updatedTime = 0;
-  }
-
-  public String getId() {
-    return this.id;
-  }
-
-  public Entitiy setId(String id) {
-    this.id = id;
-    return this;
-  }
-
-  public void unsetId() {
-    this.id = null;
-  }
-
-  /** Returns true if field id is set (has been assigned a value) and false 
otherwise */
-  public boolean isSetId() {
-    return this.id != null;
-  }
-
-  public void setIdIsSet(boolean value) {
-    if (!value) {
-      this.id = null;
-    }
-  }
-
-  public String getDomain() {
-    return this.domain;
-  }
-
-  public Entitiy setDomain(String domain) {
-    this.domain = domain;
-    return this;
-  }
-
-  public void unsetDomain() {
-    this.domain = null;
-  }
-
-  /** Returns true if field domain is set (has been assigned a value) and 
false otherwise */
-  public boolean isSetDomain() {
-    return this.domain != null;
-  }
-
-  public void setDomainIsSet(boolean value) {
-    if (!value) {
-      this.domain = null;
-    }
-  }
-
-  public String getEntityTypeId() {
-    return this.entityTypeId;
-  }
-
-  public Entitiy setEntityTypeId(String entityTypeId) {
-    this.entityTypeId = entityTypeId;
-    return this;
-  }
-
-  public void unsetEntityTypeId() {
-    this.entityTypeId = null;
-  }
-
-  /** Returns true if field entityTypeId is set (has been assigned a value) 
and false otherwise */
-  public boolean isSetEntityTypeId() {
-    return this.entityTypeId != null;
-  }
-
-  public void setEntityTypeIdIsSet(boolean value) {
-    if (!value) {
-      this.entityTypeId = null;
-    }
-  }
-
-  public String getOwnerId() {
-    return this.ownerId;
-  }
-
-  public Entitiy setOwnerId(String ownerId) {
-    this.ownerId = ownerId;
-    return this;
-  }
-
-  public void unsetOwnerId() {
-    this.ownerId = null;
-  }
-
-  /** Returns true if field ownerId is set (has been assigned a value) and 
false otherwise */
-  public boolean isSetOwnerId() {
-    return this.ownerId != null;
-  }
-
-  public void setOwnerIdIsSet(boolean value) {
-    if (!value) {
-      this.ownerId = null;
-    }
-  }
-
-  public String getName() {
-    return this.name;
-  }
-
-  public Entitiy setName(String name) {
-    this.name = name;
-    return this;
-  }
-
-  public void unsetName() {
-    this.name = null;
-  }
-
-  /** Returns true if field name is set (has been assigned a value) and false 
otherwise */
-  public boolean isSetName() {
-    return this.name != null;
-  }
-
-  public void setNameIsSet(boolean value) {
-    if (!value) {
-      this.name = null;
-    }
-  }
-
-  public String getDescription() {
-    return this.description;
-  }
-
-  public Entitiy setDescription(String description) {
-    this.description = description;
-    return this;
-  }
-
-  public void unsetDescription() {
-    this.description = null;
-  }
-
-  /** Returns true if field description is set (has been assigned a value) and 
false otherwise */
-  public boolean isSetDescription() {
-    return this.description != null;
-  }
-
-  public void setDescriptionIsSet(boolean value) {
-    if (!value) {
-      this.description = null;
-    }
-  }
-
-  public int getMetadataSize() {
-    return (this.metadata == null) ? 0 : this.metadata.size();
-  }
-
-  public void putToMetadata(String key, String val) {
-    if (this.metadata == null) {
-      this.metadata = new HashMap<String,String>();
-    }
-    this.metadata.put(key, val);
-  }
-
-  public Map<String,String> getMetadata() {
-    return this.metadata;
-  }
-
-  public Entitiy setMetadata(Map<String,String> metadata) {
-    this.metadata = metadata;
-    return this;
-  }
-
-  public void unsetMetadata() {
-    this.metadata = null;
-  }
-
-  /** Returns true if field metadata is set (has been assigned a value) and 
false otherwise */
-  public boolean isSetMetadata() {
-    return this.metadata != null;
-  }
-
-  public void setMetadataIsSet(boolean value) {
-    if (!value) {
-      this.metadata = null;
-    }
-  }
-
-  public String getFullText() {
-    return this.fullText;
-  }
-
-  public Entitiy setFullText(String fullText) {
-    this.fullText = fullText;
-    return this;
-  }
-
-  public void unsetFullText() {
-    this.fullText = null;
-  }
-
-  /** Returns true if field fullText is set (has been assigned a value) and 
false otherwise */
-  public boolean isSetFullText() {
-    return this.fullText != null;
-  }
-
-  public void setFullTextIsSet(boolean value) {
-    if (!value) {
-      this.fullText = null;
-    }
-  }
-
-  public long getCreatedTime() {
-    return this.createdTime;
-  }
-
-  public Entitiy setCreatedTime(long createdTime) {
-    this.createdTime = createdTime;
-    setCreatedTimeIsSet(true);
-    return this;
-  }
-
-  public void unsetCreatedTime() {
-    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, 
__CREATEDTIME_ISSET_ID);
-  }
-
-  /** Returns true if field createdTime is set (has been assigned a value) and 
false otherwise */
-  public boolean isSetCreatedTime() {
-    return EncodingUtils.testBit(__isset_bitfield, __CREATEDTIME_ISSET_ID);
-  }
-
-  public void setCreatedTimeIsSet(boolean value) {
-    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, 
__CREATEDTIME_ISSET_ID, value);
-  }
-
-  public long getUpdatedTime() {
-    return this.updatedTime;
-  }
-
-  public Entitiy setUpdatedTime(long updatedTime) {
-    this.updatedTime = updatedTime;
-    setUpdatedTimeIsSet(true);
-    return this;
-  }
-
-  public void unsetUpdatedTime() {
-    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, 
__UPDATEDTIME_ISSET_ID);
-  }
-
-  /** Returns true if field updatedTime is set (has been assigned a value) and 
false otherwise */
-  public boolean isSetUpdatedTime() {
-    return EncodingUtils.testBit(__isset_bitfield, __UPDATEDTIME_ISSET_ID);
-  }
-
-  public void setUpdatedTimeIsSet(boolean value) {
-    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, 
__UPDATEDTIME_ISSET_ID, value);
-  }
-
-  public void setFieldValue(_Fields field, Object value) {
-    switch (field) {
-    case ID:
-      if (value == null) {
-        unsetId();
-      } else {
-        setId((String)value);
-      }
-      break;
-
-    case DOMAIN:
-      if (value == null) {
-        unsetDomain();
-      } else {
-        setDomain((String)value);
-      }
-      break;
-
-    case ENTITY_TYPE_ID:
-      if (value == null) {
-        unsetEntityTypeId();
-      } else {
-        setEntityTypeId((String)value);
-      }
-      break;
-
-    case OWNER_ID:
-      if (value == null) {
-        unsetOwnerId();
-      } else {
-        setOwnerId((String)value);
-      }
-      break;
-
-    case NAME:
-      if (value == null) {
-        unsetName();
-      } else {
-        setName((String)value);
-      }
-      break;
-
-    case DESCRIPTION:
-      if (value == null) {
-        unsetDescription();
-      } else {
-        setDescription((String)value);
-      }
-      break;
-
-    case METADATA:
-      if (value == null) {
-        unsetMetadata();
-      } else {
-        setMetadata((Map<String,String>)value);
-      }
-      break;
-
-    case FULL_TEXT:
-      if (value == null) {
-        unsetFullText();
-      } else {
-        setFullText((String)value);
-      }
-      break;
-
-    case CREATED_TIME:
-      if (value == null) {
-        unsetCreatedTime();
-      } else {
-        setCreatedTime((Long)value);
-      }
-      break;
-
-    case UPDATED_TIME:
-      if (value == null) {
-        unsetUpdatedTime();
-      } else {
-        setUpdatedTime((Long)value);
-      }
-      break;
-
-    }
-  }
-
-  public Object getFieldValue(_Fields field) {
-    switch (field) {
-    case ID:
-      return getId();
-
-    case DOMAIN:
-      return getDomain();
-
-    case ENTITY_TYPE_ID:
-      return getEntityTypeId();
-
-    case OWNER_ID:
-      return getOwnerId();
-
-    case NAME:
-      return getName();
-
-    case DESCRIPTION:
-      return getDescription();
-
-    case METADATA:
-      return getMetadata();
-
-    case FULL_TEXT:
-      return getFullText();
-
-    case CREATED_TIME:
-      return getCreatedTime();
-
-    case UPDATED_TIME:
-      return getUpdatedTime();
-
-    }
-    throw new IllegalStateException();
-  }
-
-  /** Returns true if field corresponding to fieldID is set (has been assigned 
a value) and false otherwise */
-  public boolean isSet(_Fields field) {
-    if (field == null) {
-      throw new IllegalArgumentException();
-    }
-
-    switch (field) {
-    case ID:
-      return isSetId();
-    case DOMAIN:
-      return isSetDomain();
-    case ENTITY_TYPE_ID:
-      return isSetEntityTypeId();
-    case OWNER_ID:
-      return isSetOwnerId();
-    case NAME:
-      return isSetName();
-    case DESCRIPTION:
-      return isSetDescription();
-    case METADATA:
-      return isSetMetadata();
-    case FULL_TEXT:
-      return isSetFullText();
-    case CREATED_TIME:
-      return isSetCreatedTime();
-    case UPDATED_TIME:
-      return isSetUpdatedTime();
-    }
-    throw new IllegalStateException();
-  }
-
-  @Override
-  public boolean equals(Object that) {
-    if (that == null)
-      return false;
-    if (that instanceof Entitiy)
-      return this.equals((Entitiy)that);
-    return false;
-  }
-
-  public boolean equals(Entitiy that) {
-    if (that == null)
-      return false;
-
-    boolean this_present_id = true && this.isSetId();
-    boolean that_present_id = true && that.isSetId();
-    if (this_present_id || that_present_id) {
-      if (!(this_present_id && that_present_id))
-        return false;
-      if (!this.id.equals(that.id))
-        return false;
-    }
-
-    boolean this_present_domain = true && this.isSetDomain();
-    boolean that_present_domain = true && that.isSetDomain();
-    if (this_present_domain || that_present_domain) {
-      if (!(this_present_domain && that_present_domain))
-        return false;
-      if (!this.domain.equals(that.domain))
-        return false;
-    }
-
-    boolean this_present_entityTypeId = true && this.isSetEntityTypeId();
-    boolean that_present_entityTypeId = true && that.isSetEntityTypeId();
-    if (this_present_entityTypeId || that_present_entityTypeId) {
-      if (!(this_present_entityTypeId && that_present_entityTypeId))
-        return false;
-      if (!this.entityTypeId.equals(that.entityTypeId))
-        return false;
-    }
-
-    boolean this_present_ownerId = true && this.isSetOwnerId();
-    boolean that_present_ownerId = true && that.isSetOwnerId();
-    if (this_present_ownerId || that_present_ownerId) {
-      if (!(this_present_ownerId && that_present_ownerId))
-        return false;
-      if (!this.ownerId.equals(that.ownerId))
-        return false;
-    }
-
-    boolean this_present_name = true && this.isSetName();
-    boolean that_present_name = true && that.isSetName();
-    if (this_present_name || that_present_name) {
-      if (!(this_present_name && that_present_name))
-        return false;
-      if (!this.name.equals(that.name))
-        return false;
-    }
-
-    boolean this_present_description = true && this.isSetDescription();
-    boolean that_present_description = true && that.isSetDescription();
-    if (this_present_description || that_present_description) {
-      if (!(this_present_description && that_present_description))
-        return false;
-      if (!this.description.equals(that.description))
-        return false;
-    }
-
-    boolean this_present_metadata = true && this.isSetMetadata();
-    boolean that_present_metadata = true && that.isSetMetadata();
-    if (this_present_metadata || that_present_metadata) {
-      if (!(this_present_metadata && that_present_metadata))
-        return false;
-      if (!this.metadata.equals(that.metadata))
-        return false;
-    }
-
-    boolean this_present_fullText = true && this.isSetFullText();
-    boolean that_present_fullText = true && that.isSetFullText();
-    if (this_present_fullText || that_present_fullText) {
-      if (!(this_present_fullText && that_present_fullText))
-        return false;
-      if (!this.fullText.equals(that.fullText))
-        return false;
-    }
-
-    boolean this_present_createdTime = true && this.isSetCreatedTime();
-    boolean that_present_createdTime = true && that.isSetCreatedTime();
-    if (this_present_createdTime || that_present_createdTime) {
-      if (!(this_present_createdTime && that_present_createdTime))
-        return false;
-      if (this.createdTime != that.createdTime)
-        return false;
-    }
-
-    boolean this_present_updatedTime = true && this.isSetUpdatedTime();
-    boolean that_present_updatedTime = true && that.isSetUpdatedTime();
-    if (this_present_updatedTime || that_present_updatedTime) {
-      if (!(this_present_updatedTime && that_present_updatedTime))
-        return false;
-      if (this.updatedTime != that.updatedTime)
-        return false;
-    }
-
-    return true;
-  }
-
-  @Override
-  public int hashCode() {
-    List<Object> list = new ArrayList<Object>();
-
-    boolean present_id = true && (isSetId());
-    list.add(present_id);
-    if (present_id)
-      list.add(id);
-
-    boolean present_domain = true && (isSetDomain());
-    list.add(present_domain);
-    if (present_domain)
-      list.add(domain);
-
-    boolean present_entityTypeId = true && (isSetEntityTypeId());
-    list.add(present_entityTypeId);
-    if (present_entityTypeId)
-      list.add(entityTypeId);
-
-    boolean present_ownerId = true && (isSetOwnerId());
-    list.add(present_ownerId);
-    if (present_ownerId)
-      list.add(ownerId);
-
-    boolean present_name = true && (isSetName());
-    list.add(present_name);
-    if (present_name)
-      list.add(name);
-
-    boolean present_description = true && (isSetDescription());
-    list.add(present_description);
-    if (present_description)
-      list.add(description);
-
-    boolean present_metadata = true && (isSetMetadata());
-    list.add(present_metadata);
-    if (present_metadata)
-      list.add(metadata);
-
-    boolean present_fullText = true && (isSetFullText());
-    list.add(present_fullText);
-    if (present_fullText)
-      list.add(fullText);
-
-    boolean present_createdTime = true && (isSetCreatedTime());
-    list.add(present_createdTime);
-    if (present_createdTime)
-      list.add(createdTime);
-
-    boolean present_updatedTime = true && (isSetUpdatedTime());
-    list.add(present_updatedTime);
-    if (present_updatedTime)
-      list.add(updatedTime);
-
-    return list.hashCode();
-  }
-
-  @Override
-  public int compareTo(Entitiy other) {
-    if (!getClass().equals(other.getClass())) {
-      return getClass().getName().compareTo(other.getClass().getName());
-    }
-
-    int lastComparison = 0;
-
-    lastComparison = Boolean.valueOf(isSetId()).compareTo(other.isSetId());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetId()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.id, 
other.id);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = 
Boolean.valueOf(isSetDomain()).compareTo(other.isSetDomain());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetDomain()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.domain, 
other.domain);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = 
Boolean.valueOf(isSetEntityTypeId()).compareTo(other.isSetEntityTypeId());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetEntityTypeId()) {
-      lastComparison = 
org.apache.thrift.TBaseHelper.compareTo(this.entityTypeId, other.entityTypeId);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = 
Boolean.valueOf(isSetOwnerId()).compareTo(other.isSetOwnerId());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetOwnerId()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ownerId, 
other.ownerId);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetName()).compareTo(other.isSetName());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetName()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.name, 
other.name);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = 
Boolean.valueOf(isSetDescription()).compareTo(other.isSetDescription());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetDescription()) {
-      lastComparison = 
org.apache.thrift.TBaseHelper.compareTo(this.description, other.description);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = 
Boolean.valueOf(isSetMetadata()).compareTo(other.isSetMetadata());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetMetadata()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.metadata, 
other.metadata);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = 
Boolean.valueOf(isSetFullText()).compareTo(other.isSetFullText());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetFullText()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.fullText, 
other.fullText);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = 
Boolean.valueOf(isSetCreatedTime()).compareTo(other.isSetCreatedTime());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetCreatedTime()) {
-      lastComparison = 
org.apache.thrift.TBaseHelper.compareTo(this.createdTime, other.createdTime);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = 
Boolean.valueOf(isSetUpdatedTime()).compareTo(other.isSetUpdatedTime());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetUpdatedTime()) {
-      lastComparison = 
org.apache.thrift.TBaseHelper.compareTo(this.updatedTime, other.updatedTime);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    return 0;
-  }
-
-  public _Fields fieldForId(int fieldId) {
-    return _Fields.findByThriftId(fieldId);
-  }
-
-  public void read(org.apache.thrift.protocol.TProtocol iprot) throws 
org.apache.thrift.TException {
-    schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
-  }
-
-  public void write(org.apache.thrift.protocol.TProtocol oprot) throws 
org.apache.thrift.TException {
-    schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
-  }
-
-  @Override
-  public String toString() {
-    StringBuilder sb = new StringBuilder("Entitiy(");
-    boolean first = true;
-
-    if (isSetId()) {
-      sb.append("id:");
-      if (this.id == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.id);
-      }
-      first = false;
-    }
-    if (isSetDomain()) {
-      if (!first) sb.append(", ");
-      sb.append("domain:");
-      if (this.domain == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.domain);
-      }
-      first = false;
-    }
-    if (isSetEntityTypeId()) {
-      if (!first) sb.append(", ");
-      sb.append("entityTypeId:");
-      if (this.entityTypeId == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.entityTypeId);
-      }
-      first = false;
-    }
-    if (isSetOwnerId()) {
-      if (!first) sb.append(", ");
-      sb.append("ownerId:");
-      if (this.ownerId == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.ownerId);
-      }
-      first = false;
-    }
-    if (isSetName()) {
-      if (!first) sb.append(", ");
-      sb.append("name:");
-      if (this.name == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.name);
-      }
-      first = false;
-    }
-    if (isSetDescription()) {
-      if (!first) sb.append(", ");
-      sb.append("description:");
-      if (this.description == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.description);
-      }
-      first = false;
-    }
-    if (isSetMetadata()) {
-      if (!first) sb.append(", ");
-      sb.append("metadata:");
-      if (this.metadata == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.metadata);
-      }
-      first = false;
-    }
-    if (isSetFullText()) {
-      if (!first) sb.append(", ");
-      sb.append("fullText:");
-      if (this.fullText == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.fullText);
-      }
-      first = false;
-    }
-    if (isSetCreatedTime()) {
-      if (!first) sb.append(", ");
-      sb.append("createdTime:");
-      sb.append(this.createdTime);
-      first = false;
-    }
-    if (isSetUpdatedTime()) {
-      if (!first) sb.append(", ");
-      sb.append("updatedTime:");
-      sb.append(this.updatedTime);
-      first = false;
-    }
-    sb.append(")");
-    return sb.toString();
-  }
-
-  public void validate() throws org.apache.thrift.TException {
-    // check for required fields
-    // check for sub-struct validity
-  }
-
-  private void writeObject(java.io.ObjectOutputStream out) throws 
java.io.IOException {
-    try {
-      write(new org.apache.thrift.protocol.TCompactProtocol(new 
org.apache.thrift.transport.TIOStreamTransport(out)));
-    } catch (org.apache.thrift.TException te) {
-      throw new java.io.IOException(te);
-    }
-  }
-
-  private void readObject(java.io.ObjectInputStream in) throws 
java.io.IOException, ClassNotFoundException {
-    try {
-      // it doesn't seem like you should have to do this, but java 
serialization is wacky, and doesn't call the default constructor.
-      __isset_bitfield = 0;
-      read(new org.apache.thrift.protocol.TCompactProtocol(new 
org.apache.thrift.transport.TIOStreamTransport(in)));
-    } catch (org.apache.thrift.TException te) {
-      throw new java.io.IOException(te);
-    }
-  }
-
-  private static class EntitiyStandardSchemeFactory implements SchemeFactory {
-    public EntitiyStandardScheme getScheme() {
-      return new EntitiyStandardScheme();
-    }
-  }
-
-  private static class EntitiyStandardScheme extends StandardScheme<Entitiy> {
-
-    public void read(org.apache.thrift.protocol.TProtocol iprot, Entitiy 
struct) throws org.apache.thrift.TException {
-      org.apache.thrift.protocol.TField schemeField;
-      iprot.readStructBegin();
-      while (true)
-      {
-        schemeField = iprot.readFieldBegin();
-        if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
-          break;
-        }
-        switch (schemeField.id) {
-          case 1: // ID
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.id = iprot.readString();
-              struct.setIdIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
-            }
-            break;
-          case 2: // DOMAIN
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.domain = iprot.readString();
-              struct.setDomainIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
-            }
-            break;
-          case 3: // ENTITY_TYPE_ID
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.entityTypeId = iprot.readString();
-              struct.setEntityTypeIdIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
-            }
-            break;
-          case 4: // OWNER_ID
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.ownerId = iprot.readString();
-              struct.setOwnerIdIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
-            }
-            break;
-          case 5: // NAME
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.name = iprot.readString();
-              struct.setNameIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
-            }
-            break;
-          case 6: // DESCRIPTION
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.description = iprot.readString();
-              struct.setDescriptionIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
-            }
-            break;
-          case 7: // METADATA
-            if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
-              {
-                org.apache.thrift.protocol.TMap _map0 = iprot.readMapBegin();
-                struct.metadata = new HashMap<String,String>(2*_map0.size);
-                String _key1;
-                String _val2;
-                for (int _i3 = 0; _i3 < _map0.size; ++_i3)
-                {
-                  _key1 = iprot.readString();
-                  _val2 = iprot.readString();
-                  struct.metadata.put(_key1, _val2);
-                }
-                iprot.readMapEnd();
-              }
-              struct.setMetadataIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
-            }
-            break;
-          case 8: // FULL_TEXT
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.fullText = iprot.readString();
-              struct.setFullTextIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
-            }
-            break;
-          case 9: // CREATED_TIME
-            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
-              struct.createdTime = iprot.readI64();
-              struct.setCreatedTimeIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
-            }
-            break;
-          case 10: // UPDATED_TIME
-            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
-              struct.updatedTime = iprot.readI64();
-              struct.setUpdatedTimeIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
-            }
-            break;
-          default:
-            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
-        }
-        iprot.readFieldEnd();
-      }
-      iprot.readStructEnd();
-
-      // check for required fields of primitive type, which can't be checked 
in the validate method
-      struct.validate();
-    }
-
-    public void write(org.apache.thrift.protocol.TProtocol oprot, Entitiy 
struct) throws org.apache.thrift.TException {
-      struct.validate();
-
-      oprot.writeStructBegin(STRUCT_DESC);
-      if (struct.id != null) {
-        if (struct.isSetId()) {
-          oprot.writeFieldBegin(ID_FIELD_DESC);
-          oprot.writeString(struct.id);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.domain != null) {
-        if (struct.isSetDomain()) {
-          oprot.writeFieldBegin(DOMAIN_FIELD_DESC);
-          oprot.writeString(struct.domain);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.entityTypeId != null) {
-        if (struct.isSetEntityTypeId()) {
-          oprot.writeFieldBegin(ENTITY_TYPE_ID_FIELD_DESC);
-          oprot.writeString(struct.entityTypeId);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.ownerId != null) {
-        if (struct.isSetOwnerId()) {
-          oprot.writeFieldBegin(OWNER_ID_FIELD_DESC);
-          oprot.writeString(struct.ownerId);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.name != null) {
-        if (struct.isSetName()) {
-          oprot.writeFieldBegin(NAME_FIELD_DESC);
-          oprot.writeString(struct.name);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.description != null) {
-        if (struct.isSetDescription()) {
-          oprot.writeFieldBegin(DESCRIPTION_FIELD_DESC);
-          oprot.writeString(struct.description);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.metadata != null) {
-        if (struct.isSetMetadata()) {
-          oprot.writeFieldBegin(METADATA_FIELD_DESC);
-          {
-            oprot.writeMapBegin(new 
org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, 
org.apache.thrift.protocol.TType.STRING, struct.metadata.size()));
-            for (Map.Entry<String, String> _iter4 : struct.metadata.entrySet())
-            {
-              oprot.writeString(_iter4.getKey());
-              oprot.writeString(_iter4.getValue());
-            }
-            oprot.writeMapEnd();
-          }
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.fullText != null) {
-        if (struct.isSetFullText()) {
-          oprot.writeFieldBegin(FULL_TEXT_FIELD_DESC);
-          oprot.writeString(struct.fullText);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.isSetCreatedTime()) {
-        oprot.writeFieldBegin(CREATED_TIME_FIELD_DESC);
-        oprot.writeI64(struct.createdTime);
-        oprot.writeFieldEnd();
-      }
-      if (struct.isSetUpdatedTime()) {
-        oprot.writeFieldBegin(UPDATED_TIME_FIELD_DESC);
-        oprot.writeI64(struct.updatedTime);
-        oprot.writeFieldEnd();
-      }
-      oprot.writeFieldStop();
-      oprot.writeStructEnd();
-    }
-
-  }
-
-  private static class EntitiyTupleSchemeFactory implements SchemeFactory {
-    public EntitiyTupleScheme getScheme() {
-      return new EntitiyTupleScheme();
-    }
-  }
-
-  private static class EntitiyTupleScheme extends TupleScheme<Entitiy> {
-
-    @Override
-    public void write(org.apache.thrift.protocol.TProtocol prot, Entitiy 
struct) throws org.apache.thrift.TException {
-      TTupleProtocol oprot = (TTupleProtocol) prot;
-      BitSet optionals = new BitSet();
-      if (struct.isSetId()) {
-        optionals.set(0);
-      }
-      if (struct.isSetDomain()) {
-        optionals.set(1);
-      }
-      if (struct.isSetEntityTypeId()) {
-        optionals.set(2);
-      }
-      if (struct.isSetOwnerId()) {
-        optionals.set(3);
-      }
-      if (struct.isSetName()) {
-        optionals.set(4);
-      }
-      if (struct.isSetDescription()) {
-        optionals.set(5);
-      }
-      if (struct.isSetMetadata()) {
-        optionals.set(6);
-      }
-      if (struct.isSetFullText()) {
-        optionals.set(7);
-      }
-      if (struct.isSetCreatedTime()) {
-        optionals.set(8);
-      }
-      if (struct.isSetUpdatedTime()) {
-        optionals.set(9);
-      }
-      oprot.writeBitSet(optionals, 10);
-      if (struct.isSetId()) {
-        oprot.writeString(struct.id);
-      }
-      if (struct.isSetDomain()) {
-        oprot.writeString(struct.domain);
-      }
-      if (struct.isSetEntityTypeId()) {
-        oprot.writeString(struct.entityTypeId);
-      }
-      if (struct.isSetOwnerId()) {
-        oprot.writeString(struct.ownerId);
-      }
-      if (struct.isSetName()) {
-        oprot.writeString(struct.name);
-      }
-      if (struct.isSetDescription()) {
-        oprot.writeString(struct.description);
-      }
-      if (struct.isSetMetadata()) {
-        {
-          oprot.writeI32(struct.metadata.size());
-          for (Map.Entry<String, String> _iter5 : struct.metadata.entrySet())
-          {
-            oprot.writeString(_iter5.getKey());
-            oprot.writeString(_iter5.getValue());
-          }
-        }
-      }
-      if (struct.isSetFullText()) {
-        oprot.writeString(struct.fullText);
-      }
-      if (struct.isSetCreatedTime()) {
-        oprot.writeI64(struct.createdTime);
-      }
-      if (struct.isSetUpdatedTime()) {
-        oprot.writeI64(struct.updatedTime);
-      }
-    }
-
-    @Override
-    public void read(org.apache.thrift.protocol.TProtocol prot, Entitiy 
struct) throws org.apache.thrift.TException {
-      TTupleProtocol iprot = (TTupleProtocol) prot;
-      BitSet incoming = iprot.readBitSet(10);
-      if (incoming.get(0)) {
-        struct.id = iprot.readString();
-        struct.setIdIsSet(true);
-      }
-      if (incoming.get(1)) {
-        struct.domain = iprot.readString();
-        struct.setDomainIsSet(true);
-      }
-      if (incoming.get(2)) {
-        struct.entityTypeId = iprot.readString();
-        struct.setEntityTypeIdIsSet(true);
-      }
-      if (incoming.get(3)) {
-        struct.ownerId = iprot.readString();
-        struct.setOwnerIdIsSet(true);
-      }
-      if (incoming.get(4)) {
-        struct.name = iprot.readString();
-        struct.setNameIsSet(true);
-      }
-      if (incoming.get(5)) {
-        struct.description = iprot.readString();
-        struct.setDescriptionIsSet(true);
-      }
-      if (incoming.get(6)) {
-        {
-          org.apache.thrift.protocol.TMap _map6 = new 
org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, 
org.apache.thrift.protocol.TType.STRING, iprot.readI32());
-          struct.metadata = new HashMap<String,String>(2*_map6.size);
-          String _key7;
-          String _val8;
-          for (int _i9 = 0; _i9 < _map6.size; ++_i9)
-          {
-            _key7 = iprot.readString();
-            _val8 = iprot.readString();
-            struct.metadata.put(_key7, _val8);
-          }
-        }
-        struct.setMetadataIsSet(true);
-      }
-      if (incoming.get(7)) {
-        struct.fullText = iprot.readString();
-        struct.setFullTextIsSet(true);
-      }
-      if (incoming.get(8)) {
-        struct.createdTime = iprot.readI64();
-        struct.setCreatedTimeIsSet(true);
-      }
-      if (incoming.get(9)) {
-        struct.updatedTime = iprot.readI64();
-        struct.setUpdatedTimeIsSet(true);
-      }
-    }
-  }
-
-}
-

Reply via email to