/*
* Copyright 2015 Okinawa Open Laboratory, General Incorporated Association
*
* 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.okinawaopenlabs.ofpm.service;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import com.google.inject.AbstractModule;
import com.google.inject.Guice;
import com.google.inject.Inject;
import com.google.inject.Injector;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
import org.okinawaopenlabs.ofpm.business.DeviceBusiness;
import org.okinawaopenlabs.ofpm.business.DeviceBusinessImpl;
@Component
public class DeviceServiceImpl implements DeviceService {
private static final Logger logger = Logger.getLogger(DeviceServiceImpl.class);
@Inject
DeviceBusiness deviceBiz;
Injector injector;
@Override
public Response createDevice(String newDeviceInfoJson) {
final String fname = "createDevice";
if (logger.isDebugEnabled()) {
logger.debug(String.format("%s(deviceInfoJson=%s) - start", fname, newDeviceInfoJson));
}
this.injector = Guice.createInjector(new AbstractModule() {
@Override
protected void configure() {
bind(DeviceBusiness.class).to(DeviceBusinessImpl.class);
}
});
DeviceServiceImpl main = injector.getInstance(DeviceServiceImpl.class);
String resDeviceBiz = main.deviceBiz.createDevice(newDeviceInfoJson);
if (logger.isDebugEnabled()) {
logger.debug(String.format("%s(ret=%s) - end", fname, resDeviceBiz));
}
return Response.ok(resDeviceBiz).type(MediaType.APPLICATION_JSON_TYPE).build();
}
@Override
public Response deleteDevice(String deviceName) {
final String fname = "deleteDevice";
if (logger.isDebugEnabled()) {
logger.debug(String.format("%s(deviceName=%s) - start", fname, deviceName));
}
this.injector = Guice.createInjector(new AbstractModule() {
@Override
protected void configure() {
bind(DeviceBusiness.class).to(DeviceBusinessImpl.class);
}
});
DeviceServiceImpl main = injector.getInstance(DeviceServiceImpl.class);
String resDeviceBiz = main.deviceBiz.deleteDevice(deviceName);
if (logger.isDebugEnabled()) {
logger.debug(String.format("%s(ret=%s) - end", fname, resDeviceBiz));
}
return Response.ok(resDeviceBiz).type(MediaType.APPLICATION_JSON_TYPE).build();
}
@Override
public Response updateDevice(String deviceName, String updateDeviceInfoJson) {
final String fname = "updateDevice";
if (logger.isDebugEnabled()) {
logger.debug(String.format("%s(deviceName=%s, deviceInfoJson=%s) - start", fname, deviceName, updateDeviceInfoJson));
}
this.injector = Guice.createInjector(new AbstractModule() {
@Override
protected void configure() {
bind(DeviceBusiness.class).to(DeviceBusinessImpl.class);
}
});
DeviceServiceImpl main = injector.getInstance(DeviceServiceImpl.class);
String resDeviceBiz = main.deviceBiz.updateDevice(deviceName, updateDeviceInfoJson);
if (logger.isDebugEnabled()) {
logger.debug(String.format("%s(ret=%s) - end", fname, resDeviceBiz));
}
return Response.ok(resDeviceBiz).type(MediaType.APPLICATION_JSON_TYPE).build();
}
@Override
public Response readDevice(String deviceName) {
final String fname = "readDevice";
if (logger.isDebugEnabled()) {
logger.debug(String.format("%s(deviceName=%s) - start", fname, deviceName));
}
this.injector = Guice.createInjector(new AbstractModule() {
@Override
protected void configure() {
bind(DeviceBusiness.class).to(DeviceBusinessImpl.class);
}
});
DeviceServiceImpl main = injector.getInstance(DeviceServiceImpl.class);
String resDeviceBiz = main.deviceBiz.readDevice(deviceName);
if (logger.isDebugEnabled()) {
logger.debug(String.format("%s(ret=%s) - end", fname, resDeviceBiz));
}
return Response.ok(resDeviceBiz).type(MediaType.APPLICATION_JSON_TYPE).build();
}
@Override
public Response readDeviceList() {
final String fname = "readDeviceList";
if (logger.isDebugEnabled()) {
logger.debug(String.format("%s() - start", fname));
}
this.injector = Guice.createInjector(new AbstractModule() {
@Override
protected void configure() {
bind(DeviceBusiness.class).to(DeviceBusinessImpl.class);
}
});
DeviceServiceImpl main = injector.getInstance(DeviceServiceImpl.class);
String resDeviceBiz = main.deviceBiz.readDeviceList();
if (logger.isDebugEnabled()) {
logger.debug(String.format("%s(ret=%s) - end", fname, resDeviceBiz));
}
return Response.ok(resDeviceBiz).type(MediaType.APPLICATION_JSON_TYPE).build();
}
@Override
public Response createPort(String deviceName, String newPortInfoJson) {
final String fname = "createPort";
if (logger.isDebugEnabled()) {
logger.debug(String.format("%s(portInfoJson=%s) - start", fname, newPortInfoJson));
}
this.injector = Guice.createInjector(new AbstractModule() {
@Override
protected void configure() {
bind(DeviceBusiness.class).to(DeviceBusinessImpl.class);
}
});
DeviceServiceImpl main = this.injector.getInstance(DeviceServiceImpl.class);
String resDeviceBiz = main.deviceBiz.createPort(deviceName, newPortInfoJson);
if (logger.isDebugEnabled()) {
logger.debug(String.format("%s(ret=%s) - end", fname, resDeviceBiz));
}
return Response.ok(resDeviceBiz).type(MediaType.APPLICATION_JSON_TYPE).build();
}
@Override
public Response readPortList(String deviceName) {
final String fname = "readPortList";
if (logger.isDebugEnabled()) {
logger.debug(String.format("%s(deviceName=%s) - start", fname, deviceName));
}
this.injector = Guice.createInjector(new AbstractModule() {
@Override
protected void configure() {
bind(DeviceBusiness.class).to(DeviceBusinessImpl.class);
}
});
DeviceServiceImpl main = this.injector.getInstance(DeviceServiceImpl.class);
String resDeviceBiz = main.deviceBiz.readPortList(deviceName);
if (logger.isDebugEnabled()) {
logger.debug(String.format("%s(ret=%s) - end", fname, resDeviceBiz));
}
return Response.ok(resDeviceBiz).type(MediaType.APPLICATION_JSON_TYPE).build();
}
@Override
public Response deletePort(String deviceName, String portName) {
final String fname = "deletePort";
if (logger.isDebugEnabled()) {
logger.debug(String.format("%s(deviceName=%s, portName=%s) - start", fname, deviceName, portName));
}
this.injector = Guice.createInjector(new AbstractModule() {
@Override
protected void configure() {
bind(DeviceBusiness.class).to(DeviceBusinessImpl.class);
}
});
DeviceServiceImpl main = this.injector.getInstance(DeviceServiceImpl.class);
String resDeviceBiz = main.deviceBiz.deletePort(deviceName, portName);
if (logger.isDebugEnabled()) {
logger.debug(String.format("%s(ret=%s) - end", fname, resDeviceBiz));
}
return Response.ok(resDeviceBiz).type(MediaType.APPLICATION_JSON_TYPE).build();
}
@Override
public Response updatePort(String deviceName, String portName, String updatePortInfoJson) {
final String fname = "updatePort";
if (logger.isDebugEnabled()) {
logger.debug(String.format("%s(updatePortInfoJson=%s) - start", fname, updatePortInfoJson));
}
this.injector = Guice.createInjector(new AbstractModule() {
@Override
protected void configure() {
bind(DeviceBusiness.class).to(DeviceBusinessImpl.class);
}
});
DeviceServiceImpl main = this.injector.getInstance(DeviceServiceImpl.class);
String resDeviceBiz = main.deviceBiz.updatePort(deviceName, portName, updatePortInfoJson);
if (logger.isDebugEnabled()) {
logger.debug(String.format("%s(ret=%s) - end", fname, resDeviceBiz));
}
return Response.ok(resDeviceBiz).type(MediaType.APPLICATION_JSON_TYPE).build();
}
@Override
public Response getConnectedPortInfo(String deviceName) {
final String fname = "getConnectedPortInfo";
if (logger.isDebugEnabled()) {
logger.debug(String.format("%s(deviceName=%s) - start ", fname, deviceName));
}
this.injector = Guice.createInjector(new AbstractModule() {
@Override
protected void configure() {
bind(DeviceBusiness.class).to(DeviceBusinessImpl.class);
}
});
DeviceServiceImpl main = injector.getInstance(DeviceServiceImpl.class);
String resDeviceBiz = main.deviceBiz.getConnectedPortInfo(deviceName);
if (logger.isDebugEnabled()) {
logger.debug(String.format("%s(ret=%s) - end ", fname, resDeviceBiz));
}
return Response.ok(resDeviceBiz).type(MediaType.APPLICATION_JSON_TYPE).build();
}
@Override
public Response createOfc(String newOfcInfoJson) {
final String fname = "createOfc";
if (logger.isDebugEnabled()) {
logger.debug(String.format("%s(deviceInfoJson=%s) - start", fname, newOfcInfoJson));
}
this.injector = Guice.createInjector(new AbstractModule() {
@Override
protected void configure() {
bind(DeviceBusiness.class).to(DeviceBusinessImpl.class);
}
});
DeviceServiceImpl main = injector.getInstance(DeviceServiceImpl.class);
String resDeviceBiz = main.deviceBiz.createOfc(newOfcInfoJson);
if (logger.isDebugEnabled()) {
logger.debug(String.format("%s(ret=%s) - end", fname, resDeviceBiz));
}
return Response.ok(resDeviceBiz).type(MediaType.APPLICATION_JSON_TYPE).build();
}
@Override
public Response deleteOfc(String ofcIpPort) {
final String fname = "deleteOfc";
if (logger.isDebugEnabled()) {
logger.debug(String.format("%s(ofcIpPort=%s) - start", fname, ofcIpPort));
}
this.injector = Guice.createInjector(new AbstractModule() {
@Override
protected void configure() {
bind(DeviceBusiness.class).to(DeviceBusinessImpl.class);
}
});
DeviceServiceImpl main = injector.getInstance(DeviceServiceImpl.class);
String resDeviceBiz = main.deviceBiz.deleteOfc(ofcIpPort);
if (logger.isDebugEnabled()) {
logger.debug(String.format("%s(ret=%s) - end", fname, ofcIpPort));
}
return Response.ok(resDeviceBiz).type(MediaType.APPLICATION_JSON_TYPE).build(); }
@Override
public Response updateOfc(String ofcIpPort, String updateOfcInfoJson) {
final String fname = "updateOfc";
if (logger.isDebugEnabled()) {
logger.debug(String.format("%s(ofcIpPort=%s, updateOfcInfoJson=%s) - start", fname, ofcIpPort, updateOfcInfoJson));
}
this.injector = Guice.createInjector(new AbstractModule() {
@Override
protected void configure() {
bind(DeviceBusiness.class).to(DeviceBusinessImpl.class);
}
});
DeviceServiceImpl main = injector.getInstance(DeviceServiceImpl.class);
String resDeviceBiz = main.deviceBiz.updateOfc(ofcIpPort, updateOfcInfoJson);
if (logger.isDebugEnabled()) {
logger.debug(String.format("%s(ret=%s) - end", fname, resDeviceBiz));
}
return Response.ok(resDeviceBiz).type(MediaType.APPLICATION_JSON_TYPE).build(); }
@Override
public Response readOfcList() {
final String fname = "readOfcList";
if (logger.isDebugEnabled()) {
logger.debug(String.format("%s() - start", fname));
}
this.injector = Guice.createInjector(new AbstractModule() {
@Override
protected void configure() {
bind(DeviceBusiness.class).to(DeviceBusinessImpl.class);
}
});
DeviceServiceImpl main = injector.getInstance(DeviceServiceImpl.class);
String resDeviceBiz = main.deviceBiz.readOfcList();
if (logger.isDebugEnabled()) {
logger.debug(String.format("%s(ret=%s) - end", fname, resDeviceBiz));
}
return Response.ok(resDeviceBiz).type(MediaType.APPLICATION_JSON_TYPE).build(); }
@Override
public Response readOfc(String ofcIpPort) {
final String fname = "readOfc";
if (logger.isDebugEnabled()) {
logger.debug(String.format("%s(ofcIpPort=%s) - start", fname, ofcIpPort));
}
this.injector = Guice.createInjector(new AbstractModule() {
@Override
protected void configure() {
bind(DeviceBusiness.class).to(DeviceBusinessImpl.class);
}
});
DeviceServiceImpl main = injector.getInstance(DeviceServiceImpl.class);
String resDeviceBiz = main.deviceBiz.readOfc(ofcIpPort);
if (logger.isDebugEnabled()) {
logger.debug(String.format("%s(ret=%s) - end", fname, resDeviceBiz));
}
return Response.ok(resDeviceBiz).type(MediaType.APPLICATION_JSON_TYPE).build(); }
}