001    // License: GPL. For details, see LICENSE file.
002    package org.openstreetmap.josm.tools;
003    
004    /**
005     * Small interface to define a property with both read and write access.
006     */
007    public interface Property<ObjectType, PropertyType> {
008        /**
009         * Get the value of the property.
010         * @param obj the object, from that the property is derived
011         * @return the value of the property for the object obj
012         */
013        public PropertyType get(ObjectType obj);
014        /**
015         * Set the value of the property for the object.
016         * @param obj the object for that the property should be set
017         * @param value the value the property is set to
018         */
019        public void set(ObjectType obj, PropertyType value);
020    }