svn commit: r746337 - /ofbiz/trunk/applications/content/src/org/ofbiz/content/ConvertTree.java

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r746337 - /ofbiz/trunk/applications/content/src/org/ofbiz/content/ConvertTree.java

mrisaliti
Author: mrisaliti
Date: Fri Feb 20 18:54:49 2009
New Revision: 746337

URL: http://svn.apache.org/viewvc?rev=746337&view=rev
Log:
Fix wrong package name of ConvertTree java class and changes tabs to 4 spaces.

Modified:
    ofbiz/trunk/applications/content/src/org/ofbiz/content/ConvertTree.java

Modified: ofbiz/trunk/applications/content/src/org/ofbiz/content/ConvertTree.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/content/src/org/ofbiz/content/ConvertTree.java?rev=746337&r1=746336&r2=746337&view=diff
==============================================================================
--- ofbiz/trunk/applications/content/src/org/ofbiz/content/ConvertTree.java (original)
+++ ofbiz/trunk/applications/content/src/org/ofbiz/content/ConvertTree.java Fri Feb 20 18:54:49 2009
@@ -16,9 +16,11 @@
  * specific language governing permissions and limitations
  * under the License.
  *******************************************************************************/
-package org.ofbiz.content.tree;
+package org.ofbiz.content;
 
-import java.io.*;
+import java.io.BufferedReader;
+import java.io.FileReader;
+import java.io.IOException;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
@@ -38,7 +40,7 @@
 import org.ofbiz.service.ServiceUtil;
 
 public class ConvertTree{
- public static final String module = ConvertTree.class.getName();
+    public static final String module = ConvertTree.class.getName();
 
 /*
 
@@ -52,352 +54,352 @@
 In order ta make this service active add the following to the service definition file:
 
 <service name="convertTree"  auth="true" engine="java" invoke="convertTree" transaction-timeout="3600"
- location="org.ofbiz.content.tree.ConvertTree">
- <description>Convert DOS tree output to ContentAssoc tree.</description>
- <attribute name="file" type="String" mode="IN" optional="false"/>
+                 location="org.ofbiz.content.tree.ConvertTree">
+    <description>Convert DOS tree output to ContentAssoc tree.</description>
+    <attribute name="file" type="String" mode="IN" optional="false"/>
 </service>
 
 
 */
 
 
- public static  Map<String, Object> convertTree(DispatchContext dctx, Map context) {
- GenericDelegator delegator = dctx.getDelegator();
- LocalDispatcher dispatcher = dctx.getDispatcher();
- GenericValue userLogin = (GenericValue) context.get("userLogin");
- String file = (String) context.get("file");
- String errMsg = "", sucMsg= "";
- GenericValue Entity = null;
- try {
- BufferedReader input = null;
- try{
- if(!UtilValidate.isEmpty(file)){
- input = new BufferedReader( new FileReader(file));
- String line = null;
- int size=0;
- if(file != null){
- int counterLine=0;
- //Home Document
-         Entity = null;
- Entity = delegator.makeValue("Content");
- Entity.set("contentId", "ROOT");
- Entity.set("contentName", "ROOT");
- Entity.set("contentTypeId", "DOCUMENT");
- Entity.set("createdByUserLogin", userLogin.get("userLoginId"));
- Entity.set("lastModifiedByUserLogin", userLogin.get("userLoginId"));
- Entity.set("createdDate", UtilDateTime.nowTimestamp());
- Entity.set("lastUpdatedStamp",UtilDateTime.nowTimestamp());
- Entity.set("lastUpdatedTxStamp",UtilDateTime.nowTimestamp());
- Entity.set("createdStamp",UtilDateTime.nowTimestamp());
- Entity.set("createdTxStamp",UtilDateTime.nowTimestamp());
- delegator.create(Entity);
-
-         Entity = null;
- Entity = delegator.makeValue("Content");
- Entity.set("contentId", "HOME_DUCUMENT");
- Entity.set("contentName", "Home");
- Entity.set("contentTypeId", "DOCUMENT");
- Entity.set("createdByUserLogin", userLogin.get("userLoginId"));
- Entity.set("lastModifiedByUserLogin", userLogin.get("userLoginId"));
- Entity.set("createdDate", UtilDateTime.nowTimestamp());
- Entity.set("lastUpdatedStamp",UtilDateTime.nowTimestamp());
- Entity.set("lastUpdatedTxStamp",UtilDateTime.nowTimestamp());
- Entity.set("createdStamp",UtilDateTime.nowTimestamp());
- Entity.set("createdTxStamp",UtilDateTime.nowTimestamp());
- delegator.create(Entity);
-
-         Map<String, Object> contentAssoc = FastMap.newInstance();
-         contentAssoc.put("contentId", "HOME_DUCUMENT");
-         contentAssoc.put("contentAssocTypeId", "TREE_CHILD");
-         contentAssoc.put("contentIdTo", "ROOT");
-         contentAssoc.put("userLogin", userLogin);
-         dispatcher.runSync("createContentAssoc", contentAssoc);
-         int recordCount = 0;
-         while (( line = input.readLine()) != null){//start line
-         boolean hasFolder=true;
-     String
-     rootContent=null,
-     contentId = null;
- counterLine++;
- if(counterLine>1){
-        size = line.length();
-        String
-        check = "\\",
-        checkSubContent = ",",
-        contentName = "",
-        contentNameInprogress = "",
-        data = line.substring(3,size);
-        //Debug.log("======Data======"+data);
-        size = data.length();
-        List<GenericValue> contents = null;
-        
-        for(int index = 0; index< size; index++){//start character in line
-         boolean contentNameMatch = false;
-         int contentAssocSize=0;
-         List<GenericValue> contentAssocs = null;
-         if (data.charAt(index) == check.charAt(0)||data.charAt(index)== checkSubContent.charAt(0)) {//store data
-         contentName = contentName + contentNameInprogress;
-         if(contentName.length()>100){
-         contentName = contentName.substring(0,100);
-         }
-         //check duplicate folder
-         contents = delegator.findByAnd("Content", UtilMisc.toMap("contentName",contentName));
-         if(contents.size() > 0){
-         GenericValue contentResult = contents.get(0);
-         contentId = contentResult.get("contentId").toString();
-         }
-         if(contents.size() > 0 && hasFolder==true){
-         GenericValue contentResult = contents.get(0);
-             contentId = contentResult.get("contentId").toString();
-             if(rootContent != null){
-             contentAssocs= delegator.findByAnd("ContentAssoc", UtilMisc.toMap("contentId",contentId, "contentIdTo", rootContent));
-             List<GenericValue> contentAssocCheck= delegator.findByAnd("ContentAssoc", UtilMisc.toMap("contentIdTo", rootContent));
-             Iterator<GenericValue> contentAssChecks = contentAssocCheck.iterator();
-             while(contentAssChecks.hasNext() && contentNameMatch == false){
-             GenericValue contentAss = contentAssChecks.next();
-             GenericValue contentcheck = delegator.findByPrimaryKey("Content",UtilMisc.toMap("contentId",contentAss.get("contentId")));
-             if(contentcheck!=null){
-             if(contentcheck.get("contentName").equals(contentName) && contentNameMatch==false){
-             contentNameMatch = true;
-             contentId = contentcheck.get("contentId").toString();
-             }
-             }
-             }
-             }else{
-             rootContent = "HOME_DUCUMENT";
-             contentAssocs= delegator.findByAnd("ContentAssoc", UtilMisc.toMap("contentId",contentId, "contentIdTo", rootContent));
-            
-             }
-         contentAssocSize=contentAssocs.size();
-         }
-        
-         if( contentAssocSize == 0 && contentNameMatch==false){//New Root Content
-         Entity = null;
-         contentId = delegator.getNextSeqId("Content");
- Entity = delegator.makeValue("Content");
- Entity.set("contentId", contentId);
- Entity.set("contentName", contentName);
- Entity.set("contentTypeId", "DOCUMENT");
- Entity.set("createdByUserLogin", userLogin.get("userLoginId"));
- Entity.set("lastModifiedByUserLogin", userLogin.get("userLoginId"));
- Entity.set("createdDate", UtilDateTime.nowTimestamp());
- Entity.set("lastUpdatedStamp",UtilDateTime.nowTimestamp());
- Entity.set("lastUpdatedTxStamp",UtilDateTime.nowTimestamp());
- Entity.set("createdStamp",UtilDateTime.nowTimestamp());
- Entity.set("createdTxStamp",UtilDateTime.nowTimestamp());
- delegator.create(Entity);
- hasFolder = false;
-            }else{
-             //Debug.log("Content Name = [ "+contentId+"] already exist.");//ShoW log file
-             hasFolder = true;
-            }
-         //Relation Content
-         if(rootContent==null){
-         rootContent = "HOME_DUCUMENT";
-         }
-         contentAssocs = delegator.findByAnd("ContentAssoc",
-         UtilMisc.toMap("contentId",contentId,"contentIdTo",rootContent,"contentAssocTypeId","TREE_CHILD"));
-         if(contentAssocs.size()==0){
-         contentAssoc = FastMap.newInstance();
-         contentAssoc.put("contentId", contentId);
-         contentAssoc.put("contentAssocTypeId", "TREE_CHILD");
-         contentAssoc.put("contentIdTo", rootContent);
-         contentAssoc.put("userLogin", userLogin);
-         dispatcher.runSync("createContentAssoc", contentAssoc);
-         rootContent=contentId;
-         }else{
-         //Debug.log("ContentAssoc [contentId= "+contentId+",contentIdTo="+rootContent+"] already exist.");//ShoW log file
-         rootContent=contentId;
-         }
-         contentName = "";
-         contentNameInprogress="";
-         }
-         if(data.charAt(index)== checkSubContent.charAt(0)){//Have sub content
-         createSubContent(index, data, rootContent, context, dctx);
-         index=size;
-         continue;
-         }
-             if((data.charAt(index))!= check.charAt(0)){
-             contentNameInprogress = contentNameInprogress.concat(Character.toString(data.charAt(index)));
-             if(contentNameInprogress.length()>99){
-             contentName = contentName + contentNameInprogress;
-             contentNameInprogress="";
-             }
-             }
-        }//end character in line
-        recordCount++;
- }
- }//end line
-  sucMsg = "Convert Documents Tree Successful.<br/>Total : "+counterLine+" rows";
- }
- }
- }
- finally {
- input.close();
- }
- return ServiceUtil.returnSuccess(sucMsg);
- }catch(IOException e){
- errMsg = "IOException "+ UtilMisc.toMap("errMessage", e.toString());
- Debug.logError(e, errMsg, module);
- return ServiceUtil.returnError(errMsg);
- }catch(GenericServiceException e){
-     errMsg = "GenericServiceException "+ UtilMisc.toMap("errMessage", e.toString());
- Debug.logError(e, errMsg, module);
- return ServiceUtil.returnError(errMsg);
- }catch(GenericEntityException e){
- errMsg = "GenericEntityException "+ UtilMisc.toMap("errMessage", e.toString());
-   Debug.logError(e, errMsg, module);
-   e.printStackTrace();
-   return ServiceUtil.returnError(errMsg);
-   }
- }
-
- public static  Map<String,Object> createSubContent(int index,String line,String rootContent, Map context, DispatchContext dctx) {
- GenericDelegator delegator = dctx.getDelegator();
- LocalDispatcher dispatcher = dctx.getDispatcher();
- GenericValue userLogin = (GenericValue) context.get("userLogin");
- String
- subContents=null,
- check = ",",
- oldChar = "\"",
- newChar = "",
- contentNameInprogress = "",
- contentName = "",
- contentId =null;
- GenericValue Entity = null;
- String errMsg = "", sucMsg= "";
- subContents = line.substring(index+1, line.length());
- subContents = subContents.replace(oldChar, newChar);
- int size = subContents.length();
- try{
- for(index = 0; index < size; index++){//start character in line
- boolean contentNameMatch = false;
- if (subContents.charAt(index) == check.charAt(0)) {//store data
-         contentName = contentName + contentNameInprogress;
-         //Debug.log("subcontentName---->"+contentName);
-         if(contentName.length()>100){
-         contentName = contentName.substring(0,100);
-         }
-         List<GenericValue> contents = delegator.findByAnd("Content", UtilMisc.toMap("contentName",contentName),null,"-contentId");
-         if(contents!=null){
-         Iterator<GenericValue> contentCheck = contents.iterator();
-         while(contentCheck.hasNext() && contentNameMatch==false){
-         GenericValue contentch = contentCheck.next();
-         if(contentch!=null){
-         List<GenericValue> contentAssocsChecks = delegator.findByAnd("ContentAssoc", UtilMisc.toMap("contentId",contentch.get("contentId"), "contentIdTo", rootContent));
-         if(contentAssocsChecks.size() > 0){
-         contentNameMatch = true;
-         }
-         }
-         }
-         }
-         contentId = null;
-         if(contentNameMatch==false){
-         //create DataResource
-         Map<String,Object> data = FastMap.newInstance();
-         data.put("userLogin", userLogin);
-         String dataResourceId = (dispatcher.runSync("createDataResource",data)).get("dataResourceId").toString();
-         //Debug.log("==dataResourceId"+dataResourceId);
-
-         //create Content
-         contentId = delegator.getNextSeqId("Content");
-         Entity = null;
- Entity = delegator.makeValue("Content");
- Entity.set("contentId", contentId);
- Entity.set("contentName", contentName);
- Entity.set("contentTypeId", "DOCUMENT");
- Entity.set("dataResourceId", dataResourceId);
- Entity.set("createdByUserLogin", userLogin.get("userLoginId"));
- Entity.set("lastModifiedByUserLogin", userLogin.get("userLoginId"));
- Entity.set("createdDate", UtilDateTime.nowTimestamp());
- Entity.set("lastUpdatedStamp",UtilDateTime.nowTimestamp());
- Entity.set("lastUpdatedTxStamp",UtilDateTime.nowTimestamp());
- Entity.set("createdStamp",UtilDateTime.nowTimestamp());
- Entity.set("createdTxStamp",UtilDateTime.nowTimestamp());
- delegator.create(Entity);
-
-         //Relation Content
-        Map<String,Object> contentAssoc = FastMap.newInstance();
-        contentAssoc.put("contentId", contentId);
-        contentAssoc.put("contentAssocTypeId", "SUB_CONTENT");
-        contentAssoc.put("contentIdTo", rootContent);
-        contentAssoc.put("userLogin", userLogin);
-        dispatcher.runSync("createContentAssoc", contentAssoc);
-         }
- contentName ="";
- contentNameInprogress="";
- }
-
-           if((subContents.charAt(index))!= check.charAt(0)){
-           contentNameInprogress = contentNameInprogress.concat(Character.toString(subContents.charAt(index)));
-           if(contentNameInprogress.length() > 99){
-           contentName = contentName + contentNameInprogress;
-           contentNameInprogress="";
-           }
-           }
-           //lastItem
-           if(index==size-1){
-           contentNameMatch = false;
-         List<GenericValue> contents = delegator.findByAnd("Content", UtilMisc.toMap("contentName",contentName));
-         if(contents!=null){
-         Iterator<GenericValue> contentCheck = contents.iterator();
-         while(contentCheck.hasNext() && contentNameMatch==false){
-         GenericValue contentch = contentCheck.next();
-         if(contentch!=null){
-         List<GenericValue> contentAssocsChecks = delegator.findByAnd("ContentAssoc", UtilMisc.toMap("contentId",contentch.get("contentId"), "contentIdTo", rootContent));
-         if(contentAssocsChecks.size() > 0){
-         contentNameMatch = true;
-         }
-         }
-         }
-         }
-         contentId = null;
-         if(contentNameMatch == false){
-         //create DataResource
-         Map<String,Object> data = FastMap.newInstance();
-         data.put("userLogin", userLogin);
-         String dataResourceId = (dispatcher.runSync("createDataResource",data)).get("dataResourceId").toString();
-         //Debug.log("==dataResourceId"+dataResourceId);
-
-         //create Content
-         contentId = delegator.getNextSeqId("Content");
-         Entity = null;
- Entity = delegator.makeValue("Content");
- Entity.set("contentId", contentId);
- Entity.set("contentName", contentName);
- Entity.set("contentTypeId", "DOCUMENT");
- Entity.set("dataResourceId", dataResourceId);
- Entity.set("createdByUserLogin", userLogin.get("userLoginId"));
- Entity.set("lastModifiedByUserLogin", userLogin.get("userLoginId"));
- Entity.set("createdDate", UtilDateTime.nowTimestamp());
- Entity.set("lastUpdatedStamp",UtilDateTime.nowTimestamp());
- Entity.set("lastUpdatedTxStamp",UtilDateTime.nowTimestamp());
- Entity.set("createdStamp",UtilDateTime.nowTimestamp());
- Entity.set("createdTxStamp",UtilDateTime.nowTimestamp());
- delegator.create(Entity);
-
-         //create ContentAssoc
-        Map<String,Object> contentAssoc = FastMap.newInstance();
-        contentAssoc.put("contentId", contentId);
-        contentAssoc.put("contentAssocTypeId", "SUB_CONTENT");
-        contentAssoc.put("contentIdTo", rootContent);
-        contentAssoc.put("userLogin", userLogin);
-        dispatcher.runSync("createContentAssoc", contentAssoc);
-         }
-           }
-
- }
- return ServiceUtil.returnSuccess(sucMsg);
- }catch(GenericEntityException e){
- errMsg = "GenericEntityException "+ UtilMisc.toMap("errMessage", e.toString());
- Debug.logError(e, errMsg, module);
- e.printStackTrace();
- return ServiceUtil.returnError(errMsg);
- }catch(GenericServiceException e){
- errMsg = "GenericServiceException"+ UtilMisc.toMap("errMessage", e.toString());
- Debug.logError(e, errMsg, module);
- e.printStackTrace();
- return ServiceUtil.returnError(errMsg);
- }
- }
+    public static  Map<String, Object> convertTree(DispatchContext dctx, Map context) {
+        GenericDelegator delegator = dctx.getDelegator();
+        LocalDispatcher dispatcher = dctx.getDispatcher();
+        GenericValue userLogin = (GenericValue) context.get("userLogin");
+        String file = (String) context.get("file");
+        String errMsg = "", sucMsg= "";
+        GenericValue Entity = null;
+         try {
+             BufferedReader input = null;
+             try{
+                 if(!UtilValidate.isEmpty(file)){
+                     input = new BufferedReader( new FileReader(file));
+                     String line = null;
+                     int size=0;
+                     if(file != null){
+                        int counterLine=0;
+                        //Home Document
+                        Entity = null;
+                        Entity = delegator.makeValue("Content");
+                        Entity.set("contentId", "ROOT");
+                        Entity.set("contentName", "ROOT");
+                        Entity.set("contentTypeId", "DOCUMENT");
+                        Entity.set("createdByUserLogin", userLogin.get("userLoginId"));
+                        Entity.set("lastModifiedByUserLogin", userLogin.get("userLoginId"));
+                        Entity.set("createdDate", UtilDateTime.nowTimestamp());
+                        Entity.set("lastUpdatedStamp",UtilDateTime.nowTimestamp());
+                        Entity.set("lastUpdatedTxStamp",UtilDateTime.nowTimestamp());
+                        Entity.set("createdStamp",UtilDateTime.nowTimestamp());
+                        Entity.set("createdTxStamp",UtilDateTime.nowTimestamp());
+                        delegator.create(Entity);
+                        
+                        Entity = null;
+                        Entity = delegator.makeValue("Content");
+                        Entity.set("contentId", "HOME_DUCUMENT");
+                        Entity.set("contentName", "Home");
+                        Entity.set("contentTypeId", "DOCUMENT");
+                        Entity.set("createdByUserLogin", userLogin.get("userLoginId"));
+                        Entity.set("lastModifiedByUserLogin", userLogin.get("userLoginId"));
+                        Entity.set("createdDate", UtilDateTime.nowTimestamp());
+                        Entity.set("lastUpdatedStamp",UtilDateTime.nowTimestamp());
+                        Entity.set("lastUpdatedTxStamp",UtilDateTime.nowTimestamp());
+                        Entity.set("createdStamp",UtilDateTime.nowTimestamp());
+                        Entity.set("createdTxStamp",UtilDateTime.nowTimestamp());
+                        delegator.create(Entity);
+
+                        Map<String, Object> contentAssoc = FastMap.newInstance();
+                        contentAssoc.put("contentId", "HOME_DUCUMENT");
+                        contentAssoc.put("contentAssocTypeId", "TREE_CHILD");
+                        contentAssoc.put("contentIdTo", "ROOT");
+                        contentAssoc.put("userLogin", userLogin);
+                        dispatcher.runSync("createContentAssoc", contentAssoc);
+                        int recordCount = 0;
+                        while (( line = input.readLine()) != null){//start line
+                             boolean hasFolder=true;
+                             String
+                             rootContent=null,
+                             contentId = null;
+                             counterLine++;
+                             if(counterLine>1){
+                                size = line.length();
+                                String
+                                check = "\\",
+                                checkSubContent = ",",
+                                contentName = "",
+                                contentNameInprogress = "",
+                                data = line.substring(3,size);
+                                //Debug.log("======Data======"+data);
+                                size = data.length();
+                                List<GenericValue> contents = null;
+                                
+                                for(int index = 0; index< size; index++){//start character in line
+                                    boolean contentNameMatch = false;
+                                    int contentAssocSize=0;
+                                    List<GenericValue> contentAssocs = null;
+                                    if (data.charAt(index) == check.charAt(0)||data.charAt(index)== checkSubContent.charAt(0)) {//store data
+                                        contentName = contentName + contentNameInprogress;
+                                        if(contentName.length()>100){
+                                            contentName = contentName.substring(0,100);
+                                        }
+                                        //check duplicate folder
+                                        contents = delegator.findByAnd("Content", UtilMisc.toMap("contentName",contentName));
+                                        if(contents.size() > 0){
+                                            GenericValue contentResult = contents.get(0);
+                                            contentId = contentResult.get("contentId").toString();
+                                        }
+                                        if(contents.size() > 0 && hasFolder==true){
+                                            GenericValue contentResult = contents.get(0);
+                                            contentId = contentResult.get("contentId").toString();
+                                            if(rootContent != null){
+                                                contentAssocs= delegator.findByAnd("ContentAssoc", UtilMisc.toMap("contentId",contentId, "contentIdTo", rootContent));
+                                                List<GenericValue> contentAssocCheck= delegator.findByAnd("ContentAssoc", UtilMisc.toMap("contentIdTo", rootContent));
+                                                Iterator<GenericValue> contentAssChecks = contentAssocCheck.iterator();
+                                                while(contentAssChecks.hasNext() && contentNameMatch == false){
+                                                     GenericValue contentAss = contentAssChecks.next();
+                                                     GenericValue contentcheck = delegator.findByPrimaryKey("Content",UtilMisc.toMap("contentId",contentAss.get("contentId")));
+                                                     if(contentcheck!=null){
+                                                         if(contentcheck.get("contentName").equals(contentName) && contentNameMatch==false){
+                                                             contentNameMatch = true;
+                                                             contentId = contentcheck.get("contentId").toString();
+                                                         }
+                                                     }
+                                                }
+                                            }else{
+                                                rootContent = "HOME_DUCUMENT";
+                                                contentAssocs= delegator.findByAnd("ContentAssoc", UtilMisc.toMap("contentId",contentId, "contentIdTo", rootContent));
+                                                
+                                            }
+                                            contentAssocSize=contentAssocs.size();
+                                        }
+                                        
+                                        if( contentAssocSize == 0 && contentNameMatch==false){//New Root Content
+                                            Entity = null;
+                                            contentId = delegator.getNextSeqId("Content");
+                                            Entity = delegator.makeValue("Content");
+                                            Entity.set("contentId", contentId);
+                                            Entity.set("contentName", contentName);
+                                            Entity.set("contentTypeId", "DOCUMENT");
+                                            Entity.set("createdByUserLogin", userLogin.get("userLoginId"));
+                                            Entity.set("lastModifiedByUserLogin", userLogin.get("userLoginId"));
+                                            Entity.set("createdDate", UtilDateTime.nowTimestamp());
+                                            Entity.set("lastUpdatedStamp",UtilDateTime.nowTimestamp());
+                                            Entity.set("lastUpdatedTxStamp",UtilDateTime.nowTimestamp());
+                                            Entity.set("createdStamp",UtilDateTime.nowTimestamp());
+                                            Entity.set("createdTxStamp",UtilDateTime.nowTimestamp());
+                                            delegator.create(Entity);
+                                            hasFolder = false;
+                                        }else{
+                                            //Debug.log("Content Name = [ "+contentId+"] already exist.");//ShoW log file
+                                            hasFolder = true;
+                                        }
+                                        //Relation Content
+                                        if(rootContent==null){
+                                            rootContent = "HOME_DUCUMENT";
+                                        }
+                                            contentAssocs = delegator.findByAnd("ContentAssoc",
+                                                    UtilMisc.toMap("contentId",contentId,"contentIdTo",rootContent,"contentAssocTypeId","TREE_CHILD"));
+                                            if(contentAssocs.size()==0){
+                                                contentAssoc = FastMap.newInstance();
+                                                contentAssoc.put("contentId", contentId);
+                                                contentAssoc.put("contentAssocTypeId", "TREE_CHILD");
+                                                contentAssoc.put("contentIdTo", rootContent);
+                                                contentAssoc.put("userLogin", userLogin);
+                                                dispatcher.runSync("createContentAssoc", contentAssoc);
+                                                rootContent=contentId;
+                                            }else{
+                                                //Debug.log("ContentAssoc [contentId= "+contentId+",contentIdTo="+rootContent+"] already exist.");//ShoW log file
+                                                rootContent=contentId;
+                                            }
+                                        contentName = "";
+                                        contentNameInprogress="";
+                                    }
+                                    if(data.charAt(index)== checkSubContent.charAt(0)){//Have sub content
+                                        createSubContent(index, data, rootContent, context, dctx);
+                                        index=size;
+                                        continue;
+                                    }
+                                     if((data.charAt(index))!= check.charAt(0)){
+                                             contentNameInprogress = contentNameInprogress.concat(Character.toString(data.charAt(index)));
+                                             if(contentNameInprogress.length()>99){
+                                                 contentName = contentName + contentNameInprogress;
+                                                 contentNameInprogress="";
+                                             }
+                                     }
+                                }//end character in line
+                                recordCount++;
+                             }
+                         }//end line
+                          sucMsg = "Convert Documents Tree Successful.<br/>Total : "+counterLine+" rows";
+                     }
+                 }
+             }
+             finally {
+                 input.close();
+             }
+             return ServiceUtil.returnSuccess(sucMsg);
+         }catch(IOException e){
+                errMsg = "IOException "+ UtilMisc.toMap("errMessage", e.toString());
+                Debug.logError(e, errMsg, module);
+                return ServiceUtil.returnError(errMsg);
+         }catch(GenericServiceException e){
+             errMsg = "GenericServiceException "+ UtilMisc.toMap("errMessage", e.toString());
+            Debug.logError(e, errMsg, module);
+            return ServiceUtil.returnError(errMsg);
+         }catch(GenericEntityException e){
+                 errMsg = "GenericEntityException "+ UtilMisc.toMap("errMessage", e.toString());
+                    Debug.logError(e, errMsg, module);
+                    e.printStackTrace();
+                    return ServiceUtil.returnError(errMsg);
+                }
+    }
+    
+    public static  Map<String,Object> createSubContent(int index,String line,String rootContent, Map context, DispatchContext dctx) {
+        GenericDelegator delegator = dctx.getDelegator();
+        LocalDispatcher dispatcher = dctx.getDispatcher();
+        GenericValue userLogin = (GenericValue) context.get("userLogin");
+        String
+        subContents=null,
+        check = ",",
+        oldChar = "\"",
+        newChar = "",
+        contentNameInprogress = "",
+        contentName = "",
+        contentId =null;
+        GenericValue Entity = null;
+        String errMsg = "", sucMsg= "";
+        subContents = line.substring(index+1, line.length());
+        subContents = subContents.replace(oldChar, newChar);
+        int size = subContents.length();
+        try{
+            for(index = 0; index < size; index++){//start character in line
+                boolean contentNameMatch = false;
+                if (subContents.charAt(index) == check.charAt(0)) {//store data
+                    contentName = contentName + contentNameInprogress;
+                    //Debug.log("subcontentName---->"+contentName);
+                    if(contentName.length()>100){
+                        contentName = contentName.substring(0,100);
+                    }
+                    List<GenericValue> contents = delegator.findByAnd("Content", UtilMisc.toMap("contentName",contentName),null,"-contentId");
+                    if(contents!=null){
+                        Iterator<GenericValue> contentCheck = contents.iterator();
+                        while(contentCheck.hasNext() && contentNameMatch==false){
+                            GenericValue contentch = contentCheck.next();
+                            if(contentch!=null){
+                                List<GenericValue> contentAssocsChecks = delegator.findByAnd("ContentAssoc", UtilMisc.toMap("contentId",contentch.get("contentId"), "contentIdTo", rootContent));
+                                if(contentAssocsChecks.size() > 0){
+                                    contentNameMatch = true;
+                                }
+                            }
+                        }
+                    }
+                    contentId = null;
+                    if(contentNameMatch==false){
+                        //create DataResource
+                        Map<String,Object> data = FastMap.newInstance();
+                        data.put("userLogin", userLogin);
+                        String dataResourceId = (dispatcher.runSync("createDataResource",data)).get("dataResourceId").toString();
+                        //Debug.log("==dataResourceId"+dataResourceId);
+
+                        //create Content
+                        contentId = delegator.getNextSeqId("Content");
+                        Entity = null;
+                        Entity = delegator.makeValue("Content");
+                        Entity.set("contentId", contentId);
+                        Entity.set("contentName", contentName);
+                        Entity.set("contentTypeId", "DOCUMENT");
+                        Entity.set("dataResourceId", dataResourceId);
+                        Entity.set("createdByUserLogin", userLogin.get("userLoginId"));
+                        Entity.set("lastModifiedByUserLogin", userLogin.get("userLoginId"));
+                        Entity.set("createdDate", UtilDateTime.nowTimestamp());
+                        Entity.set("lastUpdatedStamp",UtilDateTime.nowTimestamp());
+                        Entity.set("lastUpdatedTxStamp",UtilDateTime.nowTimestamp());
+                        Entity.set("createdStamp",UtilDateTime.nowTimestamp());
+                        Entity.set("createdTxStamp",UtilDateTime.nowTimestamp());
+                        delegator.create(Entity);
+                        
+                        //Relation Content
+                        Map<String,Object> contentAssoc = FastMap.newInstance();
+                        contentAssoc.put("contentId", contentId);
+                        contentAssoc.put("contentAssocTypeId", "SUB_CONTENT");
+                        contentAssoc.put("contentIdTo", rootContent);
+                        contentAssoc.put("userLogin", userLogin);
+                        dispatcher.runSync("createContentAssoc", contentAssoc);
+                    }
+                    contentName ="";
+                    contentNameInprogress="";
+                }
+                
+                   if((subContents.charAt(index))!= check.charAt(0)){
+                        contentNameInprogress = contentNameInprogress.concat(Character.toString(subContents.charAt(index)));
+                        if(contentNameInprogress.length() > 99){
+                            contentName = contentName + contentNameInprogress;
+                            contentNameInprogress="";
+                        }
+                    }
+                   //lastItem
+                   if(index==size-1){
+                       contentNameMatch = false;
+                    List<GenericValue> contents = delegator.findByAnd("Content", UtilMisc.toMap("contentName",contentName));
+                    if(contents!=null){
+                        Iterator<GenericValue> contentCheck = contents.iterator();
+                        while(contentCheck.hasNext() && contentNameMatch==false){
+                            GenericValue contentch = contentCheck.next();
+                            if(contentch!=null){
+                                List<GenericValue> contentAssocsChecks = delegator.findByAnd("ContentAssoc", UtilMisc.toMap("contentId",contentch.get("contentId"), "contentIdTo", rootContent));
+                                if(contentAssocsChecks.size() > 0){
+                                    contentNameMatch = true;
+                                }
+                            }
+                        }
+                    }
+                    contentId = null;
+                    if(contentNameMatch == false){
+                        //create DataResource
+                        Map<String,Object> data = FastMap.newInstance();
+                        data.put("userLogin", userLogin);
+                        String dataResourceId = (dispatcher.runSync("createDataResource",data)).get("dataResourceId").toString();
+                        //Debug.log("==dataResourceId"+dataResourceId);
+
+                        //create Content
+                        contentId = delegator.getNextSeqId("Content");
+                        Entity = null;
+                        Entity = delegator.makeValue("Content");
+                        Entity.set("contentId", contentId);
+                        Entity.set("contentName", contentName);
+                        Entity.set("contentTypeId", "DOCUMENT");
+                        Entity.set("dataResourceId", dataResourceId);
+                        Entity.set("createdByUserLogin", userLogin.get("userLoginId"));
+                        Entity.set("lastModifiedByUserLogin", userLogin.get("userLoginId"));
+                        Entity.set("createdDate", UtilDateTime.nowTimestamp());
+                        Entity.set("lastUpdatedStamp",UtilDateTime.nowTimestamp());
+                        Entity.set("lastUpdatedTxStamp",UtilDateTime.nowTimestamp());
+                        Entity.set("createdStamp",UtilDateTime.nowTimestamp());
+                        Entity.set("createdTxStamp",UtilDateTime.nowTimestamp());
+                        delegator.create(Entity);
+                        
+                        //create ContentAssoc
+                        Map<String,Object> contentAssoc = FastMap.newInstance();
+                        contentAssoc.put("contentId", contentId);
+                        contentAssoc.put("contentAssocTypeId", "SUB_CONTENT");
+                        contentAssoc.put("contentIdTo", rootContent);
+                        contentAssoc.put("userLogin", userLogin);
+                        dispatcher.runSync("createContentAssoc", contentAssoc);
+                    }
+                   }
+    
+            }
+        return ServiceUtil.returnSuccess(sucMsg);
+        }catch(GenericEntityException e){
+             errMsg = "GenericEntityException "+ UtilMisc.toMap("errMessage", e.toString());
+                 Debug.logError(e, errMsg, module);
+                 e.printStackTrace();
+                 return ServiceUtil.returnError(errMsg);
+        }catch(GenericServiceException e){
+             errMsg = "GenericServiceException"+ UtilMisc.toMap("errMessage", e.toString());
+             Debug.logError(e, errMsg, module);
+             e.printStackTrace();
+             return ServiceUtil.returnError(errMsg);
+        }
+    }
 }