Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  // Copyright 2008, 2010 The Apache Software Foundation
  //
  // Licensed 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.tapestry5.internal.services;
 
 
 
 {
     private final TranslatorSource translatorSource;
 
 
     private final FormSupport formSupport;
 
     public FieldTranslatorSourceImpl(TranslatorSource translatorSource,
             ValidationMessagesSource validationMessagesSourceFormSupport formSupport)
     {
         this. = translatorSource;
         this. = validationMessagesSource;
         this. = formSupport;
     }
 
     public FieldTranslator createDefaultTranslator(ComponentResources resourcesString parameterName)
     {
         assert resources != null;
         assert InternalUtils.isNonBlank(parameterName);
         Field field = (Fieldresources.getComponent();
         Class propertyType = resources.getBoundType(parameterName);
 
         return createDefaultTranslator(fieldresources.getId(), resources.getContainerMessages(), resources
                 .getLocale(), propertyTyperesources.getAnnotationProvider(parameterName));
     }
 
     public FieldTranslator createDefaultTranslator(Field fieldString overrideIdMessages overrideMessages,
             Locale localeClass propertyTypeAnnotationProvider propertyAnnotations)
     {
         assert field != null;
         assert overrideMessages != null;
         assert locale != null;
         assert InternalUtils.isNonBlank(overrideId);
         if (propertyType == null)
             return null;
 
         Translator translator = findTranslator(propertyTypepropertyAnnotations);
 
         if (translator == null)
             return null;
 
         return createTranslator(fieldoverrideIdoverrideMessageslocaletranslator);
     }
 
     Translator findTranslator(Class propertyTypeAnnotationProvider propertyAnnotations)
     {
         Translate annotation = propertyAnnotations.getAnnotation(Translate.class);
 
         if (annotation != null)
             return .get(annotation.value());
 
         if (propertyType == null)
             return null;
 
         return .findByType(propertyType);
     }
 
     public FieldTranslator createTranslator(Field fieldString overrideIdMessages overrideMessagesLocale locale,
             Translator translator)
     {
         MessageFormatter formatter = findFormatter(overrideIdoverrideMessageslocaletranslator);
 
         return new FieldTranslatorImpl(fieldtranslatorformatter);
     }
 
    public FieldTranslator createTranslator(ComponentResources resourcesString translatorName)
    {
        assert resources != null;
        assert InternalUtils.isNonBlank(translatorName);
        Field field = (Fieldresources.getComponent();
        Translator translator = .get(translatorName);
        return createTranslator(fieldresources.getId(), resources.getContainerMessages(), resources.getLocale(),
                translator);
    }
    private MessageFormatter findFormatter(String overrideIdMessages overrideMessagesLocale locale,
            Translator translator)
    {
        // TAP5-228: Try to distinguish message overrides by form id and overrideId (i.e., property name) first.
        String translatorName = translator.getName();
        String overrideKey = .getFormValidationId() + "-" + overrideId + "-" + translatorName + "-message";
        if (overrideMessages.contains(overrideKey))
            return overrideMessages.getFormatter(overrideKey);
        // Ok, look for a simpler name that omits the formId prefix.
        overrideKey = overrideId + "-" + translatorName + "-message";
        if (overrideMessages.contains(overrideKey))
            return overrideMessages.getFormatter(overrideKey);
        // Otherwise, use the built-in validation message appropriate to this validator.
        Messages validationMessages = .getValidationMessages(locale);
        return validationMessages.getFormatter(translator.getMessageKey());
    }
New to GrepCode? Check out our FAQ X