Package org.infoglue.cms.entities.management

Source Code of org.infoglue.cms.entities.management.SystemUserVO

/* ===============================================================================
*
* Part of the InfoGlue Content Management Platform (www.infoglue.org)
*
* ===============================================================================
*
*  Copyright (C)
*
* This program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License version 2, as published by the
* Free Software Foundation. See the file LICENSE.html for more information.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY, including the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with
* this program; if not, write to the Free Software Foundation, Inc. / 59 Temple
* Place, Suite 330 / Boston, MA 02111-1307 / USA.
*
* ===============================================================================
*/

package org.infoglue.cms.entities.management;


import java.util.Date;
import java.util.Iterator;

import org.infoglue.cms.entities.kernel.BaseEntityVO;
import org.infoglue.cms.entities.kernel.ValidatableEntityVO;
import org.infoglue.cms.entities.management.impl.simple.SystemUserImpl;
import org.infoglue.cms.util.ConstraintExceptionBuffer;
import org.infoglue.cms.util.DateHelper;
import org.infoglue.cms.util.validators.Constants;
import org.infoglue.cms.util.validators.ConstraintRule;
import org.infoglue.cms.util.validators.EmailValidator;
import org.infoglue.cms.util.validators.Range;
import org.infoglue.cms.util.validators.StringValidator;


public class SystemUserVO extends ValidatableEntityVO implements BaseEntityVO
{
  public static final String INFOGLUE = "Infoglue";

  private long timeStamp = 0;
    private java.lang.String userName;
    private java.lang.String password;
    private java.lang.String firstName;
    private java.lang.String lastName;
    private java.lang.String email;

    private String source = INFOGLUE;
  private Boolean isActive = true;
    private Date modifiedDateTime = DateHelper.getSecondPreciseDate();

  /**
   * @see org.infoglue.cms.entities.kernel.BaseEntityVO#getId()
   */
  public Integer getId()
  {
    return null;
  }

  public String toString()
  { 
    return getFirstName() + " " + getLastName();
  }
   
    public java.lang.String getUserName()
    {
        return this.userName;
    }
               
    public void setUserName(java.lang.String userName)
    {
        this.userName = userName;
    }
   
    public java.lang.String getPassword()
    {
        return this.password;
    }
               
    public void setPassword(java.lang.String password)
    {
        this.password = password;
    }
   
    public java.lang.String getFirstName()
    {
        return this.firstName;
    }
               
    public void setFirstName(java.lang.String firstName)
    {
        this.firstName = firstName;
    }
   
    public java.lang.String getLastName()
    {
        return this.lastName;
    }
               
    public void setLastName(java.lang.String lastName)
    {
        this.lastName = lastName;
    }
   
    public java.lang.String getEmail()
    {
        return this.email;
    }
               
    public void setEmail(java.lang.String email)
    {
        this.email = email;
    }

    public String getSource()
    {
      return this.source;
    }
   
    public void setSource(String source)
    {
      this.source = source;
    }

    public Boolean getIsActive()
    {
      return this.isActive;
    }
   
    public void setIsActive(Boolean isActive)
    {
      this.isActive = isActive;
    }

    public java.util.Date getModifiedDateTime()
    {
      return this.modifiedDateTime;
    }
   
    public void setModifiedDateTime(java.util.Date modifiedDateTime)
    {
      this.modifiedDateTime = modifiedDateTime;
    }
   
  public void PrepareValidation()
  {
    // Define the constraint rules for this valueobject
    // maybe this belongs in the setters of this object?.
    // then this method would be obsolete, and the validation
    // should be initiated through a controller from the
    // action class??.
    // -----------------------------------------
   
    // On the rulelist set the class that holds this vo, the class
    // that is known to castor. This is for unique validation and
    // if possible should not be set in the valueobject, but preferably
    // in the actual castor-entity class. (Im not to satisfied with this
    // construction).
    rules.setEntityClass(SystemUserImpl.class);
   
    // Create a new constraintrule, supply constraint type, and field that this rule
    // applies to.
     ConstraintRule cr = new ConstraintRule(org.infoglue.cms.util.validators.Constants.STRING, "SystemUser.userName");
    
     // Set the constraints
     cr.setValidRange(new Range(2, 60) );
     cr.unique=true// public variabel will be changed to setter later
     cr.required=true; // public variabel will be changed to setter later
     cr.setValue(userName);
    
     // Add this rule to the rulelist
     rules.addRule(cr);   

    // Set the rest of the rules
     cr = new ConstraintRule(org.infoglue.cms.util.validators.Constants.STRING, "SystemUser.password");
     cr.setValidRange(new Range(4, 15));
     cr.required = true;
     cr.setValue(password);
    rules.addRule(cr);
   
     cr = new ConstraintRule(org.infoglue.cms.util.validators.Constants.STRING, "SystemUser.firstName");
     cr.setValidRange(new Range(1, 30));
     cr.required = true;
     cr.setValue(firstName);
    rules.addRule(cr);
   
     cr = new ConstraintRule(org.infoglue.cms.util.validators.Constants.STRING, "SystemUser.lastName");
     cr.setValidRange(new Range(1, 30));
     cr.required = true;
     cr.setValue(lastName);
    rules.addRule(cr);

     cr = new ConstraintRule(org.infoglue.cms.util.validators.Constants.EMAIL, "SystemUser.email");
     cr.setValidRange(new Range(50));
     cr.required = true;
     cr.setValue(email);
    rules.addRule(cr);
  }
   
   
  public ConstraintExceptionBuffer validate(ValidatableEntityVO vo)
  {
    // This method loops through the rulelist and creates
    // validators according to the settings in each rule.
    // The old validators are used to do the actual validation
    // but I have changed them to use less constructor
    // parameter passing in favour for setters.
           
    ConstraintExceptionBuffer ceb = new ConstraintExceptionBuffer();
   
    // Prepare the object for validation
    vo.PrepareValidation();
   
    // Loop through rules and create validators
    Iterator iterator = vo.getConstraintRules().iterator();
    while (iterator.hasNext())
    {
      ConstraintRule cr = (ConstraintRule) iterator.next();
      String userName = ((SystemUserVO)vo).getUserName();
     
      // an ugly switch for now.       
      switch (cr.getConstraintType())
      {
        case Constants.EMAIL:
        {
          if (cr.getValue() != null)
          {
            // Create validator
            EmailValidator v = new EmailValidator(cr.getFieldName());
             
            // Set properties
            v.setObjectClass(vo.getConstraintRuleList().getEntityClass());
            v.setRange(cr.getValidRange());
            v.setIsRequired(cr.required);
            v.setMustBeUnique(cr.unique);
            v.setExcludeId(null);
            v.setExcludeObject(userName);

            // Do the limbo
            v.validate((String) cr.getValue(), ceb);
             
            // <todo>
            // Note: the actual value validated should be extracted
            // from the vo using the fieldname with reflection.
            // </todo>
             
          }             
          break;
        }
        case Constants.STRING:
        {
          if (cr.getValue() != null)
          {           
            StringValidator v = new StringValidator(cr.getFieldName());
            v.setObjectClass(vo.getConstraintRuleList().getEntityClass());
            v.setRange(cr.getValidRange());
            v.setIsRequired(cr.required);
            v.setMustBeUnique(cr.unique);
            v.setExcludeId(null);
            v.setExcludeObject(userName);

            v.validate((String) cr.getValue(), ceb);
          }             
          break;
        }
        case Constants.FLOAT:
        {
          break;
        }
        case Constants.INTEGER:
        {
          break;
        }
        case Constants.PROPERNOUN:
        {
          break;
        }
         
      } // switch
               
    } // while
       
    return ceb;
  }
}
TOP

Related Classes of org.infoglue.cms.entities.management.SystemUserVO

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.