forum.bitel.ru http://forum.bitel.ru/ |
|
Как динамическим кодом создать дочерний сервис? http://forum.bitel.ru/viewtopic.php?f=44&t=12043 |
Страница 1 из 1 |
Автор: | Shadance [ 26 окт 2016, 20:50 ] |
Заголовок сообщения: | Как динамическим кодом создать дочерний сервис? |
Добрый день! Использую следующий код, но в результате создается два сервиса в корне, а нужно получить первый в корне и второй дочерним к первому. Как это сделать? Код: final ServerContext context = ServerContext.get();
final InetServService servService = context.getService( InetServService.class, myConst.INET_MID ); final ResourceService resourceService = context.getService( ResourceService.class, myConst.INET_MID ); InetServ is1 = new InetServ(); is1.setTypeId(myConst.INET_SERVICE_DHCP); is1.setContractId(cid); is1.setDateFrom(new java.util.Date()); is1.setDeviceId(deviceId); is1.setInterfaceId(devicePort); is1.setStatus(is1.STATUS_ACTIVE); is1.setDeviceState(is1.STATE_ENABLE); is1.setLogin(client_ip); // is.setTitle("111222333"); List<Integer> ipResourceCategoryIds = servService.ipResourceCategoryIds( is1.getDeviceId(), is1.getInterfaceId(), is1.getTypeId() ); List<IpResourceRange> rangeList = resourceService.freeIpResourceRangeList( ipResourceCategoryIds, null, is1.getDateFrom(), is1.getDateTo(), 1, 1 ); if( rangeList != null && rangeList.size() > 0 ) { IpResourceRange range = rangeList.get(0); is1.setIpResourceId( range.getIpResourceId() ); is1.setAddressFrom( range.getAddressFrom() ); } InetServ is2 = new InetServ(); is2.setTypeId(myConst.INET_SERVICE_SUBIP); is2.setContractId(cid); is2.setDateFrom(new java.util.Date()); is2.setDeviceId(deviceId); is2.setLogin(client_ip); is2.setTitle(client_ip); // Link services together is2.setParentId(is1.getId()); List<InetServ> resourceChildren = is1.getChildren(); if(resourceChildren == null) { resourceChildren = new ArrayList<InetServ>(); resourceChildren.add(is2); is1.setChildren(resourceChildren); } else { resourceChildren.add(is2); is1.setChildren(resourceChildren); } List<InetServOption> optionList = new ArrayList<InetServOption>(); servService.inetServUpdate( is1, optionList, false, false, 0 ); List<InetServOption> optionList2 = new ArrayList<InetServOption>(); servService.inetServUpdate( is2, optionList2, false, false, 0 ); |
Автор: | barguzin2 [ 27 окт 2016, 08:53 ] |
Заголовок сообщения: | Re: Как динамическим кодом создать дочерний сервис? |
вот это Код: is2.setParentId(is1.getId()); нужно вызывать ПОСЛЕ Код: servService.inetServUpdate( is1, optionList, false, false, 0 ); думаю, понятно, почему. |
Автор: | Shadance [ 29 окт 2016, 11:46 ] |
Заголовок сообщения: | Re: Как динамическим кодом создать дочерний сервис? |
barguzin2 писал(а): вот это Код: is2.setParentId(is1.getId()); нужно вызывать ПОСЛЕ Код: servService.inetServUpdate( is1, optionList, false, false, 0 ); думаю, понятно, почему. Ок, спасибо! помогло. |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |