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 PointingPosition pointing 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 PointingPositionValidator 030 extends AbstractValidator<PointingPosition> 031 { 032 /** Creates a new instance. */ 033 public PointingPositionValidator() 034 { 035 super(PointingPositionValidator.class.getName(), PointingPosition.class); 036 } 037 038 /* (non-Javadoc) 039 * @see AbstractValidator#makeValidationList(ValidationPurpose) 040 */ 041 @Override 042 protected List<Validation<PointingPosition>> 043 makeValidationList(ValidationPurpose purpose) 044 { 045 List<Validation<PointingPosition>> validations = 046 new ArrayList<Validation<PointingPosition>>(); 047 048 validations.add(new HasPosition(this, purpose)); 049 050 return validations; 051 } 052 053 //============================================================================ 054 // UNITIALIZED FIELD VALIDATIONS 055 //============================================================================ 056 057 class HasPosition extends DataNotEnteredValidation<PointingPosition> 058 { 059 protected HasPosition( 060 AbstractValidator<PointingPosition> validationContainer, 061 ValidationPurpose reasonForValidation) 062 { 063 super(validationContainer, reasonForValidation, 064 "pointing position", "time at position", "0.0"); 065 } 066 067 @Override 068 protected String getCurrentValue() 069 { 070 return target.getTimeAtPosition().getValue().toString(); 071 } 072 } 073 }