currently the service we use to fetch the translation is not
instantiated by Guice. A simplified Version of the getTranslation
method looks like:
String getTranslation() {
ContentService service = ContentService.getInstance();
return service.getText(_internalCountryCode);
}
On 29 Apr., 15:02, Miroslav Genov <[email protected]> wrote:
> Could you give your current implementation of getTranslation method or just
> give some more details how trasnslation is retrieved from the Country object ?
>
> Regards,
> Miroslav
>
> On 04/29/2010 03:15 PM, senny wrote:
>
>
>
> > Thanks for the fast response. The static instances are currently used
> > for comparison and default value assignment. Since we do have pertty
> > many such instances in different classes I think creating an
> > Annotation for every Instance is just not maintainable. Also the
> > comparisons to check if a on Object equals SWITZERLAND or GERMANY
> > would be cumbersome if I had to get these Objects from Guice.
>
> > The getTranslation method is used to get a string representation for
> > the internalCountryCode. That String must be fetched from an external
> > Service. I guess it is possible to encapsulate the Translation of a
> > Country within an other Service but it would be great if I could get
> > it working within the Country Instances.
>
> > On 29 Apr., 12:20, Miroslav Genov<[email protected]> wrote:
>
> >> I don't know the whole idea of getTranslation() method, but here are
> >> some code snippets that could give you idea how code could be re-organized.
>
> >> public interface DictionaryService {
>
> >> String getCountryTranslation(String countryName);
>
> >> }
>
> >> public class EuropeanDictionaryService implements DictionaryService {
> >> private final Set<Country> europeList;
>
> >> public EuropeatDictionaryService(@Europe Set<Country> list) {
> >> this.europeList = Collections.unmodifiableSet(list);
> >> }
>
> >> public String getCountryTranslation(String countryName) {
> >> for (Country country : europeList) {
> >> if (country.getName().equalsIgnoreCase(countryName)) {
> >> //do some stuff
> >> }
> >> }
> >> return "";
> >> }
>
> >> }
>
> >> public class Client {
>
> >> public Client(@Europe DictionaryService europeDictionary, @Africa
> >> DictionaryService africaDictionary) {
> >> ...........................
> >> }
>
> >> }
>
> >> Guice's Multibindings functionality could be used for country
> >> grouping.http://code.google.com/p/google-guice/wiki/Multibindings
>
> >> Hope that this will help you find out how to remove static instances
> >> from your code.
>
> >> Regards,
> >> Miroslav
>
> >> On 04/29/2010 09:05 AM, senny wrote:
>
> >>> Hi,
>
> >>> We are currently integrating Guice into an existing Project. Most of
> >>> the Objects are created via the Guice Injector and work fine but there
> >>> is a case where I dont know the right way to Refactor it. We have the
> >>> following Situation:
>
> >>> public class Country {
> >>> public static final Country SWITZERLAND = new Country(123);
> >>> public static final Country GERMANY = new Country(456);
>
> >>> private Integer _internalCountryCode;
>
> >>> public Country(Integer internalCountryCode) {
> >>> _internalCountryCode = internalCountryCode;
> >>> }
>
> >>> public String getTranslation() {
> >>> //I need a Service from Guice to perform the translation
> >>> }
>
> >>> }
>
> >>> The problem is that of course the static Country instances do not get
> >>> created by Guice and so I cant inject the necessary service to
> >>> translate into the objects. Is there a way to refactor that code to
> >>> make it more guicey?
>
> >>> Cheers,
> >>> -- Yves
>
> >> --
> >> You received this message because you are subscribed to the Google Groups
> >> "google-guice" group.
> >> To post to this group, send email to [email protected].
> >> To unsubscribe from this group, send email to
> >> [email protected].
> >> For more options, visit this group
> >> athttp://groups.google.com/group/google-guice?hl=en.
>
> --
> You received this message because you are subscribed to the Google Groups
> "google-guice" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group
> athttp://groups.google.com/group/google-guice?hl=en.
--
You received this message because you are subscribed to the Google Groups
"google-guice" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/google-guice?hl=en.