Пример #1
0
 public static final boolean hasMatchingDominantSortAttribute(
     CommonFieldsBase odkLastEntity, CommonFieldsBase odkEntity, DataField dominantAttr) {
   boolean matchingDominantAttr = false;
   switch (dominantAttr.getDataType()) {
     case BINARY:
       throw new IllegalStateException("unexpected sort on binary field");
     case LONG_STRING:
       throw new IllegalStateException("unexpected sort on long text field");
     case URI:
     case STRING:
       {
         String a1 = odkLastEntity.getStringField(dominantAttr);
         String a2 = odkEntity.getStringField(dominantAttr);
         matchingDominantAttr =
             (a1 == null) ? (a2 == null) : ((a2 != null) && a1.compareTo(a2) == 0);
       }
       break;
     case INTEGER:
       {
         Long a1 = odkLastEntity.getLongField(dominantAttr);
         Long a2 = odkEntity.getLongField(dominantAttr);
         matchingDominantAttr =
             (a1 == null) ? (a2 == null) : ((a2 != null) && a1.compareTo(a2) == 0);
       }
       break;
     case DECIMAL:
       {
         BigDecimal a1 = odkLastEntity.getNumericField(dominantAttr);
         BigDecimal a2 = odkEntity.getNumericField(dominantAttr);
         matchingDominantAttr =
             (a1 == null) ? (a2 == null) : ((a2 != null) && a1.compareTo(a2) == 0);
       }
       break;
     case BOOLEAN:
       {
         Boolean a1 = odkLastEntity.getBooleanField(dominantAttr);
         Boolean a2 = odkEntity.getBooleanField(dominantAttr);
         matchingDominantAttr =
             (a1 == null) ? (a2 == null) : ((a2 != null) && a1.compareTo(a2) == 0);
       }
       break;
     case DATETIME:
       {
         Date a1 = odkLastEntity.getDateField(dominantAttr);
         Date a2 = odkEntity.getDateField(dominantAttr);
         matchingDominantAttr =
             (a1 == null) ? (a2 == null) : ((a2 != null) && a1.compareTo(a2) == 0);
       }
       break;
     default:
       throw new IllegalStateException("unexpected data type");
   }
   return matchingDominantAttr;
 }
Пример #2
0
 public static final String getDominantSortAttributeValueAsString(
     CommonFieldsBase cb, DataField dominantAttr) {
   String value;
   switch (dominantAttr.getDataType()) {
     case BINARY:
       throw new IllegalStateException("cannot sort on a binary field");
     case LONG_STRING:
       throw new IllegalStateException("cannot sort on a long text field");
     case URI:
     case STRING:
       {
         value = cb.getStringField(dominantAttr);
         break;
       }
     case INTEGER:
       {
         Long l = cb.getLongField(dominantAttr);
         if (l == null) {
           value = null;
         } else {
           value = Long.toString(l);
         }
         break;
       }
     case DECIMAL:
       {
         BigDecimal bd = cb.getNumericField(dominantAttr);
         if (bd == null) {
           value = null;
         } else {
           value = bd.toString();
         }
         break;
       }
     case BOOLEAN:
       {
         Boolean b = cb.getBooleanField(dominantAttr);
         if (b == null) {
           value = null;
         } else {
           value = b.toString();
         }
         break;
       }
     case DATETIME:
       {
         Date d = cb.getDateField(dominantAttr);
         if (d == null) {
           value = null;
         } else {
           value = WebUtils.iso8601Date(d);
         }
         break;
       }
     default:
       throw new IllegalStateException("datatype not handled");
   }
   return value;
 }
Пример #3
0
 public static final Object getDominantSortAttributeValue(
     CommonFieldsBase odkEntity, DataField dominantAttr) {
   switch (dominantAttr.getDataType()) {
     case BINARY:
       throw new IllegalStateException("unexpected sort on binary field");
     case LONG_STRING:
       throw new IllegalStateException("unexpected sort on long text field");
     case URI:
     case STRING:
       return odkEntity.getStringField(dominantAttr);
     case INTEGER:
       return odkEntity.getLongField(dominantAttr);
     case DECIMAL:
       return odkEntity.getNumericField(dominantAttr);
     case BOOLEAN:
       return odkEntity.getBooleanField(dominantAttr);
     case DATETIME:
       return odkEntity.getDateField(dominantAttr);
     default:
       throw new IllegalStateException("unexpected data type");
   }
 }