基本的例子

content-model.xml

....
<constraints>
    <constraint name="my:aConstraintList" type="x.y.z.project.model.constraint.AConstraintList">
    </constraint>
....
<property name="my:aValue">
    <title>My Value</title>
    <type>d:text</type>
    <constraints>
          <constraint ref="my:aConstraintList"></constraint>
    </constraints>
 </property>

以及之前声明的 Java 类:

public class AConstraintList extends ListOfValuesConstraint implements Serializable {

    ....
    @Override
    public final List<String> getAllowedValues() {
        // Return here the list of values. Enum, call a webservice, etc.
    }

     @Override
     public final String getDisplayLabel(final String value, final MessageLookup messageLookup) {
         // Return here the label for the value
     }
}