001// Copyright 2007, 2010 The Apache Software Foundation 002// 003// Licensed under the Apache License, Version 2.0 (the "License"); 004// you may not use this file except in compliance with the License. 005// You may obtain a copy of the License at 006// 007// http://www.apache.org/licenses/LICENSE-2.0 008// 009// Unless required by applicable law or agreed to in writing, software 010// distributed under the License is distributed on an "AS IS" BASIS, 011// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 012// See the License for the specific language governing permissions and 013// limitations under the License. 014 015package org.apache.tapestry5.internal.services; 016 017import java.util.List; 018 019import org.apache.tapestry5.commons.AnnotationProvider; 020import org.apache.tapestry5.commons.util.CollectionFactory; 021import org.apache.tapestry5.services.ValidationConstraintGenerator; 022 023@SuppressWarnings("all") 024public class ValidationConstraintGeneratorImpl implements ValidationConstraintGenerator 025{ 026 private final List<ValidationConstraintGenerator> configuration; 027 028 public ValidationConstraintGeneratorImpl(final List<ValidationConstraintGenerator> configuration) 029 { 030 this.configuration = configuration; 031 } 032 033 public List<String> buildConstraints(Class propertyType, AnnotationProvider annotationProvider) 034 { 035 assert propertyType != null; 036 assert annotationProvider != null; 037 List<String> result = CollectionFactory.newList(); 038 039 for (ValidationConstraintGenerator g : configuration) 040 { 041 List<String> constraints = g.buildConstraints(propertyType, annotationProvider); 042 043 if (constraints != null) 044 result.addAll(constraints); 045 } 046 047 // TODO: How to handle duplicate or conflicting constraints from different generators? 048 049 return result; 050 } 051}