Skip to content

Commit

Permalink
HV-1055 Avoiding some object allocations
Browse files Browse the repository at this point in the history
  • Loading branch information
gunnarmorling committed Feb 18, 2016
1 parent b5d9f22 commit d7bbc71
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 9 deletions.
Expand Up @@ -21,6 +21,7 @@
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;

import javax.validation.GroupSequence;
import javax.validation.groups.Default;

Expand All @@ -43,7 +44,7 @@ public class ValidationOrderGenerator {

public ValidationOrderGenerator() {
validationOrderForDefaultGroup = new DefaultValidationOrder();
validationOrderForDefaultGroup.insertGroup( new Group( Default.class ) );
validationOrderForDefaultGroup.insertGroup( Group.DEFAULT_GROUP );
}

/**
Expand Down Expand Up @@ -73,8 +74,7 @@ public ValidationOrder getValidationOrder(Collection<Class<?>> groups) {
DefaultValidationOrder validationOrder = new DefaultValidationOrder();
for ( Class<?> clazz : groups ) {
if ( Default.class.equals( clazz ) ) { // HV-621
Group group = new Group( clazz );
validationOrder.insertGroup( group );
validationOrder.insertGroup( Group.DEFAULT_GROUP );
}
else if ( isGroupSequence( clazz ) ) {
insertSequence( clazz, validationOrder );
Expand Down
Expand Up @@ -20,7 +20,6 @@
import java.lang.reflect.Member;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
Expand Down Expand Up @@ -70,6 +69,11 @@ public final class BeanMetaDataImpl<T> implements BeanMetaData<T> {

private static final Log log = LoggerFactory.make();

/**
* Represents the "sequence" of just Default.class.
*/
private static final List<Class<?>> DEFAULT_GROUP_SEQUENCE = Collections.<Class<?>>singletonList( Default.class );

/**
* The root bean class for this meta data.
*/
Expand Down Expand Up @@ -310,7 +314,7 @@ else if ( defaultGroupSequence != null && !defaultGroupSequence.isEmpty() ) {
setDefaultGroupSequence( defaultGroupSequence );
}
else {
setDefaultGroupSequence( Arrays.<Class<?>>asList( beanClass ) );
this.defaultGroupSequence = DEFAULT_GROUP_SEQUENCE;
}
}

Expand Down
Expand Up @@ -2,14 +2,14 @@

import java.util.ArrayList;
import java.util.List;

import javax.validation.GroupDefinitionException;
import javax.validation.groups.Default;

import org.testng.annotations.Test;

import org.hibernate.validator.internal.engine.groups.DefaultValidationOrder;
import org.hibernate.validator.internal.engine.groups.Group;
import org.hibernate.validator.internal.engine.groups.Sequence;
import org.testng.annotations.Test;

import static org.testng.FileAssert.fail;

Expand All @@ -23,7 +23,7 @@ public void testAssertDefaultGroupSequenceIsExpandableWithDefaultAtEndOfSequence
Group a = new Group( GroupA.class );
Group b = new Group( GroupB.class );
Group c = new Group( GroupC.class );
Group defaultGroup = new Group( Default.class );
Group defaultGroup = Group.DEFAULT_GROUP;

List<Group> sequence = new ArrayList<Group>();
sequence.add( a );
Expand Down Expand Up @@ -81,7 +81,7 @@ public void testAssertDefaultGroupSequenceIsExpandableWithDefaultAtBeginningOfSe
Group a = new Group( GroupA.class );
Group b = new Group( GroupB.class );
Group c = new Group( GroupC.class );
Group defaultGroup = new Group( Default.class );
Group defaultGroup = Group.DEFAULT_GROUP;

List<Group> sequence = new ArrayList<Group>();
sequence.add( defaultGroup );
Expand Down

0 comments on commit d7bbc71

Please sign in to comment.