//$Id$
package org.hibernate.test.annotations.collectionelement;
import java.io.Serializable;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
import javax.persistence.ElementCollection;
import javax.persistence.Embeddable;
import javax.persistence.MapKeyColumn;
import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;
import org.hibernate.annotations.Filter;
/**
* @author Emmanuel Bernard
*/
@Embeddable
public class LocalizedString implements Serializable {
private static final Locale DEFAULT_LOCALE = Locale.ENGLISH;
public LocalizedString() {
}
public LocalizedString(String string) {
this.getVariations().put( DEFAULT_LOCALE.getLanguage(), string );
}
private Map<String, String> variations =
new HashMap<String, String>( 1 );
@ElementCollection
@MapKeyColumn(name = "language_code" )
@Fetch( FetchMode.JOIN )
@Filter( name = "selectedLocale",
condition = " language_code = :param " )
public Map<String, String> getVariations() {
return variations;
}
public void setVariations(Map<String, String> variations) {
this.variations = variations;
}
}