net.sf.gluebooster.java.booster.basic.meta.Zoomable Maven / Gradle / Ivy
package net.sf.gluebooster.java.booster.basic.meta;
import java.util.List;
import org.apache.commons.lang3.tuple.Pair;
/**
* Optimization: Use Zoomfactor (getter and
*
* @author CBauer
*
* @param
* the class of the objects to which the zoom in leads.
* @param
* the class of the objects that act as focus (to click) when zooming
* in
* @param
* the class of the objects to which the zoom out leads.
* @param
* the class of the objects that act as focus (to click) when zooming
* out
* @param
* for example the zoom factor
* @defaultParamText zoomInFocus the focus for zooming in
* @defaultParamText parameter additional zoom parameter
*/
public interface Zoomable {
/**
* Get the object and focus for zooming out. The result may be null or
* object and/or focus may be null.
*
* @return the pair of object and focus
*/
Pair getZoomOut(ZoomParameter parameter);
/**
* Set the object, focus and (default) parameter for zooming out.
*
* @param value
* the new values
*/
void setZoomOut(Pair value, ZoomParameter parameter);
/**
* Get the zoomed object when zooming in.
*
* @return the object to which the focus leads
*/
ZoomInObject getZoomIn(ZoomInFocus zoomInFocus, ZoomParameter parameter);
/**
* Sets the zoom-in-object for a given focus.
*
* @param zoomInObject
* the new value
*/
void setZoomInFocus(ZoomInFocus zoomInFocus, ZoomInObject zoomInObject);
/**
* Creates a new focus for zooming in. The focus needs not to be not
* integrated into the instance.
*
* @return the created focus
*/
ZoomInFocus createZoomInFocus();
/**
* Creates a new object as (possible) result after zooming in.
*
* @return the created object
*/
ZoomInObject createZoomInObject();
/**
* Get all focus points for zooming in.
*
* @return all found focus points.
*/
List getAllZoomInFocus();
}