boolean (Point location, boolean locationSet, Dimension size, boolean sizeSet, boolean maximized, boolean maximizedSet, boolean fullScreen, boolean fullScreenSet) { if (locationSet) { myLocation = apply(Point::new, location); } if (sizeSet) { mySize = apply(Dimension::new, size); } if (maximizedSet) { myMaximized = maximized; } if (fullScreenSet) { myFullScreen = fullScreen; } if (myLocation == null && mySize == null) return false; // update timestamp of modified state myTimeStamp = System.currentTimeMillis(); return true; }