/* * Copyright 2015 Red Hat, Inc. and/or its affiliates. * * 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 org.optaplanner.examples.meetingscheduling.domain; import com.thoughtworks.xstream.annotations.XStreamAlias; import org.optaplanner.examples.common.domain.AbstractPersistable; import org.optaplanner.examples.common.swingui.components.Labeled; @XStreamAlias("MsTimeGrain") public class TimeGrain extends AbstractPersistable implements Labeled { /** * Time granularity is 15 minutes (which is often recommended when dealing with humans for practical purposes). */ public static final int GRAIN_LENGTH_IN_MINUTES = 15; private int grainIndex; // unique private Day day; private int startingMinuteOfDay; public int getGrainIndex() { return grainIndex; } public void setGrainIndex(int grainIndex) { this.grainIndex = grainIndex; } public Day getDay() { return day; } public void setDay(Day day) { this.day = day; } public int getStartingMinuteOfDay() { return startingMinuteOfDay; } public void setStartingMinuteOfDay(int startingMinuteOfDay) { this.startingMinuteOfDay = startingMinuteOfDay; } public String getTimeString() { int hourOfDay = startingMinuteOfDay / 60; int minuteOfHour = startingMinuteOfDay % 60; return (hourOfDay < 10 ? "0" : "") + hourOfDay + ":" + (minuteOfHour < 10 ? "0" : "") + minuteOfHour; } public String getDateTimeString() { return day.getDateString() + " " + getTimeString(); } @Override public String getLabel() { return getTimeString(); } @Override public String toString() { return grainIndex + "(" + getDateTimeString() + ")"; } }