blob: d362efa45198f4f77cd94a71a116337fda32e7e8 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.bval.model;
/**
* Description: Contains key of common feature keys used by standard validators etc.
* This DOES NOT MEAN that the list of property- or bean-features is closed. You can
* put anything into the metabean as a feature and use it in your custom validators
* and other classes that access your metabeans.<br/>
*
* @see FeaturesCapable
*/
public interface Features {
/** Features of {@link MetaBean} */
public interface Bean {
/** INFO: String, name of the Property, that is the Primary Key */
String MAIN_KEY = "mainKey";
/** INFO: category/domain to which the metaBean belongs to */
String DOMAIN = "domain";
// String DISPLAY_NAME = "displayName";
String UNIQUE_KEY = "uniqueKey";
}
/** Features of {@link MetaProperty} */
public interface Property {
/** INFO: possible Enum values */
String ENUM = "enum";
/** INFO: Boolean, TRUE if Property is a Unique Key */
String UNIQUE_KEY = "uniqueKey";
/** VALIDATION: Boolean, mandatory field? */
String MANDATORY = "mandatory";
/** VALIDATION: Integer, max. number of chars/digits / max. cardinality of a to-many relationship */
String MAX_LENGTH = "maxLen";
/** VALIDATION: Comparable (e.g. a subclass of Number), max value */
String MAX_VALUE = "maxValue";
/** VALIDATION: Integer, min. number of chars/digits / min. cardinality of a to-many relationship */
String MIN_LENGTH = "minLen";
/** VALIDATION: Comparable (e.g. a subclass of Number), min value */
String MIN_VALUE = "minValue";
/** INFO: String-representation of a default value */
String DEFAULT_VALUE = "defValue";
/** SECURITY, INFO: Boolean, is value or relationship unmodifiable */
String READONLY = "readonly";
/**
* SECURITY, INFO: Boolean, Field accessible?
* If false, the field must not be displayed, queried, changed.
*/
String DENIED = "denied";
/** VALIDATION: String, regular expression to validate the format of input data */
String REG_EXP = "regExp";
/**
* VALIDATION: String, Constraint for time-information of a Date-field:
* {@link org.apache.bval.xml.XMLMetaValue#TIMELAG_Past}
* or
* {@link org.apache.bval.xml.XMLMetaValue#TIMELAG_Future}
*/
String TIME_LAG = "timeLag";
/**
* INFO: Boolean, Field visible?
*
* @see java.beans.PropertyDescriptor#isHidden()
*/
String HIDDEN = "hidden";
/**
* INFO: Boolean
*
* @see java.beans.PropertyDescriptor#isPreferred()
*/
String PREFERRED = "preferred";
/** INFO: relationship's target metaBean.id * */
String REF_BEAN_ID = "refBeanId";
/**
* INFO: Class<br>
* Relationship's target metaBean.beanClass.
* In case of to-many relationships, this feature
* hold the Bean-type not the Collection-type.
*/
String REF_BEAN_TYPE = "refBeanType";
/**
* INFO: AccessStrategy[]<br>
* an array of accessStrategies
* how validation should cascade into relationship target beans<br>
* null when validation should NOT cascade into relationship target
* beans<br>
* <p/>
* Default: {PropertyAccess(metaProperty.name)},
* when MetaProperty.metaBean is != null
*/
String REF_CASCADE = "refCascade";
/** INFO: an array with the string names of custom java script validation functions */
@Deprecated // TODO RSt - I suggest to remove this and all related code
String JAVASCRIPT_VALIDATION_FUNCTIONS = "jsFunctions";
}
}