← Back to team overview

dhis2-devs team mailing list archive

[Branch ~dhis2-devs-core/dhis2/trunk] Rev 13841: Fixed a few bugs with deletion handlers

 

------------------------------------------------------------
revno: 13841
committer: Lars Helge Øverland <larshelge@xxxxxxxxx>
branch nick: dhis2
timestamp: Fri 2014-01-24 13:49:23 +0200
message:
  Fixed a few bugs with deletion handlers
modified:
  dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataelement/DataElementDeletionHandler.java
  dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataelement/DataElementGroupDeletionHandler.java
  dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataset/DataSetDeletionHandler.java
  dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/indicator/IndicatorDeletionHandler.java
  dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/indicator/IndicatorGroupDeletionHandler.java
  dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/organisationunit/OrganisationUnitDeletionHandler.java
  dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/organisationunit/OrganisationUnitGroupDeletionHandler.java
  dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/validation/ValidationRuleDeletionHandler.java
  dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/validation/ValidationRuleGroupDeletionHandler.java
  dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/patient/PatientAuditDeletionHandler.java
  dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/patientattributevalue/PatientAttributeValueDeletionHandler.java
  dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/deletion/DeletionHandler.java
  dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/util/DateUtils.java
  dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/util/ExcelUtils.java
  dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/util/PredicateUtils.java


--
lp:dhis2
https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk

Your team DHIS 2 developers is subscribed to branch lp:dhis2.
To unsubscribe from this branch go to https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription
=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataelement/DataElementDeletionHandler.java'
--- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataelement/DataElementDeletionHandler.java	2014-01-09 10:09:43 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataelement/DataElementDeletionHandler.java	2014-01-24 11:49:23 +0000
@@ -30,8 +30,6 @@
 
 import static org.hisp.dhis.dataelement.DataElementCategoryCombo.DEFAULT_CATEGORY_COMBO_NAME;
 
-import java.util.Iterator;
-
 import org.hisp.dhis.dataset.DataSet;
 import org.hisp.dhis.option.OptionSet;
 import org.hisp.dhis.system.deletion.DeletionHandler;
@@ -98,25 +96,19 @@
     @Override
     public void deleteDataSet( DataSet dataSet )
     {
-        Iterator<DataElement> iterator = dataSet.getDataElements().iterator();
-        
-        while ( iterator.hasNext() )
+        for ( DataElement element : dataSet.getDataElements() )
         {
-            DataElement element = iterator.next();
-            element.removeDataSet( dataSet );
-            dataElementService.updateDataElement( element );            
+            element.getDataSets().remove( dataSet );
+            dataElementService.updateDataElement( element );
         }
     }
 
     @Override
     public void deleteDataElementGroup( DataElementGroup group )
     {
-        Iterator<DataElement> iterator = group.getMembers().iterator();
-        
-        while ( iterator.hasNext() )
+        for ( DataElement element : group.getMembers() )
         {
-            DataElement element = iterator.next();
-            element.removeDataElementGroup( group );
+            element.getGroups().remove( group );
             dataElementService.updateDataElement( element );
         }
     }

=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataelement/DataElementGroupDeletionHandler.java'
--- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataelement/DataElementGroupDeletionHandler.java	2014-01-09 10:09:43 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataelement/DataElementGroupDeletionHandler.java	2014-01-24 11:49:23 +0000
@@ -28,13 +28,10 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-import java.util.Iterator;
-
 import org.hisp.dhis.system.deletion.DeletionHandler;
 
 /**
  * @author Lars Helge Overland
- * @version $Id$
  */
 public class DataElementGroupDeletionHandler
     extends DeletionHandler
@@ -63,12 +60,9 @@
     @Override
     public void deleteDataElement( DataElement dataElement )
     {
-        Iterator<DataElementGroup> iterator = dataElement.getGroups().iterator();
-        
-        while ( iterator.hasNext() )
+        for ( DataElementGroup group : dataElement.getGroups() )
         {
-            DataElementGroup group = iterator.next();
-            group.removeDataElement( dataElement );
+            group.getMembers().remove( dataElement );
             dataElementService.updateDataElementGroup( group );
         }
     }

=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataset/DataSetDeletionHandler.java'
--- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataset/DataSetDeletionHandler.java	2014-01-09 10:09:43 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataset/DataSetDeletionHandler.java	2014-01-24 11:49:23 +0000
@@ -109,7 +109,7 @@
         while ( iterator.hasNext() )
         {
             DataSet dataSet = iterator.next();
-            dataSet.removeIndicator( indicator );
+            dataSet.getIndicators().remove( indicator );
             dataSetService.updateDataSet( dataSet );
         }
     }
@@ -134,7 +134,7 @@
         while ( iterator.hasNext() )
         {
             DataSet dataSet = iterator.next();
-            dataSet.removeOrganisationUnit( unit );
+            dataSet.getSources().remove( unit );
             dataSetService.updateDataSet( dataSet );
         }
     }
@@ -147,7 +147,7 @@
         while ( iterator.hasNext() )
         {
             DataSet dataSet = iterator.next();
-            dataSet.removeOrganisationUnitGroup( group );
+            dataSet.getOrganisationUnitGroups().remove( group );
             dataSetService.updateDataSet( dataSet );
         }
     }

=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/indicator/IndicatorDeletionHandler.java'
--- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/indicator/IndicatorDeletionHandler.java	2014-01-09 10:09:43 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/indicator/IndicatorDeletionHandler.java	2014-01-24 11:49:23 +0000
@@ -28,7 +28,6 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-import java.util.Iterator;
 import java.util.Set;
 
 import org.hisp.dhis.dataelement.DataElement;
@@ -91,12 +90,9 @@
     @Override
     public void deleteIndicatorGroup( IndicatorGroup group )
     {
-        Iterator<Indicator> iterator = group.getMembers().iterator();
-
-        while ( iterator.hasNext() )
+        for ( Indicator indicator : group.getMembers() )
         {
-            Indicator indicator = iterator.next();
-            indicator.removeIndicatorGroup( group );
+            indicator.getGroups().remove( group );
             indicatorService.updateIndicator( indicator );
         }
     }
@@ -104,12 +100,9 @@
     @Override
     public void deleteDataSet( DataSet dataSet )
     {
-        Iterator<Indicator> iterator = dataSet.getIndicators().iterator();
-
-        while ( iterator.hasNext() )
+        for ( Indicator indicator : dataSet.getIndicators() )
         {
-            Indicator indicator = iterator.next();
-            indicator.removeDataSet( dataSet );
+            indicator.getDataSets().remove( dataSet );
             indicatorService.updateIndicator( indicator );
         }
     }

=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/indicator/IndicatorGroupDeletionHandler.java'
--- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/indicator/IndicatorGroupDeletionHandler.java	2014-01-09 10:09:43 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/indicator/IndicatorGroupDeletionHandler.java	2014-01-24 11:49:23 +0000
@@ -28,8 +28,6 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-import java.util.Iterator;
-
 import org.hisp.dhis.system.deletion.DeletionHandler;
 
 /**
@@ -62,12 +60,9 @@
     @Override
     public void deleteIndicator( Indicator indicator )
     {
-        Iterator<IndicatorGroup> iterator = indicator.getGroups().iterator();
-        
-        while ( iterator.hasNext() )
+        for ( IndicatorGroup group : indicator.getGroups() )
         {
-            IndicatorGroup group = iterator.next();
-            group.removeIndicator( indicator );
+            group.getMembers().remove( indicator );
             indicatorService.updateIndicatorGroup( group );
         }
     }

=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/organisationunit/OrganisationUnitDeletionHandler.java'
--- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/organisationunit/OrganisationUnitDeletionHandler.java	2013-12-12 16:34:34 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/organisationunit/OrganisationUnitDeletionHandler.java	2014-01-24 11:49:23 +0000
@@ -32,8 +32,6 @@
 import org.hisp.dhis.system.deletion.DeletionHandler;
 import org.hisp.dhis.user.User;
 
-import java.util.Iterator;
-
 /**
  * @author Lars Helge Overland
  */
@@ -64,14 +62,9 @@
     @Override
     public void deleteDataSet( DataSet dataSet )
     {
-        Iterator<OrganisationUnit> iterator = dataSet.getSources().iterator();
-
-        while ( iterator.hasNext() )
+        for ( OrganisationUnit unit : dataSet.getSources() )
         {
-            OrganisationUnit unit = iterator.next();
-
-            unit.getDataSets().remove( unit );
-
+            unit.getDataSets().remove( dataSet );
             organisationUnitService.updateOrganisationUnit( unit );
         }
     }
@@ -79,14 +72,9 @@
     @Override
     public void deleteUser( User user )
     {
-        Iterator<OrganisationUnit> iterator = user.getOrganisationUnits().iterator();
-
-        while ( iterator.hasNext() )
+        for ( OrganisationUnit unit : user.getOrganisationUnits() )
         {
-            OrganisationUnit unit = iterator.next();
-
             unit.getUsers().remove( user );
-
             organisationUnitService.updateOrganisationUnit( unit );
         }
     }
@@ -94,14 +82,9 @@
     @Override
     public void deleteOrganisationUnitGroup( OrganisationUnitGroup group )
     {
-        Iterator<OrganisationUnit> iterator = group.getMembers().iterator();
-
-        while ( iterator.hasNext() )
+        for ( OrganisationUnit unit : group.getMembers() )
         {
-            OrganisationUnit unit = iterator.next();
-
-            unit.getGroups().remove( unit );
-
+            unit.getGroups().remove( group );
             organisationUnitService.updateOrganisationUnit( unit );
         }
     }

=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/organisationunit/OrganisationUnitGroupDeletionHandler.java'
--- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/organisationunit/OrganisationUnitGroupDeletionHandler.java	2014-01-09 10:09:43 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/organisationunit/OrganisationUnitGroupDeletionHandler.java	2014-01-24 11:49:23 +0000
@@ -28,8 +28,6 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-import java.util.Iterator;
-
 import org.hisp.dhis.dataset.DataSet;
 import org.hisp.dhis.system.deletion.DeletionHandler;
 
@@ -64,12 +62,9 @@
     @Override
     public void deleteOrganisationUnit( OrganisationUnit unit )
     {
-        Iterator<OrganisationUnitGroup> iterator = unit.getGroups().iterator();
-        
-        while ( iterator.hasNext() )
+        for ( OrganisationUnitGroup group : unit.getGroups() )
         {
-            OrganisationUnitGroup group = iterator.next();
-            group.removeOrganisationUnit( unit );
+            group.getMembers().remove( unit );
             organisationUnitGroupService.updateOrganisationUnitGroup( group );
         }
     }
@@ -77,12 +72,9 @@
     @Override
     public void deleteDataSet( DataSet dataSet )
     {
-        Iterator<OrganisationUnitGroup> iterator = dataSet.getOrganisationUnitGroups().iterator();
-        
-        while ( iterator.hasNext() )
+        for ( OrganisationUnitGroup group : dataSet.getOrganisationUnitGroups() )
         {
-            OrganisationUnitGroup group = iterator.next();
-            group.removeDataSet( dataSet );
+            group.getDataSets().remove( dataSet );
             organisationUnitGroupService.updateOrganisationUnitGroup( group );
         }
     }

=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/validation/ValidationRuleDeletionHandler.java'
--- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/validation/ValidationRuleDeletionHandler.java	2014-01-09 10:09:43 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/validation/ValidationRuleDeletionHandler.java	2014-01-24 11:49:23 +0000
@@ -81,15 +81,12 @@
     }
     
     @Override
-    public void deleteValidationRuleGroup( ValidationRule validationRule )
+    public void deleteValidationRuleGroup( ValidationRuleGroup validationRuleGroup )
     {
-        Iterator<ValidationRuleGroup> iterator = validationRule.getGroups().iterator();
-        
-        while ( iterator.hasNext() )
+        for ( ValidationRule rule : validationRuleGroup.getMembers() )
         {
-            ValidationRuleGroup group = iterator.next();
-            iterator.remove();
-            validationRuleService.updateValidationRuleGroup( group );
+            rule.getGroups().remove( validationRuleGroup );
+            validationRuleService.updateValidationRule( rule );
         }
     }
 }

=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/validation/ValidationRuleGroupDeletionHandler.java'
--- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/validation/ValidationRuleGroupDeletionHandler.java	2014-01-09 10:14:43 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/validation/ValidationRuleGroupDeletionHandler.java	2014-01-24 11:49:23 +0000
@@ -28,8 +28,6 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-import java.util.Iterator;
-
 import org.hisp.dhis.system.deletion.DeletionHandler;
 
 /**
@@ -61,12 +59,9 @@
     
     public void deleteValidationRule( ValidationRule validationRule )
     {
-        Iterator<ValidationRuleGroup> iterator = validationRule.getGroups().iterator();
-        
-        while ( iterator.hasNext() )
+        for ( ValidationRuleGroup group : validationRule.getGroups() )
         {
-            ValidationRuleGroup group = iterator.next();
-            group.removeValidationRule( validationRule );
+            group.getMembers().remove( validationRule );
             validationRuleService.updateValidationRuleGroup( group );
         }
     }

=== modified file 'dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/patient/PatientAuditDeletionHandler.java'
--- dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/patient/PatientAuditDeletionHandler.java	2013-08-23 16:05:01 +0000
+++ dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/patient/PatientAuditDeletionHandler.java	2014-01-24 11:49:23 +0000
@@ -29,13 +29,12 @@
  */
 
 import java.util.Collection;
+import java.util.Iterator;
 
 import org.hisp.dhis.system.deletion.DeletionHandler;
 
 /**
  * @author Chau Thu Tran
- *
- * @version PatientAuditDeletionHandler.java 8:44:33 AM Jan 5, 2013 $
  */
 public class PatientAuditDeletionHandler extends DeletionHandler
 {
@@ -65,9 +64,13 @@
     {
         Collection<PatientAudit> patientAudits = patientAuditService.getPatientAudits( patient );
         
-        for ( PatientAudit patientAudit : patientAudits )
+        Iterator<PatientAudit> iterator = patientAudits.iterator();
+        
+        while ( iterator.hasNext() )
         {
-            patientAuditService.deletePatientAudit( patientAudit );
+            PatientAudit audit = iterator.next();
+            iterator.remove();
+            patientAuditService.deletePatientAudit( audit );
         }
     }
 }

=== modified file 'dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/patientattributevalue/PatientAttributeValueDeletionHandler.java'
--- dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/patientattributevalue/PatientAttributeValueDeletionHandler.java	2014-01-09 10:55:02 +0000
+++ dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/patientattributevalue/PatientAttributeValueDeletionHandler.java	2014-01-24 11:49:23 +0000
@@ -29,6 +29,7 @@
  */
 
 import java.util.Collection;
+import java.util.Iterator;
 
 import org.hisp.dhis.patient.Patient;
 import org.hisp.dhis.patient.PatientAttribute;
@@ -69,9 +70,13 @@
         Collection<PatientAttributeValue> attributeValues = patientAttributeValueService
             .getPatientAttributeValues( patient );
 
-        for ( PatientAttributeValue attributeValue : attributeValues )
+        Iterator<PatientAttributeValue> iterator = attributeValues.iterator();
+        
+        while ( iterator.hasNext() )
         {
-            patientAttributeValueService.deletePatientAttributeValue( attributeValue );
+            PatientAttributeValue value = iterator.next();
+            
+            patientAttributeValueService.deletePatientAttributeValue( value );
         }
     }
 
@@ -80,12 +85,13 @@
         Collection<PatientAttributeValue> attributeValues = patientAttributeValueService
             .getPatientAttributeValues( patientAttribute );
 
-        if ( attributeValues != null && !attributeValues.isEmpty() )
+        Iterator<PatientAttributeValue> iterator = attributeValues.iterator();
+
+        while ( iterator.hasNext() )
         {
-            for ( PatientAttributeValue attributeValue : attributeValues )
-            {
-                patientAttributeValueService.deletePatientAttributeValue( attributeValue );
-            }
+            PatientAttributeValue value = iterator.next();
+            
+            patientAttributeValueService.deletePatientAttributeValue( value );
         }
     }
 }

=== modified file 'dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/deletion/DeletionHandler.java'
--- dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/deletion/DeletionHandler.java	2014-01-23 14:18:27 +0000
+++ dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/deletion/DeletionHandler.java	2014-01-24 11:49:23 +0000
@@ -338,15 +338,6 @@
         return null;
     }
     
-    public void deleteValidationRuleGroup( ValidationRule validationRule )
-    {
-    }
-    
-    public String allowDeleteValidationRuleGroup( ValidationRule validationRule )
-    {
-        return null;
-    }
-
     public void deleteValidationRuleGroup( ValidationRuleGroup validationRuleGroup )
     {
     }

=== modified file 'dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/util/DateUtils.java'
--- dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/util/DateUtils.java	2013-12-18 15:28:59 +0000
+++ dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/util/DateUtils.java	2014-01-24 11:49:23 +0000
@@ -444,8 +444,8 @@
         String formatString = DEFAULT_DATE_FORMAT;
         SimpleDateFormat sdf = new SimpleDateFormat( formatString );
 
-        Date date1 = new Date();
-        Date date2 = new Date();
+        Date date1 = null;
+        Date date2 = null;
 
         try
         {

=== modified file 'dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/util/ExcelUtils.java'
--- dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/util/ExcelUtils.java	2013-09-16 17:07:25 +0000
+++ dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/util/ExcelUtils.java	2014-01-24 11:49:23 +0000
@@ -65,10 +65,10 @@
 {
     public static final String EXTENSION_XLS = ".xls";
 
-    public static WritableCellFormat FORMAT_LABEL = new WritableCellFormat( new WritableFont( WritableFont.ARIAL, 13,
+    public static final WritableCellFormat FORMAT_LABEL = new WritableCellFormat( new WritableFont( WritableFont.ARIAL, 13,
         WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE, Colour.BLACK ) );
     
-    public static WritableCellFormat FORMAT_TEXT = new WritableCellFormat( new WritableFont( WritableFont.ARIAL, 11,
+    public static final WritableCellFormat FORMAT_TEXT = new WritableCellFormat( new WritableFont( WritableFont.ARIAL, 11,
         WritableFont.NO_BOLD, false ) );
     
     public static void printDataElementHeaders( WritableSheet sheet, I18n i18n, int row,

=== modified file 'dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/util/PredicateUtils.java'
--- dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/util/PredicateUtils.java	2013-08-23 16:05:01 +0000
+++ dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/util/PredicateUtils.java	2014-01-24 11:49:23 +0000
@@ -43,19 +43,19 @@
  */
 public class PredicateUtils
 {
-    public static Predicate<Field> alwaysTrue = new StaticReply( true );
-
-    public static Predicate<Field> alwaysFalse = new StaticReply( false );
-
-    public static Predicate<Field> idObjects = new ObjectWithTypePredicate( IdentifiableObject.class );
-
-    public static Predicate<Field> collections = new CollectionPredicate();
-
-    public static Predicate<Field> idObjectCollections = new CollectionWithTypePredicate( IdentifiableObject.class );
-
-    public static Predicate<Field> objectCollectionsWithScanned = new CollectionWithAnnotationPredicate( Scanned.class );
-
-    public static Predicate<Field> idObjectCollectionsWithScanned = new CollectionWithTypeAndAnnotationPredicate( IdentifiableObject.class, Scanned.class );
+    public static final Predicate<Field> alwaysTrue = new StaticReply( true );
+
+    public static final Predicate<Field> alwaysFalse = new StaticReply( false );
+
+    public static final Predicate<Field> idObjects = new ObjectWithTypePredicate( IdentifiableObject.class );
+
+    public static final Predicate<Field> collections = new CollectionPredicate();
+
+    public static final Predicate<Field> idObjectCollections = new CollectionWithTypePredicate( IdentifiableObject.class );
+
+    public static final Predicate<Field> objectCollectionsWithScanned = new CollectionWithAnnotationPredicate( Scanned.class );
+
+    public static final Predicate<Field> idObjectCollectionsWithScanned = new CollectionWithTypeAndAnnotationPredicate( IdentifiableObject.class, Scanned.class );
 
     public static class StaticReply
         implements Predicate<Field>