Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
Copyright (C) 2014 Philip Helger ( philip[at]helger[dot]com Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at 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.
 import java.util.Map;
 public final class UserMicroTypeConverter implements IMicroTypeConverter
   private static final String ATTR_ID = "id";
   private static final String ATTR_CREATIONDT = "creationdt";
   private static final String ATTR_LASTMODDT = "lastmoddt";
   private static final String ATTR_DELETIONDT = "deletiondt";
   private static final String ATTR_DESIREDLOCALE = "desiredlocale";
   private static final String ATTR_LASTLOGINDT = "lastlogindt";
   private static final String ATTR_LOGINCOUNT = "logincount";
   private static final String ATTR_CONSECUTIVEFAILEDLOGINCOUNT = "consecutivefailedlogincount";
   private static final String ELEMENT_LOGINNAME = "loginname";
   private static final String ELEMENT_EMAILADDRESS = "emailaddress";
   private static final String ELEMENT_PASSWORDHASH = "passwordhash";
   private static final String ATTR_ALGORITHM = "algorithm";
   private static final String ELEMENT_FIRSTNAME = "firstname";
   private static final String ELEMENT_LASTNAME = "lastname";
   private static final String ELEMENT_CUSTOM = "custom";
   private static final String ATTR_DELETED = "deleted";
   private static final String ATTR_DISABLED = "disabled";
   public IMicroElement convertToMicroElement (@Nonnull final Object aObject,
                                               @Nullable final String sNamespaceURI,
                                               @Nonnull final String sTagName)
     final IUser aUser = (IUseraObject;
     final IMicroElement eUser = new MicroElement (sNamespaceURIsTagName);
     eUser.setAttribute (aUser.getID ());
     eUser.appendElement ().appendText (aUser.getLoginName ());
     if (aUser.getEmailAddress () != null)
       eUser.appendElement ().appendText (aUser.getEmailAddress ());
     final IMicroElement ePasswordHash = eUser.appendElement ();
     ePasswordHash.setAttribute (aUser.getPasswordHash ().getAlgorithmName ());
     ePasswordHash.appendText (aUser.getPasswordHash ().getPasswordHashValue ());
     if (aUser.getFirstName () != null)
       eUser.appendElement ().appendText (aUser.getFirstName ());
     if (aUser.getLastName () != null)
       eUser.appendElement ().appendText (aUser.getLastName ());
     if (aUser.getDesiredLocale () != null)
       eUser.setAttribute (aUser.getDesiredLocale ().toString ());
     if (aUser.getLastLoginDateTime () != null)
     eUser.setAttribute (aUser.getLoginCount ());
     for (final Map.Entry <StringObjectaEntry : ContainerHelper.getSortedByKey (aUser.getAllAttributes ())
                                                                   .entrySet ())
       final IMicroElement eCustom = eUser.appendElement ();
       eCustom.setAttribute (aEntry.getKey ());
       eCustom.appendText (String.valueOf (aEntry.getValue ()));
     eUser.setAttribute (, Boolean.toString (aUser.isDeleted ()));
     eUser.setAttribute (, Boolean.toString (aUser.isDisabled ()));
     return eUser;
  public User convertToNative (@Nonnull final IMicroElement eUser)
    final String sID = eUser.getAttribute ();
    DateTime aCreationDT = eUser.getAttributeWithConversion (DateTime.class);
    if (aCreationDT == null)
      // Migration for old data
      aCreationDT = PDTFactory.getCurrentDateTime ();
    final DateTime aLastModificationDT = eUser.getAttributeWithConversion (DateTime.class);
    final DateTime aDeletionDT = eUser.getAttributeWithConversion (DateTime.class);
    final String sLoginName = MicroUtils.getChildTextContent (eUser);
    final String sEmailAddress = MicroUtils.getChildTextContent (eUser);
    final IMicroElement ePasswordHash = eUser.getFirstChildElement ();
    String sPasswordHashAlgorithm = ePasswordHash.getAttribute ();
    if (sPasswordHashAlgorithm == null)
      // migration
      sPasswordHashAlgorithm = .;
    final String sPasswordHashValue = ePasswordHash.getTextContent ();
    final PasswordHash aPasswordHash = new PasswordHash (sPasswordHashAlgorithmsPasswordHashValue);
    final String sFirstName = MicroUtils.getChildTextContent (eUser);
    final String sLastName = MicroUtils.getChildTextContent (eUser);
    final String sDesiredLocale = eUser.getAttribute ();
    final Locale aDesiredLocale = sDesiredLocale == null ? null : LocaleCache.getLocale (sDesiredLocale);
    final DateTime aLastLoginDT = eUser.getAttributeWithConversion (DateTime.class);
    final int nLoginCount = StringParser.parseInt (eUser.getAttribute (), 0);
    final int nConsecutiveFailedLoginCount = StringParser.parseInt (eUser.getAttribute (),
    final Map <StringStringaCustomAttrs = new LinkedHashMap <StringString> ();
    for (final IMicroElement eCustom : eUser.getAllChildElements ())
      aCustomAttrs.put (eCustom.getAttribute (), eCustom.getTextContent ());
    final String sDeleted = eUser.getAttribute ();
    final boolean bDeleted = StringParser.parseBool (sDeleted);
    final String sDisabled = eUser.getAttribute ();
    final boolean bDisabled = StringParser.parseBool (sDisabled);
    return new User (sID,
New to GrepCode? Check out our FAQ X