Object name validator component

* Moved the component from the -user package to the -naming package

* Added a separate interface to the component
This commit is contained in:
Emmanuel BENOîT 2012-02-04 15:26:53 +01:00
parent 35d8891fe3
commit b4903d78e4
14 changed files with 483 additions and 104 deletions

View file

@ -1,77 +0,0 @@
package com.deepclone.lw.beans.user;
import java.util.regex.Pattern;
import com.deepclone.lw.cmd.ObjectNameError;
public class ObjectNameValidatorBean
{
private int minLength = 2;
private int maxLength = 20;
private static Pattern fail[] = {
Pattern.compile( "\\s\\s+" ) ,
Pattern.compile( "[^A-Za-z0-9 _\\'\\!\\:\\,\\-\\.\\*@\\[\\]\\{\\}]" )
};
private static Pattern needed[] = {
Pattern.compile( "[A-Za-z]" )
};
public void setMinLength( Integer v )
{
this.minLength = v;
}
public void setMaxLength( Integer v )
{
this.maxLength = v;
}
public ObjectNameError validate( String name )
{
return this.customValidate( name , this.minLength , this.maxLength );
}
public ObjectNameError customValidate( String name , int minLength , int maxLength )
{
if ( "".equals( name.trim( ) ) ) {
return ObjectNameError.EMPTY;
}
// No leading or trailing spaces
if ( !name.equals( name.trim( ) ) ) {
return ObjectNameError.INVALID;
}
// Check length
int length = name.length( );
if ( length < minLength || length > maxLength ) {
return ObjectNameError.INVALID;
}
// Check bad patterns
for ( Pattern p : ObjectNameValidatorBean.fail ) {
if ( p.matcher( name ).find( ) ) {
return ObjectNameError.INVALID;
}
}
// Check good patterns
for ( Pattern p : ObjectNameValidatorBean.needed ) {
if ( !p.matcher( name ).find( ) ) {
return ObjectNameError.INVALID;
}
}
return null;
}
}

View file

@ -3,7 +3,6 @@ package com.deepclone.lw.beans.user.admin.main.su;
import org.springframework.beans.factory.annotation.Autowired;
import com.deepclone.lw.beans.user.ObjectNameValidatorBean;
import com.deepclone.lw.cmd.ObjectNameError;
import com.deepclone.lw.cmd.admin.adata.Administrator;
import com.deepclone.lw.cmd.admin.adata.Privileges;
@ -11,6 +10,7 @@ import com.deepclone.lw.cmd.admin.su.AddAdministratorCommand;
import com.deepclone.lw.cmd.admin.su.AddAdministratorResponse;
import com.deepclone.lw.cmd.admin.su.AddAdministratorResponse.AddressError;
import com.deepclone.lw.interfaces.admin.Administration;
import com.deepclone.lw.interfaces.naming.ObjectNameValidator;
import com.deepclone.lw.session.Command;
import com.deepclone.lw.session.CommandResponse;
import com.deepclone.lw.utils.EmailAddress;
@ -22,7 +22,7 @@ public class AddAdministratorCommandDelegateBean
{
private Administration administration;
private ObjectNameValidatorBean validator;
private ObjectNameValidator validator;
@Autowired( required = true )
@ -33,7 +33,7 @@ public class AddAdministratorCommandDelegateBean
@Autowired( required = true )
public void setValidator( ObjectNameValidatorBean validator )
public void setValidator( ObjectNameValidator validator )
{
this.validator = validator;
}
@ -57,7 +57,7 @@ public class AddAdministratorCommandDelegateBean
if ( "".equals( name ) ) {
nameError = ObjectNameError.EMPTY;
} else {
nameError = this.validator.customValidate( name , 2 , 64 );
nameError = this.validator.validate( name , 2 , 64 );
}
// Check address

View file

@ -3,13 +3,13 @@ package com.deepclone.lw.beans.user.player;
import org.springframework.beans.factory.annotation.Autowired;
import com.deepclone.lw.beans.user.ObjectNameValidatorBean;
import com.deepclone.lw.beans.user.abst.AutowiredCommandDelegate;
import com.deepclone.lw.beans.user.abst.SessionCommandHandler;
import com.deepclone.lw.cmd.ObjectNameError;
import com.deepclone.lw.cmd.player.account.AccountValidationCommand;
import com.deepclone.lw.cmd.player.account.AccountValidationResponse;
import com.deepclone.lw.interfaces.acm.AccountManagement;
import com.deepclone.lw.interfaces.naming.ObjectNameValidator;
import com.deepclone.lw.interfaces.session.ServerSession;
import com.deepclone.lw.session.Command;
import com.deepclone.lw.session.CommandResponse;
@ -23,7 +23,7 @@ public class ValidationCommandDelegateBean
{
private AccountManagement manager;
private ObjectNameValidatorBean validator;
private ObjectNameValidator validator;
@Autowired( required = true )
@ -34,7 +34,7 @@ public class ValidationCommandDelegateBean
@Autowired( required = true )
public void setObjectNameValidator( ObjectNameValidatorBean validator )
public void setObjectNameValidator( ObjectNameValidator validator )
{
this.validator = validator;
}

View file

@ -3,7 +3,6 @@ package com.deepclone.lw.beans.user.player.game;
import org.springframework.beans.factory.annotation.Autowired;
import com.deepclone.lw.beans.user.ObjectNameValidatorBean;
import com.deepclone.lw.beans.user.abst.AutowiredCommandDelegate;
import com.deepclone.lw.beans.user.abst.SessionCommandHandler;
import com.deepclone.lw.beans.user.player.GameSubTypeBean;
@ -11,6 +10,7 @@ import com.deepclone.lw.cmd.ObjectNameError;
import com.deepclone.lw.cmd.player.GetNewPlanetCommand;
import com.deepclone.lw.cmd.player.GetNewPlanetResponse;
import com.deepclone.lw.interfaces.game.EmpireManagement;
import com.deepclone.lw.interfaces.naming.ObjectNameValidator;
import com.deepclone.lw.interfaces.session.ServerSession;
import com.deepclone.lw.session.Command;
import com.deepclone.lw.session.CommandResponse;
@ -23,7 +23,7 @@ public class GetNewPlanetCommandDelegateBean
{
private EmpireManagement empireManagement;
private ObjectNameValidatorBean validator;
private ObjectNameValidator validator;
@Autowired( required = true )
@ -34,7 +34,7 @@ public class GetNewPlanetCommandDelegateBean
@Autowired( required = true )
public void setObjectNameValidator( ObjectNameValidatorBean validator )
public void setObjectNameValidator( ObjectNameValidator validator )
{
this.validator = validator;
}

View file

@ -3,7 +3,6 @@ package com.deepclone.lw.beans.user.player.game.alliances;
import org.springframework.beans.factory.annotation.Autowired;
import com.deepclone.lw.beans.user.ObjectNameValidatorBean;
import com.deepclone.lw.beans.user.abst.AutowiredCommandDelegate;
import com.deepclone.lw.beans.user.abst.SessionCommandHandler;
import com.deepclone.lw.beans.user.player.GameSubTypeBean;
@ -13,6 +12,7 @@ import com.deepclone.lw.cmd.player.alliances.CreateAllianceCommand;
import com.deepclone.lw.cmd.player.alliances.CreateAllianceResponse;
import com.deepclone.lw.cmd.player.gdata.alliance.AllianceCreationStatus;
import com.deepclone.lw.interfaces.game.AllianceManagement;
import com.deepclone.lw.interfaces.naming.ObjectNameValidator;
import com.deepclone.lw.interfaces.session.ServerSession;
import com.deepclone.lw.session.Command;
import com.deepclone.lw.session.CommandResponse;
@ -24,7 +24,7 @@ public class CreateAllianceCommandDelegateBean
{
private AllianceManagement allianceManagement;
private ObjectNameValidatorBean validator;
private ObjectNameValidator validator;
@Autowired( required = true )
@ -35,7 +35,7 @@ public class CreateAllianceCommandDelegateBean
@Autowired( required = true )
public void setObjectNameValidator( ObjectNameValidatorBean validator )
public void setObjectNameValidator( ObjectNameValidator validator )
{
this.validator = validator;
}
@ -65,10 +65,10 @@ public class CreateAllianceCommandDelegateBean
}
String tag = command.getTag( );
ObjectNameError tagError = this.validator.customValidate( tag , 2 , 5 );
ObjectNameError tagError = this.validator.validate( tag , 2 , 5 );
String name = command.getName( );
ObjectNameError nameError = this.validator.customValidate( name , 5 , 64 );
ObjectNameError nameError = this.validator.validate( name , 5 , 64 );
if ( tagError != null || nameError != null ) {
AllianceStatusResponse r = this.allianceManagement.getView( empireId );

View file

@ -3,13 +3,13 @@ package com.deepclone.lw.beans.user.player.game.fleets;
import org.springframework.beans.factory.annotation.Autowired;
import com.deepclone.lw.beans.user.ObjectNameValidatorBean;
import com.deepclone.lw.beans.user.abst.AutowiredCommandDelegate;
import com.deepclone.lw.beans.user.abst.SessionCommandHandler;
import com.deepclone.lw.beans.user.player.GameSubTypeBean;
import com.deepclone.lw.cmd.player.fleets.RenameFleetsCommand;
import com.deepclone.lw.cmd.player.fleets.RenameFleetsResponse;
import com.deepclone.lw.interfaces.game.FleetManagement;
import com.deepclone.lw.interfaces.naming.ObjectNameValidator;
import com.deepclone.lw.interfaces.session.ServerSession;
import com.deepclone.lw.session.Command;
import com.deepclone.lw.session.CommandResponse;
@ -20,7 +20,7 @@ public class RenameFleetsCommandDelegateBean
implements AutowiredCommandDelegate
{
private FleetManagement fleetManager;
private ObjectNameValidatorBean validator;
private ObjectNameValidator validator;
@Autowired( required = true )
@ -31,7 +31,7 @@ public class RenameFleetsCommandDelegateBean
@Autowired( required = true )
public void setObjectNameValidator( ObjectNameValidatorBean validator )
public void setObjectNameValidator( ObjectNameValidator validator )
{
this.validator = validator;
}
@ -64,7 +64,7 @@ public class RenameFleetsCommandDelegateBean
boolean error;
if ( command.isRename( ) ) {
name = command.getName( ).trim( );
if ( !"".equals( name ) && this.validator.customValidate( name , 1 , 40 ) != null ) {
if ( !"".equals( name ) && this.validator.validate( name , 1 , 40 ) != null ) {
error = true;
name = null;
} else {

View file

@ -3,13 +3,13 @@ package com.deepclone.lw.beans.user.player.game.fleets;
import org.springframework.beans.factory.annotation.Autowired;
import com.deepclone.lw.beans.user.ObjectNameValidatorBean;
import com.deepclone.lw.beans.user.abst.AutowiredCommandDelegate;
import com.deepclone.lw.beans.user.abst.SessionCommandHandler;
import com.deepclone.lw.beans.user.player.GameSubTypeBean;
import com.deepclone.lw.cmd.player.fleets.SplitFleetCommand;
import com.deepclone.lw.cmd.player.fleets.SplitFleetResponse;
import com.deepclone.lw.interfaces.game.FleetManagement;
import com.deepclone.lw.interfaces.naming.ObjectNameValidator;
import com.deepclone.lw.interfaces.session.ServerSession;
import com.deepclone.lw.session.Command;
import com.deepclone.lw.session.CommandResponse;
@ -20,7 +20,7 @@ public class SplitFleetCommandDelegateBean
implements AutowiredCommandDelegate
{
private FleetManagement fleetManager;
private ObjectNameValidatorBean validator;
private ObjectNameValidator validator;
@Autowired( required = true )
@ -31,7 +31,7 @@ public class SplitFleetCommandDelegateBean
@Autowired( required = true )
public void setObjectNameValidator( ObjectNameValidatorBean validator )
public void setObjectNameValidator( ObjectNameValidator validator )
{
this.validator = validator;
}
@ -64,7 +64,7 @@ public class SplitFleetCommandDelegateBean
boolean error;
if ( name != null ) {
name = command.getName( ).trim( );
if ( !"".equals( name ) && this.validator.customValidate( name , 1 , 40 ) != null ) {
if ( !"".equals( name ) && this.validator.validate( name , 1 , 40 ) != null ) {
error = true;
name = "";
} else {

View file

@ -3,7 +3,6 @@ package com.deepclone.lw.beans.user.player.game.planets;
import org.springframework.beans.factory.annotation.Autowired;
import com.deepclone.lw.beans.user.ObjectNameValidatorBean;
import com.deepclone.lw.beans.user.abst.AutowiredCommandDelegate;
import com.deepclone.lw.beans.user.abst.SessionCommandHandler;
import com.deepclone.lw.beans.user.player.GameSubTypeBean;
@ -12,6 +11,7 @@ import com.deepclone.lw.cmd.player.planets.RenamePlanetCommand;
import com.deepclone.lw.cmd.player.planets.RenamePlanetResponse;
import com.deepclone.lw.cmd.player.planets.ViewPlanetResponse;
import com.deepclone.lw.interfaces.game.PlanetsManagement;
import com.deepclone.lw.interfaces.naming.ObjectNameValidator;
import com.deepclone.lw.interfaces.session.ServerSession;
import com.deepclone.lw.session.Command;
import com.deepclone.lw.session.CommandResponse;
@ -24,7 +24,7 @@ public class RenamePlanetCommandDelegateBean
{
private PlanetsManagement planetsManagement;
private ObjectNameValidatorBean validator;
private ObjectNameValidator validator;
@Autowired( required = true )
@ -35,7 +35,7 @@ public class RenamePlanetCommandDelegateBean
@Autowired( required = true )
public void setObjectNameValidator( ObjectNameValidatorBean validator )
public void setObjectNameValidator( ObjectNameValidator validator )
{
this.validator = validator;
}

View file

@ -4,7 +4,6 @@
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd">
<bean id="objectNameValidator" class="com.deepclone.lw.beans.user.ObjectNameValidatorBean" />
<bean id="sessionCommandWiring" class="com.deepclone.lw.beans.user.abst.SessionCommandWiringBean" />
<bean id="sessionSubTypeWiring" class="com.deepclone.lw.beans.user.abst.SessionSubTypeWiringBean" />