001 package edu.nrao.sss.model.project.scan; 002 003 import java.util.ArrayList; 004 import java.util.List; 005 006 import edu.nrao.sss.validation.AbstractValidator; 007 import edu.nrao.sss.validation.DataNotEnteredValidation; 008 import edu.nrao.sss.validation.Validation; 009 import edu.nrao.sss.validation.ValidationPurpose; 010 011 /** 012 * A validator of {@link TippingPosition tipping positions}. 013 * <p> 014 * <u>Validations Performed for All Purposes</u> 015 * <ol> 016 * <li>Time spent at position is greater than zero.</li> 017 * </ol></p> 018 * <p> 019 * <b>Version Info:</b> 020 * <table style="margin-left:2em"> 021 * <tr><td>$Revision: 1256 $</td></tr> 022 * <tr><td>$Date: 2008-04-29 15:55:50 -0600 (Tue, 29 Apr 2008) $</td></tr> 023 * <tr><td>$Author: dharland $</td></tr> 024 * </table></p> 025 * 026 * @author David M. Harland 027 * @since 2007-02-21 028 */ 029 public class TippingPositionValidator 030 extends AbstractValidator<TippingPosition> 031 { 032 /** Creates a new instance. */ 033 public TippingPositionValidator() 034 { 035 super(TippingPositionValidator.class.getName(), TippingPosition.class); 036 } 037 038 /* (non-Javadoc) 039 * @see AbstractValidator#makeValidationList(ValidationPurpose) 040 */ 041 @Override 042 protected List<Validation<TippingPosition>> 043 makeValidationList(ValidationPurpose purpose) 044 { 045 List<Validation<TippingPosition>> validations = 046 new ArrayList<Validation<TippingPosition>>(); 047 048 validations.add(new HasTime(this, purpose)); 049 050 return validations; 051 } 052 053 //============================================================================ 054 // UNITIALIZED FIELD VALIDATIONS 055 //============================================================================ 056 057 class HasTime extends DataNotEnteredValidation<TippingPosition> 058 { 059 protected HasTime(AbstractValidator<TippingPosition> validationContainer, 060 ValidationPurpose reasonForValidation) 061 { 062 super(validationContainer, reasonForValidation, 063 "tipping position", "time at position", "0.0"); 064 } 065 066 @Override 067 protected String getCurrentValue() 068 { 069 return target.getTimeAtPosition().getValue().toString(); 070 } 071 } 072 }