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 at 
http://groups.google.com/group/google-guice?hl=en.

Reply via email to