1. #1
    Sencha User
    Join Date
    Mar 2012
    Posts
    10
    Vote Rating
    0
    drkstr is on a distinguished road

      0  

    Default Unanswered: Best way to implement dynamic property access on a static type

    Unanswered: Best way to implement dynamic property access on a static type


    Hello Everyone,

    I need to implement a declarative command pattern that can update a value on a variety of static types, given a string value for the key. These types can be modified as needed to support the pattern, but need to be operated on in a generic way (IE. I can make all these types implement a common interface). Each type must react to changes made to these properties.

    Here is what I have so far:

    Code:
    public class Main implements EntryPoint{
        @Override
        public void onModuleLoad()
        {
        MyView view = new MyView();
    
    
        SetPropertyCommand command = new SetPropertyCommand();
        command.target = view;
        command.property = "text";
        command.value = "Hello World!";
    
    
        command.execute();
    
    
        RootPanel.get().add(view);
        
        GWT.log("text = " + view.getValue("text"), null);
        }
    }
    
    
    interface IValueTarget
    {
        public void setValue(String name, Object value);
        
        public Object getValue(String property);
    }
    
    
    class SetPropertyCommand
    {
        public String property;
        
        public IValueTarget target;
        
        public Object value;
    
    
        public void execute()
        {
        this.target.setValue(this.property, this.value);
        }
    }
    
    
    class MyView extends Html implements IValueTarget
    {
        
        private HashMap<String,Object> _properties = new HashMap<String,Object>();
        
        public void setValue(String name, Object value)
        {
        _properties.put(name, value);
        
        //gross!
        if (name == "text")
            setHtml((String) value);
        }
        
        public Object getValue(String property)
        {
        return _properties.get(property);
        }
    }
    This seems to work ok, but I really hate the idea idea of switching through a bunch of magic string values in every IValueTarget implementation (there are a lot of them, each with a unique set of properties that can be operated on in this manor).

    Is there a way to implement this with strong typing? I was looking at using the new ValueProvider functionality to expose these properties, but then I am still not sure how I would reference them using a String value, and react to changes when a value is set.

    Any guidance you can provide will be greatly appreciated.


    Thanks for your time!

  2. #2
    Sencha User
    Join Date
    Mar 2012
    Posts
    10
    Vote Rating
    0
    drkstr is on a distinguished road

      0  

    Default


    Just to clarify a bit, in Actionscript I would do this by putting the logic in getters and setters. This way, all the exposed properties would be included in the API documentation. In Java I could just name my get/set methods to match whatever string value should be used to reference it, and then grab a reference to it using the reflection API. But this doesn't appear to be an option in GWT.

    So I guess what my question is, is there any possible way to reference a method using a String, or do I need to implement a function in each of my types that switches through a string value and manually calls the appropriate function?

    Thanks again for your time!

Turkiyenin en sevilen filmlerinin yer aldigi xnxx internet sitemiz olan ve porn sex tarzi bir site olan mobil porno izle sitemiz gercekten dillere destan bir durumda herkesin sevdigi bir site olarak tarihe gececege benziyor. Sitenin en belirgin ozelliklerinden birisi de Turkiyede gercekten kaliteli ve muntazam, duzenli porno izle siteleri olmamasidir. Bu yuzden iste. Ayrica en net goruntu kalitesine sahip adresinde yayinlanmaktadir. Mesela diğer sitelerimizden bahsedecek olursak, en iyi hd porno video arşivine sahip bir siteyiz. "The Best anal porn videos and slut anus, big asses movies set..." hd porno faketaxi