// Path: src/main/java/no/met/metadataeditor/dataTypes/DataType.java
// public enum DataType {
// 
//     INTEGER {
//         @Override
//         public DataAttributeValidationResult validate(String value) {
// 
//             BigIntegerValidator v = BigIntegerValidator.getInstance();
// 
//             if( v.validate(value) == null ){
//                 return new DataAttributeValidationResult(false, "'" + value + "' is not a valid integer.");
//             } else {
//                 return new DataAttributeValidationResult(true, null);
//             }
//         }
//     },
//     FLOAT {
//         @Override
//         public DataAttributeValidationResult validate(String value) {
// 
//             BigDecimalValidator v = BigDecimalValidator.getInstance();
// 
//             if( v.validate(value, Locale.US) == null ){
//                 return new DataAttributeValidationResult(false, "'" + value + "' is not a valid number.");
//             } else {
//                 return new DataAttributeValidationResult(true, null);
//             }
//         }
//     },
//     DATE {
//         @Override
//         public DataAttributeValidationResult validate(String value) {
// 
//             DateValidator v = DateValidator.getInstance();
//             String dateformat = "yyyy-MM-dd";
// 
//             if( v.validate(value, dateformat) == null ){
//                 return new DataAttributeValidationResult(false, "'" + value + "' is not a valid date .");
//             } else {
//                 return new DataAttributeValidationResult(true, null);
//             }
// 
//         }
//     },
//     DATETIME {
//         @Override
//         public DataAttributeValidationResult validate(String value) {
// 
//             DateValidator v = DateValidator.getInstance();
//             String dateformatUTCNoSec = "yyyy-MM-dd'T'HH:mm'Z'";
//             String dateformatUTCSec = "yyyy-MM-dd'T'HH:mm:ss'Z'";
// 
//             if( v.validate(value, dateformatUTCNoSec) != null ){
//                 return new DataAttributeValidationResult(true, null);
//             } if( v.validate(value, dateformatUTCSec) != null ){
//                 return new DataAttributeValidationResult(true, null);
//             } else {
//                 return new DataAttributeValidationResult(false, "'" + value + "' is not a valid date time.");
//             }
//         }
//     },
//     STRING {
//         @Override
//         public DataAttributeValidationResult validate(String value) {
// 
//             if( "".equals(value)){
//                 return new DataAttributeValidationResult(false, "You should input a value");
//             }
// 
//             return new DataAttributeValidationResult(true, null);
//         }
//     },
//     URI {
//         @Override
//         public DataAttributeValidationResult validate(String value) {
// 
//             if( "".equals(value)){
//                 return new DataAttributeValidationResult(false, "You must input a value");
//             }
// 
//             try {
//                 new java.net.URI(value);
//                 return new DataAttributeValidationResult(true, null);
//             } catch (URISyntaxException e) {
//                 return new DataAttributeValidationResult(false, "'" + value + "' is not a valid URI.");
//             }
//         }
//     },
//     URL {
//         @Override
//         public DataAttributeValidationResult validate(String value) {
// 
//             UrlValidator v = new UrlValidator(UrlValidator.ALLOW_ALL_SCHEMES);
// 
//             if( !v.isValid(value)){
//                 return new DataAttributeValidationResult(false, "'" + value + "' is not a valid URL");
//             } else {
//                 return new DataAttributeValidationResult(true, null);
//             }
// 
//         }
//     },
//     EMAIL {
//         @Override
//         public DataAttributeValidationResult validate(String value) {
// 
//             EmailValidator v = EmailValidator.getInstance();
// 
//             if( !v.isValid(value)){
//                 return new DataAttributeValidationResult(false, "'" + value + "' is not a valid email.");
//             } else {
//                 return new DataAttributeValidationResult(true, null);
//             }
//         }
//     };
// 
// 
// 
// 
//     public abstract DataAttributeValidationResult validate(String value);
// }


import no.met.metadataeditor.dataTypes.DataType;
import no.met.metadataeditor.dataTypes.IsAttributeValue;
package no.met.metadataeditor.dataTypes.attributes;


public class DateAttribute extends DataAttribute {

    @IsAttributeValue(DataType.DATE)
// Path: src/main/java/no/met/metadataeditor/dataTypes/DataType.java
// public enum DataType {
// 
//     INTEGER {
//         @Override
//         public DataAttributeValidationResult validate(String value) {
// 
//             BigIntegerValidator v = BigIntegerValidator.getInstance();
// 
//             if( v.validate(value) == null ){
//                 return new DataAttributeValidationResult(false, "'" + value + "' is not a valid integer.");
//             } else {
//                 return new DataAttributeValidationResult(true, null);
//             }
//         }
//     },
//     FLOAT {
//         @Override
//         public DataAttributeValidationResult validate(String value) {
// 
//             BigDecimalValidator v = BigDecimalValidator.getInstance();
// 
//             if( v.validate(value, Locale.US) == null ){
//                 return new DataAttributeValidationResult(false, "'" + value + "' is not a valid number.");
//             } else {
//                 return new DataAttributeValidationResult(true, null);
//             }
//         }
//     },
//     DATE {
//         @Override
//         public DataAttributeValidationResult validate(String value) {
// 
//             DateValidator v = DateValidator.getInstance();
//             String dateformat = "yyyy-MM-dd";
// 
//             if( v.validate(value, dateformat) == null ){
//                 return new DataAttributeValidationResult(false, "'" + value + "' is not a valid date .");
//             } else {
//                 return new DataAttributeValidationResult(true, null);
//             }
// 
//         }
//     },
//     DATETIME {
//         @Override
//         public DataAttributeValidationResult validate(String value) {
// 
//             DateValidator v = DateValidator.getInstance();
//             String dateformatUTCNoSec = "yyyy-MM-dd'T'HH:mm'Z'";
//             String dateformatUTCSec = "yyyy-MM-dd'T'HH:mm:ss'Z'";
// 
//             if( v.validate(value, dateformatUTCNoSec) != null ){
//                 return new DataAttributeValidationResult(true, null);
//             } if( v.validate(value, dateformatUTCSec) != null ){
//                 return new DataAttributeValidationResult(true, null);
//             } else {
//                 return new DataAttributeValidationResult(false, "'" + value + "' is not a valid date time.");
//             }
//         }
//     },
//     STRING {
//         @Override
//         public DataAttributeValidationResult validate(String value) {
// 
//             if( "".equals(value)){
//                 return new DataAttributeValidationResult(false, "You should input a value");
//             }
// 
//             return new DataAttributeValidationResult(true, null);
//         }
//     },
//     URI {
//         @Override
//         public DataAttributeValidationResult validate(String value) {
// 
//             if( "".equals(value)){
//                 return new DataAttributeValidationResult(false, "You must input a value");
//             }
// 
//             try {
//                 new java.net.URI(value);
//                 return new DataAttributeValidationResult(true, null);
//             } catch (URISyntaxException e) {
//                 return new DataAttributeValidationResult(false, "'" + value + "' is not a valid URI.");
//             }
//         }
//     },
//     URL {
//         @Override
//         public DataAttributeValidationResult validate(String value) {
// 
//             UrlValidator v = new UrlValidator(UrlValidator.ALLOW_ALL_SCHEMES);
// 
//             if( !v.isValid(value)){
//                 return new DataAttributeValidationResult(false, "'" + value + "' is not a valid URL");
//             } else {
//                 return new DataAttributeValidationResult(true, null);
//             }
// 
//         }
//     },
//     EMAIL {
//         @Override
//         public DataAttributeValidationResult validate(String value) {
// 
//             EmailValidator v = EmailValidator.getInstance();
// 
//             if( !v.isValid(value)){
//                 return new DataAttributeValidationResult(false, "'" + value + "' is not a valid email.");
//             } else {
//                 return new DataAttributeValidationResult(true, null);
//             }
//         }
//     };
// 
// 
// 
// 
//     public abstract DataAttributeValidationResult validate(String value);
// }


// Path: src/main/java/no/met/metadataeditor/dataTypes/attributes/DateAttribute.java
import no.met.metadataeditor.dataTypes.DataType;
import no.met.metadataeditor.dataTypes.IsAttributeValue;

package no.met.metadataeditor.dataTypes.attributes;


public class DateAttribute extends DataAttribute {

    @IsAttributeValue(DataType.DATE)
    String date;