Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
/*
* 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 com.opensymphony.xwork2;
import com.opensymphony.xwork2.inject.Inject;
import com.opensymphony.xwork2.util.ValueStack;
import java.util.*;
/**
* Default TextProvider implementation.
*
* @author Jason Carreira
* @author Rainer Hermanns
*/
public class TextProviderSupport implements ResourceBundleTextProvider {
protected Class clazz;
protected LocaleProvider localeProvider;
protected ResourceBundle bundle;
protected LocalizedTextProvider localizedTextProvider;
/**
* Constructor.
*
* @param clazz a clazz to use for reading the resource bundle.
* @param provider a locale provider.
*/
public TextProviderSupport(Class clazz, LocaleProvider provider, LocalizedTextProvider localizedTextProvider) {
this.clazz = clazz;
this.localeProvider = provider;
this.localizedTextProvider = localizedTextProvider;
}
/**
* Constructor.
*
* @param bundle the resource bundle.
* @param provider a locale provider.
*/
public TextProviderSupport(ResourceBundle bundle, LocaleProvider provider, LocalizedTextProvider localizedTextProvider) {
this.bundle = bundle;
this.localeProvider = provider;
this.localizedTextProvider = localizedTextProvider;
}
/**
* @param bundle the resource bundle.
*/
@Override
public void setBundle(ResourceBundle bundle) {
this.bundle = bundle;
}
/**
* @param clazz a clazz to use for reading the resource bundle.
*/
@Override
public void setClazz(Class clazz) {
this.clazz = clazz;
}
/**
* @param localeProvider a locale provider.
*/
@Override
public void setLocaleProvider(LocaleProvider localeProvider) {
this.localeProvider = localeProvider;
}
@Inject
public void setLocaleProviderFactory(LocaleProviderFactory localeProviderFactory) {
this.localeProvider = localeProviderFactory.createLocaleProvider();
}
@Inject
public void setLocalizedTextProvider(LocalizedTextProvider localizedTextProvider) {
this.localizedTextProvider = localizedTextProvider;
}
/**
* Checks if a key is available in the resource bundles associated with this action.
* The resource bundles are searched, starting with the one associated
* with this particular action, and testing all its superclasses' bundles.
* It will stop once a bundle is found that contains the given text. This gives
* a cascading style that allow global texts to be defined for an application base
* class.
*/
public boolean hasKey(String key) {
String message;
if (clazz != null) {
message = localizedTextProvider.findText(clazz, key, getLocale(), null, new Object[0] );
} else {
message = localizedTextProvider.findText(bundle, key, getLocale(), null, new Object[0]);
}
return message != null;
}
/**
* Get a text from the resource bundles associated with this action.
* The resource bundles are searched, starting with the one associated
* with this particular action, and testing all its superclasses' bundles.
* It will stop once a bundle is found that contains the given text. This gives
* a cascading style that allow global texts to be defined for an application base
* class.
*
* @param key name of text to be found
* @return value of named text or the provided key if no value is found
*/
public String getText(String key) {
return getText(key, key, Collections.emptyList());
}
/**
* Get a text from the resource bundles associated with this action.
* The resource bundles are searched, starting with the one associated
* with this particular action, and testing all its superclasses' bundles.
* It will stop once a bundle is found that contains the given text. This gives
* a cascading style that allow global texts to be defined for an application base
* class. If no text is found for this text name, the default value is returned.
*
* @param key name of text to be found
* @param defaultValue the default value which will be returned if no text is found
* @return value of named text or the provided defaultValue if no value is found
*/
public String getText(String key, String defaultValue) {
return getText(key, defaultValue, Collections.emptyList());
}
/**
* Get a text from the resource bundles associated with this action.
* The resource bundles are searched, starting with the one associated
* with this particular action, and testing all its superclasses' bundles.
* It will stop once a bundle is found that contains the given text. This gives
* a cascading style that allow global texts to be defined for an application base
* class. If no text is found for this text name, the default value is returned.
*
* @param key name of text to be found
* @param defaultValue the default value which will be returned if no text is found
* @return value of named text or the provided defaultValue if no value is found
*/
public String getText(String key, String defaultValue, String arg) {
List