|                                                                                                              1
 4   package com.openedit.modules.admin.users;
 5
 6   import java.io.BufferedReader
  ; 7   import java.io.File
  ; 8   import java.io.FileReader
  ; 9   import java.io.IOException
  ; 10  import java.util.ArrayList
  ; 11  import java.util.Iterator
  ; 12  import java.util.List
  ; 13
 14  import org.dom4j.Document;
 15  import org.dom4j.Element;
 16  import org.dom4j.io.SAXReader;
 17
 18  import com.openedit.OpenEditException;
 19  import com.openedit.users.User;
 20  import com.openedit.users.UserManager;
 21  import com.openedit.util.FileUtils;
 22
 23  public class UserImport
 24  {
 25      protected UserManager fieldUserManager;
 26
 27
 29      public List
  listUsers(File  inFile) throws OpenEditException 30      {
 31          try
 32          {
 33                          BufferedReader
  reader = null; 35              String
  text; 36              try
 37              {
 38                  reader = new BufferedReader
  (new FileReader  ( inFile ) ); 39                  text = reader.readLine();
 40              }
 41              finally
 42              {
 43                  FileUtils.safeClose(reader);
 44              }
 45              if( text == null)
 46              {
 47                  throw new OpenEditException("Empty input file");
 48              }
 49              if ( text.startsWith("<?xml"))
 50              {
 51                                  return parseXml( inFile );
 53              }
 54              else
 55              {
 56                  return parseTabs( inFile );
 57              }
 58          }
 59          catch ( IOException
  ex) 60          {
 61              throw new OpenEditException( ex);
 62          }
 63      }
 64      protected String
  cleanId( String  inId) 65      {
 66                          if ( inId != null)
 69          {
 70              inId = inId.replaceAll(" ","");
 71              inId = inId.replaceAll("&","");
 72              inId = inId.replaceAll("/","");
 73              inId = inId.replaceAll("\\\\","");
 74
 75          }
 76
 77          return inId;
 78      }
 79
 80      protected List
  parseTabs(File  inText) throws OpenEditException 81      {
 82
 83          List
  accounts = new ArrayList  (); 84                  Header header = new Header();
 86
 87          try
 88          {
 89              header.loadColumns(inText);
 90
 91              Row row = header.getNextRow();
 92              while( row != null )
 93              {
 94                  String
  id = row.getData("id"); 95                  if ( id == null)
 96                  {
 97                      id = cleanId( row.getData("email") );
 98                  }
 99                  User user = null;
 100                                 if ( id != null)
 102                 {
 103                     user = getUserManager().getUser(id);
 104                     if( user == null)
 105                     {
 106                         String
  password = row.getData("password"); 107                         user = getUserManager().createUser(id,password);
 108                     }
 109                 }
 110                 user.setEmail(  row.getData("email") );
 111                 user.setFirstName(row.getData("firstname") );
 112                 user.setLastName(row.getData("lastname") );
 113                 for (int i = 0; i < header.getSize(); i++)
 114                 {
 115                     String
  prop = (String  ) header.getColumn(i); 116                     if ( prop.startsWith("property."))
 117                     {
 118                         String
  name = prop.substring("property.".length()); 119                         user.put(name,row.getData(i));
 120                     }
 121                 }
 122                 accounts.add( user );
 123                 getUserManager().saveUser(user);
 124
 125                 row = header.getNextRow();
 126             }
 127         }
 128         catch ( Exception
  ex) 129         {
 130             throw new OpenEditException(ex);
 131         }
 132         return accounts;
 133     }
 134
 135     protected List
  parseXml(File  inText) throws OpenEditException 136     {
 137         List
  accounts = new ArrayList  (); 138         try
 139         {
 140             Document doc = new SAXReader().read(new FileReader
  ( inText ) ); 141             for (Iterator
  iter = doc.getRootElement().elementIterator("account"); iter.hasNext();) 142             {
 143                 Element element = (Element) iter.next();
 144                 String
  id = element.attributeValue("id"); 145                 String
  password = element.attributeValue("password"); 146
 147                 User user = null;
 148                                 if ( id != null)
 150                 {
 151                     user = getUserManager().getUser(id);
 152                     if( user == null)
 153                     {
 154                         user = getUserManager().createUser(id,password);
 155                     }
 156                 }
 157                 user.setEmail(  element.attributeValue("email") );
 158                 user.setFirstName(element.attributeValue("firstname") );
 159                 user.setLastName(element.attributeValue("lastname") );
 160                 for (Iterator
  iterator = element.elementIterator("property"); iterator.hasNext();) 161                 {
 162                     Element prop = (Element) iterator.next();
 163                     user.put(prop.attributeValue("id"),prop.getTextTrim());
 164                 }
 165                 getUserManager().saveUser(user);
 166
 167                 accounts.add( user );
 168             }
 169         }
 170         catch ( Exception
  ex) 171         {
 172             throw new OpenEditException(ex);
 173         }
 174         return accounts;
 175     }
 176
 177     public UserManager getUserManager()
 178     {
 179         return fieldUserManager;
 180     }
 181
 182     public void setUserManager(UserManager inUserManager)
 183     {
 184         fieldUserManager = inUserManager;
 185     }
 186
 187 }
 188
                                                                                                                                                                                                             |                                                                       
 
 
 
 
 
                                                                                   Popular Tags                                                                                                                                                                                              |