/**
* Метод проверяет, является ли указанная дата выходным днем, или праздничным днем. Также осуществляется
* проверка - является ли указанная дата выходным днем, указанным как рабочий день (постановлением Правительства)
* @param date проверяемая дата
* @return признак, является ли указанная дата рабочим днем
*/
public boolean isWorkingDay(Date date) {
String dayOfWeek = DateTimeFormat.getFormat("EEE").format(date);
String dateStr = DateTimeFormat.getFormat("yyyy-MM-dd").format(date);
return (!dayOfWeek.startsWith("Sat") && !dayOfWeek.startsWith("Sun")
&& !holidays.contains(dateStr))
||
workWeekends.contains(dateStr);
}
/**
* Метод осуществляет проверку, является ли указанная дата выходным днем, и если да, то переносит дату на
* следующий после выходных рабочий день.
* @param date проверяемая дата
* @return исходная дата либо дата первого рабочего дня после выходных
*/
public Date getBusinessDate(Date date) {
while (true) {
if (isWorkingDay(date)) {
return date;
} else {
date = plusDays(date, 1);
}
}
}
/**
* Метод осуществляет расчет указанного количества рабочих дней, которые должны истечь с момента указанной
* начальной даты, и возвращает дату наступления искомого срока
* @param date начальная дата, относительно которой осуществляется расчет
* @param days количество рабочих дней, которые должны пройти относительно начальной даты
* @return искомая дата
*/
public Date addBusinessDays(Date date, int days) {
for (int i = 1; i < days; i++) {
date = plusDays(date, 1);
if (!isWorkingDay(date)) {
days++;
}
}
return date;
}
public static Date plusDays(Date date, int days) {
Date clone = new Date(date.getTime());
clone.setDate(date.getDate() + days);
return clone;
}
JavaServer Faces technology establishes the standard for building server-side user interfaces
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type")
@JsonSubTypes({
@JsonSubTypes.Type(value = Bla.class, name = "Bla"),
@JsonSubTypes.Type(value = Bla2.class, name = "Bla2")
})
interface IBla {}
org.apache.cxf.tools.java2ws.JavaToWS.main(new String[]{"-d", "d:\\temp\\gen\\", "-verbose",
// "-createxsdimports",//раскоментировать если нужно выделить xsd-шки в отдельные файлы
"-wsdl", "webservice.SomeService"});
var url = "bean/getData";
$.ajax({
url: url,
method: "get",
contentType: "application/json",
dataType: "json",
async: false,
success: function (data) {
alert(data);
}
});
@RequestMapping(value = "/bean")
public class Controller {
@RequestMapping(value = "/getData", method = RequestMethod.GET)
public
@ResponseBody
List<String> showData() {
List<String> list = new ArrayList<String>();
list.add("2");
list.add("1");
return list;
}
}
public class User {
private List<Achievement> achievements;
get...
set...
}
public class Achievement {
private User user;
private Date createDate;
private DicAchievementType type;//справочник типов достижений
get...
set...
}
<bag name="achievements" inverse="true" cascade="all,delete-orphan" order-by="CREATE_DATE">
<key column="user_id"/>
<one-to-many class="Achievement"/>
</bag>
<many-to-one name="user" column="user_id" class="User"/>
<many-to-one name="type" column="achievement_type_id" class="DicAchievementType"/>