/*******************************************************************************
 * Copyright (c) 2014 BestSolution.at EDV Systemhaus GmbH/Austria,
 * http://www.BestSolution.at
 *
 * This file is part of framework-grid which was developed with funding
 * from DI Christoph Hermann - InformationsTechnologie Beratung Hermann
 * /Austria.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0

 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *******************************************************************************/
package at.bestsolution.framework.grid;

/**
 * An observable value
 *
 * @param <T>
 *            the type
 * @since 1.0
 */
public interface Property<T> {
	/**
	 * Set the new value
	 *
	 * @param value
	 *            the value
	 */
	public void set(T value);

	/**
	 * Get the current value
	 *
	 * @return the value
	 */
	public T get();

	/**
	 * Dispose the value
	 */
	public void dispose();

	/**
	 * Attach a listener
	 *
	 * @param listener
	 *            the listener
	 */
	public void addChangeListener(ChangeListener<T> listener);

	/**
	 * Remove the listener
	 *
	 * @param listener
	 *            the listener
	 */
	public void removeChangeListener(ChangeListener<T> listener);

	/**
	 * Listener to observe changes
	 *
	 * @param <T>
	 *            the type
	 */
	@FunctionalInterface
	public interface ChangeListener<T> {
		/**
		 * Handle the changed value
		 *
		 * @param property
		 *            the property
		 * @param oldValue
		 *            the old value
		 * @param newValue
		 *            the new value
		 */
		public void valueChanged(Property<T> property, T oldValue, T newValue);
	}
}

@@ -1201,31 +1201,24 @@
 value%0A%09 */%0A%09
-public 
 void set(T v
@@ -1224,16 +1224,16 @@
 value);%0A
+
 %0A%09/**%0A%09 
@@ -1288,23 +1288,16 @@
 e%0A%09 */%0A%09
-public 
 T get();
@@ -1327,31 +1327,24 @@
 value%0A%09 */%0A%09
-public 
 void dispose
@@ -1429,31 +1429,24 @@
 tener%0A%09 */%0A%09
-public 
 void addChan
@@ -1573,23 +1573,16 @@
 r%0A%09 */%0A%09
-public 
 void rem
@@ -1737,23 +1737,16 @@
 erface%0A%09
-public 
 interfac
@@ -1970,17 +1970,10 @@
  */%0A
+
 %09%09
-public 
 void

remove some unnecessary modifiers